je viens de terminé mon formulaire - accompagné de la macro - F5
message d'erreur

erreur d'exécution '9'
L'indice n'appartient pas à la sélection

je séche - sans doute une petite boulette mais oucopie Récapitulatif ameliorations X3 macro.xlsm



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
Option Explicit
Dim Ws As Worksheet
 
'Pour le formulaire
Private Sub UserForm_Initialize()
    Dim J As Long
    Dim I As Integer
 
    ComboBox1.ColumnCount = 1 'Pour la liste d?roulante X3/SAP
    ComboBox1.List() = Array("", "X3", "SAP", "X3/SAP")
    Set Ws = Sheets("Demandes") '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 10
        Me.Controls("TextBox" & I).Visible = True
    Next I
End Sub
 
'Pour la liste d?roulante Code NUM
Private Sub ComboBox2_Change()
    Dim Ligne As Long
    Dim I As Integer
 
    If Me.ComboBox2.ListIndex = -1 Then Exit Sub
    Ligne = Me.ComboBox1.ListIndex + 2
    ComboBox2 = Ws.Cells(Ligne, "B")
    For I = 1 To 10
        Me.Controls("TextBox" & I) = Ws.Cells(Ligne, I + 2)
    Next I
End Sub
 
'Pour le bouton Nouvelle Fiche
Private Sub CommandButton1_Click()
    Dim L As Integer
    If MsgBox("Confirmez-vous l'insertion de ce nouvelle fiche ?", vbYesNo, "Demande de confirmation d'ajout") = vbYes Then
        L = Sheets("NUM").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
        Range("F" & L).Value = TextBox4
        Range("G" & L).Value = TextBox5
        Range("H" & L).Value = TextBox6
        Range("I" & L).Value = TextBox7
        Range("J" & L).Value = TextBox8
        Range("K" & L).Value = TextBox9
        Range("L" & L).Value = TextBox10
    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 la fiche ?", 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 10
            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