Bonjour,
J’ai une 5 listbox dans le même userform.
Dans ces listes je dois supprimer des éléments comme suit:
1- sélectionner l’item a supprimer, si on le choisit pas on a un message qui s’affiche:
« Choisir l’élément a supprimer »
2- cliquer sur un bouton pour supprimer l’item
3- Message s’affiche(« Etes vous sur de vouloir supprimer ? »
4-Répondre par oui : item supprimé de la liste et de la feuille
5-Répondre par non: Rien ne se produit
*Opération se fait 5 fois vu que je travaille sur 5 liste ca depend l’element il est ou.
Code:
Private Sub CommandButton23_Click()
Dim ws_Lame As Worksheet
Dim Modele As String
Dim Plage, Plage1, Plage2, Plage3 As Range
Dim Trouve, Trouve1, Trouve2, Trouve3 As Range
Dim L, L1, L2, L3, L4 As Integer
Modele = « Liste_Lame_ » & Me.TextBox1.Value
Set ws_Lame = ActiveWorkbook.Worksheets(Modele)
dl = ws_Lame.Range(« A65530 »).End(xlUp).Row
'Supprimer lame de la liste de toutes les lames
If Me.ListBox_Lames.ListIndex = -1 Then
MsgBox (« Veuillez choisir une lame »)
Else
If MsgBox(« Etes vous sur de vouloir suprimer ? », vbYesNo) = vbYes Then
L = ListBox_Lames.ListIndex + 2
Lame = Me.ListBox_Lames.Value
Set Plage = ws_Lame.Columns(2)
Set Trouve = Plage.Cells.Find(what:=Lame)
If Trouve Is Nothing Then
Else
ws_Lame.Range(« B » & L).Delete shift:=xlUp
ListBox_Lames.List = ws_Lame.Range(« B2:B » & dl).Value
End If
End If
End If
'Supprimer une lame a cntroler
If Me.ListBox_LamesAC.ListIndex = -1 Then
MsgBox (« Veuillez choisir une lame »)
Else
If MsgBox(« Etes vous sur de vouloir suprimer ? », vbYesNo) = vbYes Then
L1 = ListBox_LamesAC.ListIndex + 2
LameAC = Me.ListBox_LamesAC.Value
Set Plage1 = ws_Lame.Columns(3)
Set Trouve1 = Plage1.Cells.Find(what:=LameAC)
If Trouve1 Is Nothing Then
Else
ws_Lame.Range(« C » & L1).Delete shift:=xlUp
End If
ListBox_LamesAC.List = ws_Lame.Range(« C2:C » & dl).Value
End If
End If
'Supprimer une lame controlée
If Me.ListBox_LamesC.ListIndex = -1 Then
MsgBox (« Veuillez choisir une lame »)
Else
If MsgBox(« Etes vous sur de vouloir suprimer ? », vbYesNo) = vbYes Then
L2 = ListBox_LamesC.ListIndex + 2
LamesC = Me.ListBox_LamesC.Value
Set Plage2 = ws_Lame.Columns(4)
Set Trouve2 = Plage2.Cells.Find(what:=LamesC)
If Trouve2 Is Nothing Then
Else
ws_Lame.Range(« D » & L2).Delete shift:=xlUp
End If
ListBox_LamesC.List = ws_Lame.Range(« D2:D » & dl).Value
End If
End If
'Supprimer lame en service
If Me.ListBox_LamesS.ListIndex = -1 Then
MsgBox (« Veuillez choisir une lame »)
Else
If MsgBox(« Etes vous sur de vouloir suprimer ? », vbYesNo) = vbYes Then
L3 = ListBox_LamesS.ListIndex + 2
LamesS = Me.ListBox_LamesS.Value
Set Plage3 = ws_Lame.Columns(5)
Set Trouve3 = Plage3.Cells.Find(what:=LamesS)
If Trouve3 Is Nothing Then
Else
ws_Lame.Range(« E » & L3).Delete shift:=xlUp
End If
ListBox_LamesS.List = ws_Lame.Range(« E2:E » & dl).Value
End If
End If
'Supprimer lame a réafuuter
If Me.ListBox_LamesS.ListIndex = -1 Then
MsgBox (« Veuillez choisir une lame »)
Else
If MsgBox(« Etes vous sur de vouloir suprimer ? », vbYesNo) = vbYes Then
L4 = ListBox_LamesR.ListIndex + 2
LamesR = Me.ListBox_LamesR.Value
Set Plage4 = ws_Lame.Columns(6)
Set Trouve4 = Plage4.Cells.Find(what:=LamesR)
If Trouve4 Is Nothing Then
Else
ws_Lame.Range(« F » & L4).Delete shift:=xlUp
End If
ListBox_LamesR.List = ws_Lame.Range(« F2:F » & dl).Value
End If
End If
End Sub
Problème:
Affichage du message 5 fois:
MsgBox (« Veuillez choisir une lame »)
Or qu’il doit s’afficher seulement qu’on choisi un élément d’une seule liste.