Bonsoir,

J'ai un petit problème avec une ComboBox dans un UserForm.

Cet UserForm comprend :
1° - un CommandButton qui permet de créer un client et nommer le champ avec le code suivant

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Private Sub CommandButton1_Click()
Worksheets("Commandes").Activate
FeuilleActive = ActiveSheet.Name
Application.ScreenUpdating = False
    NomClient = Application.InputBox("Saisir le Nom du client", ClasseurActif)
    If NomClient = "" Then Exit Sub
    Columns(1).Cells.Find("*", [A1], , , , xlPrevious).Offset(1, 0).Select 'la dernière cellule dans la colonne A + 1
    ActiveCell = NomClient
    NomClient1 = LCase(Replace(NomClient, " ", "_"))
    ActiveWorkbook.Names.Add Name:=LCase(Replace(NomClient1, "-", "_")), RefersToR1C1:=Range(ActiveCell, ActiveCell.Offset(0, 9))
    Worksheets("Liste noms").Activate
    Columns(1).Cells.Find("*", [A1], , , , xlPrevious).Offset(1, 0) = NomClient
    Range("A2", Selection.End(xlDown)).Select
    Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
    Worksheets(FeuilleActive).Activate
Application.ScreenUpdating = True
End Sub
Jusque la tout va bien

2° - un Combobox qui utilise RowSource «liste_noms» dans la feuille "Liste noms" et permet de supprimer un client avec le code suivant

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Private Sub ComboBox2_Change()
NomClient2 = LCase(Replace(ComboBox2.Value, " ", "_"))
NomClient3 = LCase(Replace(NomClient2, "-", "_"))
'MsgBox NomClient3
'MsgBox "phase suppression chantier"
    Application.ScreenUpdating = False
        Application.Goto Reference:="données"
        On Error Resume Next
        Range(NomClient3).Select
        Selection.EntireRow.Delete
        ActiveWorkbook.Names(NomClient3).Delete
        Sheets("Liste noms").Cells.Find(What:=ComboBox2, After:=ActiveCell, LookIn:=xlFormulas, _
        LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False).EntireRow.Delete
        AppActivate "Microsoft Excel"
        ComboBox2 = "Supprimer un clients"
    Application.ScreenUpdating = True
End Sub
La çà fonctionne moins bien, car si le choix du client a supprimer est «DARDAR» dans la ComboBox pour une liste comportant les noms «DARDAR, DUPONT, DURAND, DUPUIS», les noms «DARDAR» et «DUPONT» seront supprimés et pas les autres, je ne comprend pas le pourquoi et comment ?

Je n’ai pas trouvé de réponse sur internet.

Une aide et une explication seraient appréciables.

Merci d’avance.
Cordialement modus57