Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2004 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Appel d'une combobox par une variable

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Appel d'une combobox par une variable

n°1837802
houba7777
Posté le 14-01-2009 à 13:36:29  profilanswer
 

Bonjour à tous,
 
Voilà j'ai un problème et je bloque depuis plusieurs jours dessus.
Je suis en train de créer un programme sous excel-VBA.
 
J'ai une userform avec plusieurs combobox (1,2,3...).
Quand je fais un changement sur une combobox je voudrais faire appel à une procédure dans un  module.
Je le déclare en public mais je voudrais pouvoir appeler un combobox par une variable.
 
J'ai du mal à bien exprimer mon besoin mais en "gros" j'aimerais pouvoir avoir une formule du style :
 
userform1.combobox & ma variable (1,2,3...).value/additem..
mais je ne sais pas comment l'écrire.
 
Je penses qu'il faut que j'utilise un paramètre du style "msforms as" mais je n'arrive pas à voir comment on l'ecrit entre le code userform et le code dans un module
 
Merci beaucoup pour ceux qui arriveront à me sortir de là .
 
 
houba

mood
Publicité
Posté le 14-01-2009 à 13:36:29  profilanswer
 

n°1838091
tegu
Posté le 15-01-2009 à 10:15:07  profilanswer
 

Désolé, je ne comprends pas ton besoin.

n°1838124
houba7777
Posté le 15-01-2009 à 11:13:23  profilanswer
 

bonjour tegu,
 
exemple simplifé :
 
 
Concernant le programme, pour tester j'ai créé une userform avec 2 combobox (combobox1 et 2)
 
Je commence par un sub de lancement dans un module:
 
Public Sub demarrage()
 
Worksheets("Feuil1" ).Select
ActiveSheet.AutoFilterMode = False
remplissage_combobox
 
End Sub
 
Puis j'ai encore un sub qui (si c'est possible) me servira de seul sub pour remplir toute mes combobox selon des conditions (d'où la nécessité d'avoir des variables à la place de mes combobox) :
 
Public Sub remplissage_combobox()
 
Dim Cell As Range
Dim Unique As New Collection
Dim Valeur As Range
Dim i As Integer
i = Range("A65536" ).End(xlUp).Row
 
On Error Resume Next
For Each Cell In Range("A1:A" & i)
If Not Cell.EntireRow.Hidden Then Unique.Add Cell, CStr(Cell)
Next Cell
On Error GoTo 0
For Each Valeur In Unique
UserForm1.ComboBox1.AddItem Valeur
Next Valeur
 
UserForm1.Show
 
 
End Sub
 
Ceci est la 1ère condition quand je démarre mon programme, à savoir remplissage de la combobox1.
 
Maintenant je voudrais que dans la userform, si je change la valeur de la combobox1, cela me relance le code précédent mais avec le remplissage de ma combobox2 (avec les données de la colonne B).
 
Ceci afin de centraliser un programme qui me remplisse les combobox.
 
j'espère que c'est un peu plus explicite. J'ai essayé pas mal de tournure de code mais j'avoue qu'à force je sait  plus où j'en suis.
Je suis preneur de toute aide, même d'une âme charitable qui me donnerait un chemin directeur.
 
houba


Message édité par houba7777 le 15-01-2009 à 11:13:41
n°1838134
tegu
Posté le 15-01-2009 à 11:30:09  profilanswer
 

Les UserForms ont une collection .Controls où on peut utiliser le nom du contrôle sous forme d'une variable
 
Si mes souvenirs sont bons, la syntaxe est du genre : userfrm.Controls(variableCombobox).AddItem...
 
Il te suffirait d'alimenter la variable dans ta boucle avec les bonnes infos.
À vérifier, ça fait longtemps que je n'ai pas pratiqué.


Message édité par tegu le 15-01-2009 à 11:30:23

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Appel d'une combobox par une variable

 

Sujets relatifs
Concatener la meme variable a 2 variables ?fichier texte ouvert avec fgetcsv() en php (résolu)
Problème de sélection dans une ComboBoxFonction ou variable PHP pour racine du site?
probleme avec un comboboxAppel d'une méthode dans une classe avec href....
[C - Gros débutant] Probleme de variable ...Passer un chemin absolu lors de l'appel du script
Appel a un script depuis c# puis recuperer une varmise en place combobox
Plus de sujets relatifs à : Appel d'une combobox par une variable


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR