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
3 réponses
cs_Le Pivert
Messages postés
7883
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
18 mars 2023
724
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
7883
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
18 mars 2023
724
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 !