Renvoie d'une plage de cellule dans une listbox [Résolu]

Signaler
Messages postés
42
Date d'inscription
lundi 20 décembre 2004
Statut
Membre
Dernière intervention
12 novembre 2008
-
ecthug
Messages postés
42
Date d'inscription
lundi 20 décembre 2004
Statut
Membre
Dernière intervention
12 novembre 2008
-
Bonjour,ce soir mon prob est que je n'arrive pas à renvoyer dans ma Listbox2
la plage de cellule (Cellule à droite et celle du dessous:EXEMPLE: B10et B11)
situé dans une colonne à droite ayant le meme index (Index de la listbox1 (A11))

Ligne=LisBox1.ListIndex
Ligne2=Ligne +1
Colone=1
ListBox2.RowSource=Range(Cells(Ligne,Colone),Cells(Ligne2,Colone))

Ca bug toujours à la derniere ligne et je ne trouve pas d'exemple dans les
codes source.
Merci de m'aider pour la syntaxe ou autre

8 réponses

Messages postés
1134
Date d'inscription
mercredi 2 octobre 2002
Statut
Membre
Dernière intervention
24 juillet 2011
1
JE crois que Range attends par exemple "A2:B5" comme valeur.
Il faudrait donc revoir ta formulation.
Essaie Range(Cells(Ligne,Colone).Adress &":" &Cells(Ligne2,Colone).Adress)
PS: je sais plus si c'est adress ou address

Programmix
Messages postés
42
Date d'inscription
lundi 20 décembre 2004
Statut
Membre
Dernière intervention
12 novembre 2008

Salut Programmix
Range(Cells(Ligne,Colone).Adress &":" &Cells(Ligne2,Colone).Adress)

Ne fonctionne pas pour envoyer dans ma listbox
je ne comprend plus rien
manu
Messages postés
1134
Date d'inscription
mercredi 2 octobre 2002
Statut
Membre
Dernière intervention
24 juillet 2011
1
Dis-moi, ton code, tu veux le faire tourner dans VBA d'Excel ou VB6 ?

Programmix
Messages postés
42
Date d'inscription
lundi 20 décembre 2004
Statut
Membre
Dernière intervention
12 novembre 2008

C'est du VBA avec excel 2000
Manu
Messages postés
42
Date d'inscription
lundi 20 décembre 2004
Statut
Membre
Dernière intervention
12 novembre 2008

en fait si dans ma listbox1 je choisi l'item correspondant à la case A10
Je veux que dans ma listbox2 il m'affiche les valeur dans les cases
B10 et B11
je ne trouve pas la syntaxe
merci de m'aider (tout cela en VBA)
merci
Manu
Messages postés
1134
Date d'inscription
mercredi 2 octobre 2002
Statut
Membre
Dernière intervention
24 juillet 2011
1
Voici la méthode que j'utilise généralement pour me dépanner en VBA : je crée un nouveau dossier, j'enclenche l'enregistreur de macro et je réalise ce qui me pose problème.

Ensuite, il ne me reste plus qu'à lire le code (attention de ne pas oublier d'éteindre l'enregistreur à ce moment-là... ça m'arrive parfois).

Ainsi, dans 90% des cas, la solution apparaît.

J'ai donc appliqué la même méthode pour ton problème, ce qui donne les 2 macros suivantes :

'Pour créer Macro1, j'avais préparé une liste d'item dans une colonne.
'J'ai ensuite procédé à l'enregistrement de la mise en place d'une listbox avec définition de la plage des données et la plage résultat.

Sub Macro1()
'Insertion d'une listboxe
ActiveSheet.ListBoxes.Add(60, 52.5, 178.5, 81).Select
With Selection
.ListFillRange = "$A$5:$A$8"
.LinkedCell = "$A$1"
.MultiSelect = xlNone
.Display3DShading = False
End With
Range("D4").Select
End Sub
'Comme tu peux le constater la plage est définie par .ListFillRange et non par .RowSource.

'Avec la Macro2, j'ai tester le changement d'attribution de la plage des données

Sub Macro2()
ActiveSheet.Shapes("List Box 2").Select
Selection.ListFillRange = "A6:A7"
Range("A1").Select
End Sub

Je te laisse éplucher ce plus en détail...et 'adapter à tes besoins.

Programmix
Messages postés
42
Date d'inscription
lundi 20 décembre 2004
Statut
Membre
Dernière intervention
12 novembre 2008

ok merci pour le tuyau,je vais décortiquer
je te tiens au courant
manu
Messages postés
42
Date d'inscription
lundi 20 décembre 2004
Statut
Membre
Dernière intervention
12 novembre 2008

J'ai réussi


en selectionnant par exemple A12 dans ma listbox1

Ligne=LisBox1.ListIndex
Ligne2=Ligne +2
Ligne3=Ligne+3
Colone=1
Un=Cells(Ligne2,Colone)
Deux=Cells(Ligne3,Colone)

'ici je renvoie les valeurs dans la listbox2
ListBox2.AddItem Un
ListBox2.AddItem Deux

Ca marche Merci beaucoup

Manu