Bonjour,
j'aimerais faire "communiquer des valeurs" entre 2 listbox
c'est à dire choisir des valeurs dans lstbox1, et en cliquant sur le bouton
BT1, mettre les valeurs dans lstbox2, et les supprimer de lstbox1
Voici mon code :
For i = 0 To lstbox1.ListCount - 1
If lstbox1(i) = True Then
lstbox2.AddItem lstbox1.List(i)
lstbox1.RemoveItem i
End If
Next i
Le problème est que j'ai l'erreur suivante:
"Erreur d'éxécution"
" Impossible de lire la propriété Selected. Argument non valide"
à noter que je n'ai pas cette erreur quand j'enlève la ligne avec
removeItem.
Comment faire pour que la valeur qui est passé dans lstbox2 ne soit plus
dans lstbox1?
merci
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
ionel.sbiera
Hi, je pense que t'as besoin de ca:
Private Sub CommandButton1_Click() For i = 0 To ListBox1.ListCount - 1 If ListBox1.Selected(i) = True Then ListBox2.AddItem ListBox1.Value Me.ListBox1.RemoveItem (i) Else End If Next
End Sub
Hi,
je pense que t'as besoin de ca:
Private Sub CommandButton1_Click()
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) = True Then
ListBox2.AddItem ListBox1.Value
Me.ListBox1.RemoveItem (i)
Else
End If
Next
Private Sub CommandButton1_Click() For i = 0 To ListBox1.ListCount - 1 If ListBox1.Selected(i) = True Then ListBox2.AddItem ListBox1.Value Me.ListBox1.RemoveItem (i) Else End If Next
End Sub
Cecile
merci pour ta réponse aussi rapide mais malheureusement, en ajoutant le "Me." j'ai le même message
a écrit dans le message de news:
Hi, je pense que t'as besoin de ca:
Private Sub CommandButton1_Click() For i = 0 To ListBox1.ListCount - 1 If ListBox1.Selected(i) = True Then ListBox2.AddItem ListBox1.Value Me.ListBox1.RemoveItem (i) Else End If Next
End Sub
merci pour ta réponse aussi rapide
mais malheureusement, en ajoutant le "Me." j'ai le même message
<ionel.sbiera@gmail.com> a écrit dans le message de
news:1129121953.019558.248600@o13g2000cwo.googlegroups.com...
Hi,
je pense que t'as besoin de ca:
Private Sub CommandButton1_Click()
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) = True Then
ListBox2.AddItem ListBox1.Value
Me.ListBox1.RemoveItem (i)
Else
End If
Next
merci pour ta réponse aussi rapide mais malheureusement, en ajoutant le "Me." j'ai le même message
a écrit dans le message de news:
Hi, je pense que t'as besoin de ca:
Private Sub CommandButton1_Click() For i = 0 To ListBox1.ListCount - 1 If ListBox1.Selected(i) = True Then ListBox2.AddItem ListBox1.Value Me.ListBox1.RemoveItem (i) Else End If Next
End Sub
Jacques93
Bonjour Cecile,
Essaie :
Dim i As Integer
For i = lstBox1.ListCount - 1 To 0 Step -1 If lstBox1.Selected(i) Then lstBox2.AddItem lstBox1.List(i), 0 lstBox1.RemoveItem i End If Next i
Quand on vide une liste, il vaut mieux commencer par la fin :-)
Bonjour, j'aimerais faire "communiquer des valeurs" entre 2 listbox c'est à dire choisir des valeurs dans lstbox1, et en cliquant sur le bouton BT1, mettre les valeurs dans lstbox2, et les supprimer de lstbox1
Voici mon code :
For i = 0 To lstbox1.ListCount - 1 If lstbox1(i) = True Then lstbox2.AddItem lstbox1.List(i) lstbox1.RemoveItem i End If Next i
Le problème est que j'ai l'erreur suivante: "Erreur d'éxécution" " Impossible de lire la propriété Selected. Argument non valide"
à noter que je n'ai pas cette erreur quand j'enlève la ligne avec removeItem.
Comment faire pour que la valeur qui est passé dans lstbox2 ne soit plus dans lstbox1? merci
-- Cordialement,
Jacques.
Bonjour Cecile,
Essaie :
Dim i As Integer
For i = lstBox1.ListCount - 1 To 0 Step -1
If lstBox1.Selected(i) Then
lstBox2.AddItem lstBox1.List(i), 0
lstBox1.RemoveItem i
End If
Next i
Quand on vide une liste, il vaut mieux commencer par la fin :-)
Bonjour,
j'aimerais faire "communiquer des valeurs" entre 2 listbox
c'est à dire choisir des valeurs dans lstbox1, et en cliquant sur le bouton
BT1, mettre les valeurs dans lstbox2, et les supprimer de lstbox1
Voici mon code :
For i = 0 To lstbox1.ListCount - 1
If lstbox1(i) = True Then
lstbox2.AddItem lstbox1.List(i)
lstbox1.RemoveItem i
End If
Next i
Le problème est que j'ai l'erreur suivante:
"Erreur d'éxécution"
" Impossible de lire la propriété Selected. Argument non valide"
à noter que je n'ai pas cette erreur quand j'enlève la ligne avec
removeItem.
Comment faire pour que la valeur qui est passé dans lstbox2 ne soit plus
dans lstbox1?
merci
For i = lstBox1.ListCount - 1 To 0 Step -1 If lstBox1.Selected(i) Then lstBox2.AddItem lstBox1.List(i), 0 lstBox1.RemoveItem i End If Next i
Quand on vide une liste, il vaut mieux commencer par la fin :-)
Bonjour, j'aimerais faire "communiquer des valeurs" entre 2 listbox c'est à dire choisir des valeurs dans lstbox1, et en cliquant sur le bouton BT1, mettre les valeurs dans lstbox2, et les supprimer de lstbox1
Voici mon code :
For i = 0 To lstbox1.ListCount - 1 If lstbox1(i) = True Then lstbox2.AddItem lstbox1.List(i) lstbox1.RemoveItem i End If Next i
Le problème est que j'ai l'erreur suivante: "Erreur d'éxécution" " Impossible de lire la propriété Selected. Argument non valide"
à noter que je n'ai pas cette erreur quand j'enlève la ligne avec removeItem.
Comment faire pour que la valeur qui est passé dans lstbox2 ne soit plus dans lstbox1? merci
-- Cordialement,
Jacques.
Cecile
merci ça marche très bien "Jacques93" a écrit dans le message de news:et%
Bonjour Cecile,
Essaie :
Dim i As Integer
For i = lstBox1.ListCount - 1 To 0 Step -1 If lstBox1.Selected(i) Then lstBox2.AddItem lstBox1.List(i), 0 lstBox1.RemoveItem i End If Next i
Quand on vide une liste, il vaut mieux commencer par la fin :-)
Bonjour, j'aimerais faire "communiquer des valeurs" entre 2 listbox c'est à dire choisir des valeurs dans lstbox1, et en cliquant sur le bouton
BT1, mettre les valeurs dans lstbox2, et les supprimer de lstbox1
Voici mon code :
For i = 0 To lstbox1.ListCount - 1 If lstbox1(i) = True Then lstbox2.AddItem lstbox1.List(i) lstbox1.RemoveItem i End If Next i
Le problème est que j'ai l'erreur suivante: "Erreur d'éxécution" " Impossible de lire la propriété Selected. Argument non valide"
à noter que je n'ai pas cette erreur quand j'enlève la ligne avec removeItem.
Comment faire pour que la valeur qui est passé dans lstbox2 ne soit plus dans lstbox1? merci
-- Cordialement,
Jacques.
merci
ça marche très bien
"Jacques93" <jacques@NoSpam> a écrit dans le message de
news:et%23kEEzzFHA.3188@TK2MSFTNGP14.phx.gbl...
Bonjour Cecile,
Essaie :
Dim i As Integer
For i = lstBox1.ListCount - 1 To 0 Step -1
If lstBox1.Selected(i) Then
lstBox2.AddItem lstBox1.List(i), 0
lstBox1.RemoveItem i
End If
Next i
Quand on vide une liste, il vaut mieux commencer par la fin :-)
Bonjour,
j'aimerais faire "communiquer des valeurs" entre 2 listbox
c'est à dire choisir des valeurs dans lstbox1, et en cliquant sur le
bouton
BT1, mettre les valeurs dans lstbox2, et les supprimer de lstbox1
Voici mon code :
For i = 0 To lstbox1.ListCount - 1
If lstbox1(i) = True Then
lstbox2.AddItem lstbox1.List(i)
lstbox1.RemoveItem i
End If
Next i
Le problème est que j'ai l'erreur suivante:
"Erreur d'éxécution"
" Impossible de lire la propriété Selected. Argument non valide"
à noter que je n'ai pas cette erreur quand j'enlève la ligne avec
removeItem.
Comment faire pour que la valeur qui est passé dans lstbox2 ne soit plus
dans lstbox1?
merci
merci ça marche très bien "Jacques93" a écrit dans le message de news:et%
Bonjour Cecile,
Essaie :
Dim i As Integer
For i = lstBox1.ListCount - 1 To 0 Step -1 If lstBox1.Selected(i) Then lstBox2.AddItem lstBox1.List(i), 0 lstBox1.RemoveItem i End If Next i
Quand on vide une liste, il vaut mieux commencer par la fin :-)
Bonjour, j'aimerais faire "communiquer des valeurs" entre 2 listbox c'est à dire choisir des valeurs dans lstbox1, et en cliquant sur le bouton
BT1, mettre les valeurs dans lstbox2, et les supprimer de lstbox1
Voici mon code :
For i = 0 To lstbox1.ListCount - 1 If lstbox1(i) = True Then lstbox2.AddItem lstbox1.List(i) lstbox1.RemoveItem i End If Next i
Le problème est que j'ai l'erreur suivante: "Erreur d'éxécution" " Impossible de lire la propriété Selected. Argument non valide"
à noter que je n'ai pas cette erreur quand j'enlève la ligne avec removeItem.
Comment faire pour que la valeur qui est passé dans lstbox2 ne soit plus dans lstbox1? merci
-- Cordialement,
Jacques.
Cecile
j'ai encore juste un petit problème, et après, je ne te dérange plus: je voudrais faire la même chose avec lstbox2, c'est à dire les supprimer et les remettre dans lstbox1. j'ai fait comme tu m'as dit: je commence par la fin pour la suppression. le problème, c'est que dans ma lstbox1, les informations se retrouvent à la fin, non triées.
comment puis-je faire pour soit mettre les valeurs de lstbox1 au bon endroit, soir les retriées à la fin?
merci "Jacques93" a écrit dans le message de news:et%
Bonjour Cecile,
Essaie :
Dim i As Integer
For i = lstBox1.ListCount - 1 To 0 Step -1 If lstBox1.Selected(i) Then lstBox2.AddItem lstBox1.List(i), 0 lstBox1.RemoveItem i End If Next i
Quand on vide une liste, il vaut mieux commencer par la fin :-)
Bonjour, j'aimerais faire "communiquer des valeurs" entre 2 listbox c'est à dire choisir des valeurs dans lstbox1, et en cliquant sur le bouton
BT1, mettre les valeurs dans lstbox2, et les supprimer de lstbox1
Voici mon code :
For i = 0 To lstbox1.ListCount - 1 If lstbox1(i) = True Then lstbox2.AddItem lstbox1.List(i) lstbox1.RemoveItem i End If Next i
Le problème est que j'ai l'erreur suivante: "Erreur d'éxécution" " Impossible de lire la propriété Selected. Argument non valide"
à noter que je n'ai pas cette erreur quand j'enlève la ligne avec removeItem.
Comment faire pour que la valeur qui est passé dans lstbox2 ne soit plus dans lstbox1? merci
-- Cordialement,
Jacques.
j'ai encore juste un petit problème, et après, je ne te dérange plus:
je voudrais faire la même chose avec lstbox2, c'est à dire les supprimer et
les remettre dans lstbox1.
j'ai fait comme tu m'as dit: je commence par la fin pour la suppression.
le problème, c'est que dans ma lstbox1, les informations se retrouvent à la
fin, non triées.
comment puis-je faire pour soit mettre les valeurs de lstbox1 au bon
endroit, soir les retriées à la fin?
merci
"Jacques93" <jacques@NoSpam> a écrit dans le message de
news:et%23kEEzzFHA.3188@TK2MSFTNGP14.phx.gbl...
Bonjour Cecile,
Essaie :
Dim i As Integer
For i = lstBox1.ListCount - 1 To 0 Step -1
If lstBox1.Selected(i) Then
lstBox2.AddItem lstBox1.List(i), 0
lstBox1.RemoveItem i
End If
Next i
Quand on vide une liste, il vaut mieux commencer par la fin :-)
Bonjour,
j'aimerais faire "communiquer des valeurs" entre 2 listbox
c'est à dire choisir des valeurs dans lstbox1, et en cliquant sur le
bouton
BT1, mettre les valeurs dans lstbox2, et les supprimer de lstbox1
Voici mon code :
For i = 0 To lstbox1.ListCount - 1
If lstbox1(i) = True Then
lstbox2.AddItem lstbox1.List(i)
lstbox1.RemoveItem i
End If
Next i
Le problème est que j'ai l'erreur suivante:
"Erreur d'éxécution"
" Impossible de lire la propriété Selected. Argument non valide"
à noter que je n'ai pas cette erreur quand j'enlève la ligne avec
removeItem.
Comment faire pour que la valeur qui est passé dans lstbox2 ne soit plus
dans lstbox1?
merci
j'ai encore juste un petit problème, et après, je ne te dérange plus: je voudrais faire la même chose avec lstbox2, c'est à dire les supprimer et les remettre dans lstbox1. j'ai fait comme tu m'as dit: je commence par la fin pour la suppression. le problème, c'est que dans ma lstbox1, les informations se retrouvent à la fin, non triées.
comment puis-je faire pour soit mettre les valeurs de lstbox1 au bon endroit, soir les retriées à la fin?
merci "Jacques93" a écrit dans le message de news:et%
Bonjour Cecile,
Essaie :
Dim i As Integer
For i = lstBox1.ListCount - 1 To 0 Step -1 If lstBox1.Selected(i) Then lstBox2.AddItem lstBox1.List(i), 0 lstBox1.RemoveItem i End If Next i
Quand on vide une liste, il vaut mieux commencer par la fin :-)
Bonjour, j'aimerais faire "communiquer des valeurs" entre 2 listbox c'est à dire choisir des valeurs dans lstbox1, et en cliquant sur le bouton
BT1, mettre les valeurs dans lstbox2, et les supprimer de lstbox1
Voici mon code :
For i = 0 To lstbox1.ListCount - 1 If lstbox1(i) = True Then lstbox2.AddItem lstbox1.List(i) lstbox1.RemoveItem i End If Next i
Le problème est que j'ai l'erreur suivante: "Erreur d'éxécution" " Impossible de lire la propriété Selected. Argument non valide"
à noter que je n'ai pas cette erreur quand j'enlève la ligne avec removeItem.
Comment faire pour que la valeur qui est passé dans lstbox2 ne soit plus dans lstbox1? merci
-- Cordialement,
Jacques.
Jacques93
Tu ne déranges pas,
Les Listbox sous Excel n'ayant pas, sauf erreur de ma part, de propriété Sorted, il faut le faire soit même, cela dit pas la peine de tout retrier à la fin. Essaie ceci :
Private Sub cmdAdd1_Click() Add2List lstBox1, lstBox2 End Sub
Private Sub cmdAdd2_Click() Add2List lstBox2, lstBox1 End Sub
Private Sub Add2List(lst1 As MSForms.ListBox, lst2 As MSForms.ListBox) Dim i As Integer Dim j As Integer
For i = lst1.ListCount - 1 To 0 Step -1 If lst1.Selected(i) Then For j = 0 To lst2.ListCount - 1 If lst1.List(i) < lst2.List(j) Then Exit For Next j lst2.AddItem lst1.List(i), j lst1.RemoveItem i End If Next i End Sub
j'ai encore juste un petit problème, et après, je ne te dérange plus: je voudrais faire la même chose avec lstbox2, c'est à dire les supprimer et les remettre dans lstbox1. j'ai fait comme tu m'as dit: je commence par la fin pour la suppression. le problème, c'est que dans ma lstbox1, les informations se retrouvent à la fin, non triées.
comment puis-je faire pour soit mettre les valeurs de lstbox1 au bon endroit, soir les retriées à la fin?
merci "Jacques93" a écrit dans le message de news:et%
Bonjour Cecile,
Essaie :
Dim i As Integer
For i = lstBox1.ListCount - 1 To 0 Step -1 If lstBox1.Selected(i) Then lstBox2.AddItem lstBox1.List(i), 0 lstBox1.RemoveItem i End If Next i
Quand on vide une liste, il vaut mieux commencer par la fin :-)
Bonjour, j'aimerais faire "communiquer des valeurs" entre 2 listbox c'est à dire choisir des valeurs dans lstbox1, et en cliquant sur le
bouton
BT1, mettre les valeurs dans lstbox2, et les supprimer de lstbox1
Voici mon code :
For i = 0 To lstbox1.ListCount - 1 If lstbox1(i) = True Then lstbox2.AddItem lstbox1.List(i) lstbox1.RemoveItem i End If Next i
Le problème est que j'ai l'erreur suivante: "Erreur d'éxécution" " Impossible de lire la propriété Selected. Argument non valide"
à noter que je n'ai pas cette erreur quand j'enlève la ligne avec removeItem.
Comment faire pour que la valeur qui est passé dans lstbox2 ne soit plus dans lstbox1? merci
-- Cordialement,
Jacques.
-- Cordialement,
Jacques.
Tu ne déranges pas,
Les Listbox sous Excel n'ayant pas, sauf erreur de ma part, de propriété
Sorted, il faut le faire soit même, cela dit pas la peine de tout
retrier à la fin. Essaie ceci :
Private Sub cmdAdd1_Click()
Add2List lstBox1, lstBox2
End Sub
Private Sub cmdAdd2_Click()
Add2List lstBox2, lstBox1
End Sub
Private Sub Add2List(lst1 As MSForms.ListBox, lst2 As MSForms.ListBox)
Dim i As Integer
Dim j As Integer
For i = lst1.ListCount - 1 To 0 Step -1
If lst1.Selected(i) Then
For j = 0 To lst2.ListCount - 1
If lst1.List(i) < lst2.List(j) Then Exit For
Next j
lst2.AddItem lst1.List(i), j
lst1.RemoveItem i
End If
Next i
End Sub
j'ai encore juste un petit problème, et après, je ne te dérange plus:
je voudrais faire la même chose avec lstbox2, c'est à dire les supprimer et
les remettre dans lstbox1.
j'ai fait comme tu m'as dit: je commence par la fin pour la suppression.
le problème, c'est que dans ma lstbox1, les informations se retrouvent à la
fin, non triées.
comment puis-je faire pour soit mettre les valeurs de lstbox1 au bon
endroit, soir les retriées à la fin?
merci
"Jacques93" <jacques@NoSpam> a écrit dans le message de
news:et%23kEEzzFHA.3188@TK2MSFTNGP14.phx.gbl...
Bonjour Cecile,
Essaie :
Dim i As Integer
For i = lstBox1.ListCount - 1 To 0 Step -1
If lstBox1.Selected(i) Then
lstBox2.AddItem lstBox1.List(i), 0
lstBox1.RemoveItem i
End If
Next i
Quand on vide une liste, il vaut mieux commencer par la fin :-)
Bonjour,
j'aimerais faire "communiquer des valeurs" entre 2 listbox
c'est à dire choisir des valeurs dans lstbox1, et en cliquant sur le
bouton
BT1, mettre les valeurs dans lstbox2, et les supprimer de lstbox1
Voici mon code :
For i = 0 To lstbox1.ListCount - 1
If lstbox1(i) = True Then
lstbox2.AddItem lstbox1.List(i)
lstbox1.RemoveItem i
End If
Next i
Le problème est que j'ai l'erreur suivante:
"Erreur d'éxécution"
" Impossible de lire la propriété Selected. Argument non valide"
à noter que je n'ai pas cette erreur quand j'enlève la ligne avec
removeItem.
Comment faire pour que la valeur qui est passé dans lstbox2 ne soit plus
dans lstbox1?
merci
Les Listbox sous Excel n'ayant pas, sauf erreur de ma part, de propriété Sorted, il faut le faire soit même, cela dit pas la peine de tout retrier à la fin. Essaie ceci :
Private Sub cmdAdd1_Click() Add2List lstBox1, lstBox2 End Sub
Private Sub cmdAdd2_Click() Add2List lstBox2, lstBox1 End Sub
Private Sub Add2List(lst1 As MSForms.ListBox, lst2 As MSForms.ListBox) Dim i As Integer Dim j As Integer
For i = lst1.ListCount - 1 To 0 Step -1 If lst1.Selected(i) Then For j = 0 To lst2.ListCount - 1 If lst1.List(i) < lst2.List(j) Then Exit For Next j lst2.AddItem lst1.List(i), j lst1.RemoveItem i End If Next i End Sub
j'ai encore juste un petit problème, et après, je ne te dérange plus: je voudrais faire la même chose avec lstbox2, c'est à dire les supprimer et les remettre dans lstbox1. j'ai fait comme tu m'as dit: je commence par la fin pour la suppression. le problème, c'est que dans ma lstbox1, les informations se retrouvent à la fin, non triées.
comment puis-je faire pour soit mettre les valeurs de lstbox1 au bon endroit, soir les retriées à la fin?
merci "Jacques93" a écrit dans le message de news:et%
Bonjour Cecile,
Essaie :
Dim i As Integer
For i = lstBox1.ListCount - 1 To 0 Step -1 If lstBox1.Selected(i) Then lstBox2.AddItem lstBox1.List(i), 0 lstBox1.RemoveItem i End If Next i
Quand on vide une liste, il vaut mieux commencer par la fin :-)
Bonjour, j'aimerais faire "communiquer des valeurs" entre 2 listbox c'est à dire choisir des valeurs dans lstbox1, et en cliquant sur le
bouton
BT1, mettre les valeurs dans lstbox2, et les supprimer de lstbox1
Voici mon code :
For i = 0 To lstbox1.ListCount - 1 If lstbox1(i) = True Then lstbox2.AddItem lstbox1.List(i) lstbox1.RemoveItem i End If Next i
Le problème est que j'ai l'erreur suivante: "Erreur d'éxécution" " Impossible de lire la propriété Selected. Argument non valide"
à noter que je n'ai pas cette erreur quand j'enlève la ligne avec removeItem.
Comment faire pour que la valeur qui est passé dans lstbox2 ne soit plus dans lstbox1? merci
-- Cordialement,
Jacques.
-- Cordialement,
Jacques.
michdenis
Bonjour Cecile,
Pour initialer ta liste à l'ouverture du formulaire : En adaptant le nom de la feuille et de la plage de cellules ... '-------------------------------- Private Sub UserForm_Initialize()
Dim Tblo As Variant With Worksheets("Feuil1") Tblo = .Range("A1:A" & .Range("A65536").End(xlUp).Row) End With Me.ListBox1.List = Tblo
End Sub '--------------------------------
Transférer données listbox1 vers listbox2 dans le même ordre :
'--------------------------------- Private Sub CommandButton1_Click()
Dim Nb As Long, A As Integer With ListBox1 Nb = .ListCount - 1 Do While A <= Nb If .Selected(A) Then ListBox2.AddItem Me.ListBox1.List(A) .ListIndex = A .RemoveItem .ListIndex Nb = Nb - 1 A = A - 1 End If A = A + 1 Loop End With
End Sub '---------------------------------
Pour trier une liste après avoir ajouté des données :
Private Sub CommandButton2_Click()
Me.ListBox2.List = ListSort(Me.ListBox2.List)
End Sub
'La fonction tu peux la copier dans un module standard ou la laisser 'dans le module du formulaire '----------------------------------- Function ListSort(liSte) ' Trie un tableau en ordre croissant
Dim First As Integer, Last As Integer Dim i As Integer, j As Integer Dim Temp First = LBound(liSte) Last = UBound(liSte) For i = First To Last - 1 For j = i + 1 To Last If liSte(i, 0) > liSte(j, 0) Then Temp = liSte(j, 0) liSte(j, 0) = liSte(i, 0) liSte(i, 0) = Temp End If Next j Next i ListSort = liSte End Function '-----------------------------------
Salutations!
"Cecile" a écrit dans le message de news: Bonjour, j'aimerais faire "communiquer des valeurs" entre 2 listbox c'est à dire choisir des valeurs dans lstbox1, et en cliquant sur le bouton BT1, mettre les valeurs dans lstbox2, et les supprimer de lstbox1
Voici mon code :
For i = 0 To lstbox1.ListCount - 1 If lstbox1(i) = True Then lstbox2.AddItem lstbox1.List(i) lstbox1.RemoveItem i End If Next i
Le problème est que j'ai l'erreur suivante: "Erreur d'éxécution" " Impossible de lire la propriété Selected. Argument non valide"
à noter que je n'ai pas cette erreur quand j'enlève la ligne avec removeItem.
Comment faire pour que la valeur qui est passé dans lstbox2 ne soit plus dans lstbox1? merci
Bonjour Cecile,
Pour initialer ta liste à l'ouverture du formulaire :
En adaptant le nom de la feuille et de la plage de cellules ...
'--------------------------------
Private Sub UserForm_Initialize()
Dim Tblo As Variant
With Worksheets("Feuil1")
Tblo = .Range("A1:A" & .Range("A65536").End(xlUp).Row)
End With
Me.ListBox1.List = Tblo
End Sub
'--------------------------------
Transférer données listbox1 vers listbox2 dans le même ordre :
'---------------------------------
Private Sub CommandButton1_Click()
Dim Nb As Long, A As Integer
With ListBox1
Nb = .ListCount - 1
Do While A <= Nb
If .Selected(A) Then
ListBox2.AddItem Me.ListBox1.List(A)
.ListIndex = A
.RemoveItem .ListIndex
Nb = Nb - 1
A = A - 1
End If
A = A + 1
Loop
End With
End Sub
'---------------------------------
Pour trier une liste après avoir ajouté des données :
Private Sub CommandButton2_Click()
Me.ListBox2.List = ListSort(Me.ListBox2.List)
End Sub
'La fonction tu peux la copier dans un module standard ou la laisser
'dans le module du formulaire
'-----------------------------------
Function ListSort(liSte)
' Trie un tableau en ordre croissant
Dim First As Integer, Last As Integer
Dim i As Integer, j As Integer
Dim Temp
First = LBound(liSte)
Last = UBound(liSte)
For i = First To Last - 1
For j = i + 1 To Last
If liSte(i, 0) > liSte(j, 0) Then
Temp = liSte(j, 0)
liSte(j, 0) = liSte(i, 0)
liSte(i, 0) = Temp
End If
Next j
Next i
ListSort = liSte
End Function
'-----------------------------------
Salutations!
"Cecile" <cecile@hotmail.com> a écrit dans le message de news: ObKN0nyzFHA.3408@TK2MSFTNGP09.phx.gbl...
Bonjour,
j'aimerais faire "communiquer des valeurs" entre 2 listbox
c'est à dire choisir des valeurs dans lstbox1, et en cliquant sur le bouton
BT1, mettre les valeurs dans lstbox2, et les supprimer de lstbox1
Voici mon code :
For i = 0 To lstbox1.ListCount - 1
If lstbox1(i) = True Then
lstbox2.AddItem lstbox1.List(i)
lstbox1.RemoveItem i
End If
Next i
Le problème est que j'ai l'erreur suivante:
"Erreur d'éxécution"
" Impossible de lire la propriété Selected. Argument non valide"
à noter que je n'ai pas cette erreur quand j'enlève la ligne avec
removeItem.
Comment faire pour que la valeur qui est passé dans lstbox2 ne soit plus
dans lstbox1?
merci
Pour initialer ta liste à l'ouverture du formulaire : En adaptant le nom de la feuille et de la plage de cellules ... '-------------------------------- Private Sub UserForm_Initialize()
Dim Tblo As Variant With Worksheets("Feuil1") Tblo = .Range("A1:A" & .Range("A65536").End(xlUp).Row) End With Me.ListBox1.List = Tblo
End Sub '--------------------------------
Transférer données listbox1 vers listbox2 dans le même ordre :
'--------------------------------- Private Sub CommandButton1_Click()
Dim Nb As Long, A As Integer With ListBox1 Nb = .ListCount - 1 Do While A <= Nb If .Selected(A) Then ListBox2.AddItem Me.ListBox1.List(A) .ListIndex = A .RemoveItem .ListIndex Nb = Nb - 1 A = A - 1 End If A = A + 1 Loop End With
End Sub '---------------------------------
Pour trier une liste après avoir ajouté des données :
Private Sub CommandButton2_Click()
Me.ListBox2.List = ListSort(Me.ListBox2.List)
End Sub
'La fonction tu peux la copier dans un module standard ou la laisser 'dans le module du formulaire '----------------------------------- Function ListSort(liSte) ' Trie un tableau en ordre croissant
Dim First As Integer, Last As Integer Dim i As Integer, j As Integer Dim Temp First = LBound(liSte) Last = UBound(liSte) For i = First To Last - 1 For j = i + 1 To Last If liSte(i, 0) > liSte(j, 0) Then Temp = liSte(j, 0) liSte(j, 0) = liSte(i, 0) liSte(i, 0) = Temp End If Next j Next i ListSort = liSte End Function '-----------------------------------
Salutations!
"Cecile" a écrit dans le message de news: Bonjour, j'aimerais faire "communiquer des valeurs" entre 2 listbox c'est à dire choisir des valeurs dans lstbox1, et en cliquant sur le bouton BT1, mettre les valeurs dans lstbox2, et les supprimer de lstbox1
Voici mon code :
For i = 0 To lstbox1.ListCount - 1 If lstbox1(i) = True Then lstbox2.AddItem lstbox1.List(i) lstbox1.RemoveItem i End If Next i
Le problème est que j'ai l'erreur suivante: "Erreur d'éxécution" " Impossible de lire la propriété Selected. Argument non valide"
à noter que je n'ai pas cette erreur quand j'enlève la ligne avec removeItem.
Comment faire pour que la valeur qui est passé dans lstbox2 ne soit plus dans lstbox1? merci