Bonsoir,

J'ai trouver un tuto pour faire mon formulaire sous excel personnalisé ceux que j'ai fait mais j'ai modifier a mes attente seule problème je ne peux pas faire l'excution, il me mette une erreur : "Erreur d'exécution '9': L'indice n'appartient pas à la sélection.

Voici capture d'écran + le code
Nom : Capture.PNG
Affichages : 305
Taille : 5,5 Ko

Nom : Capture2.PNG
Affichages : 302
Taille : 12,1 Ko

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
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
Option Explicit
Dim Ws As Worksheet
 
'Pour le formulaire
Private Sub UserForm_Initialize()
    Dim J As Long
    Dim I As Integer
 
    ComboBox2.ColumnCount = 1 'Pour la liste déroulante Categorie
    ComboBox2.List() = Array("1", "2", "3")
    ComboBox3.ColumnCount = 2 'Pour la liste déroulante Achat/Vente
    ComboBox3.List() = Array("Achats", "Ventes", "3")
    Set Ws = Sheets("test") 'Correspond au nom de votre onglet dans le fichier Excel
    With Me.ComboBox1
        For J = 2 To Ws.Range("A" & Rows.Count).End(xlUp).Row
            .AddItem Ws.Range("A" & J)
        Next J
    End With
    For I = 1 To 7
        Me.Controls("TextBox" & I).Visible = True
    Next I
End Sub
'Pour la liste déroulante Code
Private Sub ComboBox1_Change()
    Dim Ligne As Long
    Dim I As Integer
 
    If Me.ComboBox1.ListIndex = -1 Then Exit Sub
    Ligne = Me.ComboBox1.ListIndex + 2
    ComboBox2 = Ws.Cells(Ligne, "B")
    For I = 1 To 7
        Me.Controls("TextBox" & I) = Ws.Cells(Ligne, I + 2)
    Next I
End Sub
 
 
'Pour le bouton Nouveau contact
Private Sub CommandButton1_Click()
    Dim L As Integer
    Dim J As Long
    Dim I As Integer
 
    If MsgBox("Confirmez-vous l'insertion de ce nouveau contact ?", vbYesNo, "Demande de confirmation d'ajout") = vbYes Then
        L = Sheets("Clients").Range("a65536").End(xlUp).Row + 1 'Pour placer le nouvel enregistrement à la première ligne de tableau non vide
        Range("A" & L).Value = ComboBox1
        Range("B" & L).Value = ComboBox2
        Range("C" & L).Value = TextBox1
        Range("D" & L).Value = TextBox2
        Range("E" & L).Value = TextBox3
        ComboBox1.Clear
        Set Ws = Sheets("test") 'Correspond au nom de votre onglet dans le fichier Excel
        With Me.ComboBox1
            For J = 2 To Ws.Range("A" & Rows.Count).End(xlUp).Row
                .AddItem Ws.Range("A" & J)
            Next J
        End With
    End If
End Sub
 
'Pour le bouton Modifier
Private Sub CommandButton2_Click()
    Dim Ligne As Long
    Dim I As Integer
 
    If MsgBox("Confirmez-vous la modification de ce contact ?", vbYesNo, "Demande de confirmation de modification") = vbYes Then
        If Me.ComboBox1.ListIndex = -1 Then Exit Sub
        Ligne = Me.ComboBox1.ListIndex + 2
        Ws.Cells(Ligne, "B") = ComboBox2
        For I = 1 To 7
            If Me.Controls("TextBox" & I).Visible = True Then
                Ws.Cells(Ligne, I + 2) = Me.Controls("TextBox" & I)
            End If
        Next I
    End If
End Sub
 
'Pour le bouton Quitter
Private Sub CommandButton3_Click()
    Unload Me
End Sub
Bonne soirée