Copier listbox vers une autre listbox vba

Fermé
juliet - 28 juin 2010 à 14:21
 juliet - 28 juin 2010 à 15:55
Bonjour,

Je voudrais copier le contenu d'une listbox sur une autre listbox d'un userform différent, a l'aide d'un commandbutton.
Voilà ce que j'ai écrit, mais ca ne marche pas. Y a t il quelquechose à changer dans la propriété de la lisbox? car je le fait avec des textbox ca marche.

Private Sub CommandButton1_Click()
Moyennehistorique.ListBox2.Value = Me.ListBox1.Value
End Sub

Merci beaucoup


8 réponses

Merci de ta réponse rapide,

Je veux copier la liste complete

Merci
1
Krysstof Messages postés 1483 Date d'inscription mercredi 18 février 2009 Statut Membre Dernière intervention 23 août 2010 294
28 juin 2010 à 14:22
"Value" sur une list box représente uniquement la valeur sélectionnée.

tu veux copier tout le contenu (c'est a dire la liste complete)? ou juste la valeur sélectionnée ?
0
Krysstof Messages postés 1483 Date d'inscription mercredi 18 février 2009 Statut Membre Dernière intervention 23 août 2010 294
28 juin 2010 à 14:37
ca copie le contenu de listbox1 dans listbox2 :

Dim i As Integer

For i = 0 To ListBox1.ListCount - 1
ListBox2.AddItem ListBox1.List(i)
Next


amuse toi bien
0
Merci, mais ca ne marche pas, j'ai écrit ca:

Private Sub CommandButton1_Click()

Dim i As Integer

For i = 0 To historiqueetm.ListBox1.ListCount - 1
Me.ListBox1.AddItem historiqueetm.ListBox1.List(i)
Next

End Sub

Car c'est 2 userforms différents.

Merci beaucoup
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Krysstof Messages postés 1483 Date d'inscription mercredi 18 février 2009 Statut Membre Dernière intervention 23 août 2010 294
28 juin 2010 à 14:58
ca marche pas = quoi?

un message d'erreur, ou ca ne fait rien?


sinon, "Me." n'est pas nécessaire. et comment est-ce que historiqueetm est chargée ?
0
Je viens d'enlever le Me, mais toujours rien.
Je n'ai pas de message d'erreur, mais rien ce se passe.

je ne comprends pas chargée comment??

Merci
0
Krysstof Messages postés 1483 Date d'inscription mercredi 18 février 2009 Statut Membre Dernière intervention 23 août 2010 294
28 juin 2010 à 15:17
euh, ben si ca ne fait pas de message d'erreur, cela veut dire ca fonctionne

mais ta listbox source ne contient aucune valeur, quand je demande comment est-elle chargée, je veux dire comment le contenu de la listbox est alimenté?

tous les bouton, listbox, combobox, textbox etc... sont des controles.

sur un userform excel, il faut qu'il soit initialisé (chargé, alimenté) pour pouvoir lire le contenu de ce controle.

l'avantage d'excel est qu'une fois qu'un userform est chargé, et que ses controles sont initialisé, tu peux fermer ce userform et appeler les valeurs de ce userform dans d'autre userform, mais il ne faut pas que la procédure de fermeture vide les controles, ou que l'alimentation du controle soit dynamique et dépende d'autre valeur.

rajoute
Msgbox historiqueetm.ListBox1.ListCount
en première ligne du clic du bouton

cela te fera un popup avec le nombre de ligne vue dans la listbox.
si c'est 0 ou -1 cela veut dire que la listbox n'est pas initialisée.

faudra que tu donne plus d'info sur comment tu ouvre tes userform, plus de code
0
Merci pour ces précisions,

j'ai rajouté Msgbox historiqueetm.ListBox1.ListCount
et ca m'a mis 0.

En j'ai un commandbutton sur un userform qui ouvre 3 userforms differents:
Private Sub CommandButton1_Click()
historiqueetm.Show
historiquegranulo.Show
historiquechimiques.Show

Dim i As Integer
MsgBox historiqueetm.ListBox1.ListCount
For i = 0 To historiqueetm.ListBox1.ListCount - 1
ListBox1.AddItem historiqueetm.ListBox1.List(i)
Next


End Sub


Sur ces 3 userforms, il y une listbox qui est alimentée comme ca:

Private Sub UserForm_activate()
TextBox1.Enabled = False
i = 4

If TextBox1.Value = "SIL9" Then
Do While Worksheets("analyses chimiques").Cells(3, i) <> ""
If IsNumeric(Worksheets("analyses chimiques").Cells(3, i).Value) Then
ListBox1.AddItem Worksheets("analyses chimiques").Cells(2, i).Value
End If
i = i + 1
Loop
End If
ca repeté environ 70 fois et ca ca fonctionne impec
End Sub

Au départ je n'avais pas fait 3 userforms différents mais ca écrivait direct dans mes listbox, mais à la fin ca m'a dit procédure trop longue c'est pourquoi je suis arrivé à 3 userforms différentes.

et en fait je veux que les données de mes 3 userforms soit dans mes 3 listbox du userforms du départ etca m'arrangerai si ces 3 userforms n'apparaissaient pas.


J'espère que j'ai été claire ...
Merci de ta compréhension
0