transfert entre listbox

petitcoco

XLDnaute Nouveau
Bonjour,

Je n'ai pas trouvé dans le forum mais je suppose que ca doit déjà exister :
un userform avec deux listbox et des boutons de commande pour compléter la listbox2 avec les éléments de la listbox1 et inversément: soit certains éléments, soit tous les éléments et supprimer ces éléments dans la listbox d'origine.

Dans l'exemple joint, je sais transférer tout de l'une à l'autre mais pas une partie car je n'arrive pas a supprimer un élément d'une listbox après l'avoir transférer dans l'autre.

Merci [file name=dbllistbox.zip size=12584]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/dbllistbox.zip[/file]
 

Pièces jointes

  • dbllistbox.zip
    12.3 KB · Affichages: 43

Hervé

XLDnaute Barbatruc
Bonjour petit coco

en pièce jointe ton fichier modifié.

Pour supprimer un item de ta listbox il te faut utiliser listbox1.removeitem(index)

comme tu es en multiselection, il te faut boucler à l'envers (for i=listbox1.listcount-1 to 0 step -1) sur chaque élément de la listbox, sinon tu aura une erreur puisque tu supprimes des iterations dans ta boucle (suis-je clair ?)

donc, nouveau souci, tes éléments sont renvoyées en sens inverse de leurs sélections, ex :

tu sélectionnes a et ben listbox1, et tu retrouves en listbox2: b et a.

si ceci est génant, reviens nous le dire, on fera autrement.

salut [file name=dbllistbox_20060313114026.zip size=12629]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/dbllistbox_20060313114026.zip[/file]
 

Pièces jointes

  • dbllistbox_20060313114026.zip
    12.3 KB · Affichages: 58

Robert

XLDnaute Barbatruc
Repose en paix
Bonjour PetitCoco, Hervé, bonjour le forum,

Hou j'ai bien galéré sur ce coup-là... Alors qu'Hervé a dû faire ça les doigts dans le nez (il n'a aucune tenue ce gars...). J'envoie quand même m'a proposition assez différente de celle d'Hervé puisque j'utilise la colonne B pour la ListBox2, car sinon à la réouverture de l'UserForm tout est réinitialisé et je ne vois plus l'intérêt...
[file name=dbllistbox_v2.zip size=16877]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/dbllistbox_v2.zip[/file]
 

Pièces jointes

  • dbllistbox_v2.zip
    16.5 KB · Affichages: 58

Hervé

XLDnaute Barbatruc
re petitcoco, salut robert :)

ah oui, tu as raison, faut bien renvoyer les données apres sinon ca ne sert à rien.

personnellement j'utilise l'evenement terminate, comme ca on ne fait la manip qu'une fois :



Private Sub UserForm_Terminate()
Dim i As Byte

For i = 1 To 2
        Columns(i).Clear
       
With Controls('listbox' & i)
               
If Not .ListCount = 0 Then
                        Cells(1, i).Resize(.ListCount, 1) = .List
               
End If
       
End With
Next i

End Sub

et à l'initialize :


Private Sub UserForm_Activate()
Dim i As Byte
Dim j As Integer

For i = 1 To 2
       
For j = 1 To Cells(65536, i).End(xlUp).Row
                Controls('listbox' & i).AddItem Cells(j, i)
       
Next j
Next i

End Sub



salut
 

Robert

XLDnaute Barbatruc
Repose en paix
Bonjour PetitCoco, Hervé, bonjour le forum,

PetitCoco : tu fais comme si je n'existais pas d'accord... Tu prends la demo à Hervé.

Hervé : c'est même pas drôle... (heu oui ! Y'avait bien un défaut dans ma démo mais toi aussi fait comme PetitCoco. Pffff... c'est dur d'écrire la tête dan sle sable...)
 

Discussions similaires

Statistiques des forums

Discussions
312 305
Messages
2 087 080
Membres
103 457
dernier inscrit
fab2614