Supprimer d'une liste un item sélectionné vba
Fermé
bithack
Messages postés
129
Date d'inscription
mercredi 29 octobre 2014
Statut
Membre
Dernière intervention
16 mars 2016
-
16 mars 2016 à 10:36
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 - 16 mars 2016 à 14:10
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 - 16 mars 2016 à 14:10
Bonjour à tous,
comme dans le titre, j'ai une erreur, j'ai dans un userform un textbox (liste) qui me permet lorsque je clique sur un bouton ajouter des items dans cette liste. A présent je voudrai donner a l'utilisateur de pouvoir supprimer un item dans cette liste. lorsque je clique dessus je voudrai le sélectionner (surbrillance) puis après je clique sur un bouton supprimer qui l’enlèverai de cette liste.
j’espère avoir était assez clair, je vous remercie par avance de votre aide !!!
comme dans le titre, j'ai une erreur, j'ai dans un userform un textbox (liste) qui me permet lorsque je clique sur un bouton ajouter des items dans cette liste. A présent je voudrai donner a l'utilisateur de pouvoir supprimer un item dans cette liste. lorsque je clique dessus je voudrai le sélectionner (surbrillance) puis après je clique sur un bouton supprimer qui l’enlèverai de cette liste.
j’espère avoir était assez clair, je vous remercie par avance de votre aide !!!
3 réponses
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
16 mars 2016 à 10:43
16 mars 2016 à 10:43
Bonjour,
Voir ceci:
https://silkyroad.developpez.com/VBA/ControlesUserForm/#LII-G
Voir ceci:
https://silkyroad.developpez.com/VBA/ControlesUserForm/#LII-G
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
Modifié par cs_Le Pivert le 16/03/2016 à 13:43
Modifié par cs_Le Pivert le 16/03/2016 à 13:43
Donc si tu as lu ce tuto jusqu'au bout tu as la solution!
@+ Le Pivert
Option Explicit Private Sub CommandButton1_Click() Dim index As Integer ListBox1.RemoveItem (ListBox1.ListIndex) index = ListBox1.ListIndex + 1 Rows(index & ":" & index).Delete Shift:=xlUp'supprime la ligne End Sub Private Sub UserForm_Initialize() Dim Cell As Range Dim Unique As New Collection Dim Valeur As Range Dim i As Integer 'Récupère la derniere ligne non vide dans la colonne A i = Range("A65536").End(xlUp).Row On Error Resume Next 'boucle sur les cellules de la colonne A For Each Cell In Range("A1:A" & i) 'Stocke les données dans une collection '(La collection n'accepte que des données uniques et permet donc ' de filtrer facilement les doublons). Unique.Add Cell, CStr(Cell) Next Cell On Error GoTo 0 'Boucle sur le contenu de la collection pour alimenter la ListBox For Each Valeur In Unique Me.ListBox1.AddItem Valeur Next Valeur End Sub
@+ Le Pivert
ThauTheme
Messages postés
1442
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
29 juillet 2022
160
16 mars 2016 à 14:10
16 mars 2016 à 14:10
Bonjour le fil, bonjour le forum,
À adapter... Une Userform avec une Combobox1, un CommandButton1 / Ajouter, un CommandButton2 / Supprimer. La liste des items se trouve dans la colonne A à partir de la ligne 2. A1 contient une étiquette... Code commenté.
À adapter... Une Userform avec une Combobox1, un CommandButton1 / Ajouter, un CommandButton2 / Supprimer. La liste des items se trouve dans la colonne A à partir de la ligne 2. A1 contient une étiquette... Code commenté.
Private DL As Integer 'décalre la variable DL (Dernière Ligne) Private Sub UserForm_Initialize() DL = Cells(Application.Rows.Count, 1).End(xlUp).Row Me.ComboBox1.List = Range("A2:A" & DL).Value End Sub Private Sub CommandButton1_Click() 'bouton "Ajouter" Cells(DL + 1, 1).Value = Me.ComboBox1.Value 'rajoute la données de la combobox dans la liste de la colonne A 'à supprimer si non nécéssaire '***************************** 'tri par ordre alphabétique de la liste contenant une étiquette en ligne 1 ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Clear ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Add Key:=Range("A1") _ , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With ActiveWorkbook.Worksheets("Feuil1").Sort .SetRange Range("A:A") .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With '***************************** End Sub Private Sub CommandButton2_Click() 'bouton "Supprimer" With Me.ComboBox1 'prend en compte la ComboBox1 .RemoveItem (.ListIndex) 'supprime de la ComboBox1 l'Item sélectionné For I = DL To 2 Step -1 'boucle inversée sur le ligne Dl à 2 'si la cellule en colonne 1 (=A) est égale à la valeur de la ComboBox1, supprime la ligne If Cells(I, 1).Value = Me.ComboBox1.Value Then Rows(I).Delete: Exit For Next I 'prochaine ligne de la boucle End With 'fin de la prise en compte de la ComboBox1 Unload Me 'vide et ferme l'UserForm UserForm1.Show 'affiche l'UserForm1 End Sub
16 mars 2016 à 11:14
je vous remercie de votre réponse !