Déclaration paramètres de procèdures (combobox)

Eijih Messages postés 5 Date d'inscription jeudi 2 juin 2005 Statut Membre Dernière intervention 10 juin 2005 - 9 juin 2005 à 14:53
K_SoZe Messages postés 39 Date d'inscription dimanche 8 mai 2005 Statut Membre Dernière intervention 8 juillet 2005 - 11 juin 2005 à 17:44
Bonjour,


Pourrait-on me dire comment faire en sorte que feuille qui est présent en gras dans le code ci-après prenne la meme valeur que le paramètre feuille qui est un paramètre donnée lors d'un appel de procèdure ?


A noter que c'est le code suivant qui est mauvais :frm_choixenergie.cbx_feuille
.AddItem ThisWorkbook.Worksheets(feuille).Range(colonne_cellule & i)


A titre d'exemple, j'ai une feuille qui s'appelle Toto et je voudrais qu'à l'appel de la procèdure remplir_cbx que ma liste déroulante cbx_Toto soit remplie.





Public Sub remplir_cbx(ByRef feuille As String, ByRef colonne_cellule As String)


Dim i As Integer




i = 2





'Boucle afin de remplir les champs d'une liste déroulante


Do While ThisWorkbook.Worksheets(feuille).Range(colonne_cellule & i) <> ""


frm_choixenergie.cbx_ feuille
.AddItem ThisWorkbook.Worksheets(feuille).Range(colonne_cellule & i)


i = i + 1


Loop

End sub

Eijih

3 réponses

K_SoZe Messages postés 39 Date d'inscription dimanche 8 mai 2005 Statut Membre Dernière intervention 8 juillet 2005 20
9 juin 2005 à 16:07
Bonjour,



Il faut remplacer feuille par une variable string et faire une boucle sur tes sheets.





dim i as integer

dim x as integer

dim feuille as string



x = 1

i = 2





Do Until x = worksheets(x).count



feuille = worksheets(x).name



Do While ThisWorkbook.Worksheets(x).Range(colonne_cellule & i) <> ""




frm_choixenergie.cbx_ " & feuille & ".AddItem ThisWorkbook.Worksheets(feuille).Range(colonne_cellule & i)



i = i + 1



Loop



x = x + 1



Loop



J'espère avoir pu t'aider, si c le cas n'oublie pas d'accepter la réponse merci























K. SZe
0
Eijih Messages postés 5 Date d'inscription jeudi 2 juin 2005 Statut Membre Dernière intervention 10 juin 2005
10 juin 2005 à 10:12
Pour la ligne de code ci-après ca m'ecrit "Erreur de compilation. Membre de méthode ou de données introuvable."

frm_choixenergie.cbx_feuille.AddItem ThisWorkbook.Worksheets(feuille).Range(colonne_cellule & i)
i = i + 1

Pour la tienne ca me met : "Erreur de compilation. Attendu : identificateur ou expression entre crochets

frm_choixenergie.cbx_" & feuille & ".AddItem ThisWorkbook.Worksheets(feuille).Range(colonne_cellule & i)

J'ai déjà déclaré les variables en paramètres mais je pense que le problème vient du fait que je mette une variable en plein milieu. C'est-à-dire juste après le userform et avant le additem

frm_choixenergie.cbx_feuille
.AddItem

Je ne pense que la concaténation que tu m'as montré soit vraiment correcte (je me trompe peut-être : p ) en tout cas ca ne marche pas : ).
Merci quand même pour l'aide:). Si jamais quelqu'un a une idée, je suis prenneur :p.

Eijih
0
K_SoZe Messages postés 39 Date d'inscription dimanche 8 mai 2005 Statut Membre Dernière intervention 8 juillet 2005 20
11 juin 2005 à 17:44
Re bonjour,



il me semble que je me sois trompée aussi dans cette ligne :



frm_choixenergie.cbx_" & feuille & ".AddItem ThisWorkbook.Worksheets(feuille).Range(colonne_cellule & i)



ce serait plutot




frm_choixenergie.cbx_(" & feuille & ").AddItem ThisWorkbook.Worksheets(x).Range(colonne_cellule & i)



pour la concaténation, g ajouté des parenthèses. J'espère que ça va
fonctionner. au pire si tu veux tu peux m'envoyer ton fichier et je
regarderai.


K. SZe
0
Rejoignez-nous