Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 Listbox 1 vers Listbbox2

AZZAOUI

XLDnaute Nouveau
Bonjour ,

J'ai une base de donnée sous Excel qui contient plusieurs onglets , donc j'ai pensé à construire un UF qui sert à choisir les onglets à exporter dans un nouveau fichier.

Dans mon UF , J'ai deux listbox ( listbox1 = choixonglets & listbox = ongletAexporté , et j'ai deux boutons :

- Ajouter pour faire mon choix.

- Supprimer pour supprimer l'item dans la Listbox2 et l'afficher dans sa première place dans la Listbox1.

==> Le problème : l'item à supprimer dans la list , il ne retourne pas à sa première place , il s'affiche de fin de la list dans Listbox1.
ou bien un item que je dois l'ajouter et après je le supprimer et après je l'ajouter encore une fois ( il ne garde pas sans


VB:
Private Sub Ajouter_Click()

'transfert de la Liste des onglets -> Liste des onglets conservées

Dim g, gmax, n, m, h As Variant

gmax = ListBox1.ListCount - 1



For g = 0 To gmax



If ListBox1.Selected(g) = True Then

ListBox2.AddItem ListBox1.List(g, 0)

m = ListBox2.ListCount - 1

ListBox1.RemoveItem (g)

g = g - 1

End If



'pb de sortie de boucle for en fin de liste

gmax = ListBox1.ListCount - 1

If g = gmax Then Exit For

Next g

End Sub



------------------------------------------------



Private Sub Supprimer_Click()

'transfert de la Liste des onglets conservées -> Liste des onglets

Dim g, gmax, n, m As Variant

gmax = ListBox2.ListCount



For g = 0 To gmax

If ListBox2.Selected(g) = True Then

ListBox1.AddItem ListBox2.List(g, 0)

ListBox2.RemoveItem (g)

g = g - 1

End If

'pb de sortie de boucle for en fin de liste

gmax = ListBox2.ListCount

If g = gmax - 1 Then Exit For

Next g

End Sub
 

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

Un fichier exemple aurait été le bienvenu !

ou bien un item que je dois l'ajouter et après je le supprimer et après je l'ajouter encore une fois ( il ne garde pas sans

Bien que ne sachant pas trop ce que vous vouliez dire par (il ne garde pas sans, je me suis amusé à faire un exemple.

Les deux listbox ont 2 colonnes. Leur deuxième colonne est cachée. Cette deuxième colonne contient l'index d'ordre 1 à n des items dans la listbox1.

Lorsque vous supprimez un item de la listbox2, l'index ordre caché dans la deuxième colonne permet de retrouver son ancienne position dans la listbox1 en parcourant les items de celle-ci du bas vers le haut.

A vous de l'adapter.

Codialement
 

Pièces jointes

  • Echanges ListBox.xlsm
    30.6 KB · Affichages: 37
Dernière édition:

Discussions similaires

Réponses
4
Affichages
420
Réponses
17
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…