S'il vous plaît,aidez-moi ,j'ai un programme de VBA mais il m’indique "l’er

Fermé
Wiem - Modifié le 3 déc. 2018 à 17:25
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 - 4 déc. 2018 à 06:44
Bonjour,

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 Civilité
    ComboBox2.List() = Array("", " M. ", " Mme ", " Mlle ")
     Set Ws = Sheets("Clients ") '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 client
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
    
    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
        Range(" F " & L).Value = TextBox4
        Range(" G " & L).Value = TextBox5
        Range(" H " & L).Value = TextBox6
        Range(" I " & L).Value = TextBox7
    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

Configuration: Windows / Chrome 70.0.3538.110



EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.
A voir également:

3 réponses

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 331
3 déc. 2018 à 18:19
Quelle est la question ?
0
L'erruer est dans la partie qui concerne "la formulaire"
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 331
3 déc. 2018 à 22:31
Quel message d'erreur ?
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
3 déc. 2018 à 18:19
Bonjour,

Range(" A " & J), (" TextBox " & I), Cells(Ligne, " B ")

Pourquoi vous mettez des espaces partout??????????????????????????????????????????
0
yg_be Messages postés 22722 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
3 déc. 2018 à 18:21
bonjour, quelle est l'erreur?
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
Modifié le 4 déc. 2018 à 06:45
Bonjour,
Espaces en trop presque "partout" ex:
Range(" A " & J), (" TextBox " & I), Cells(Ligne, " B ")

Ecrire comme ceci ex:
Range("A" & J), ("TextBox" & I), Cells(Ligne, "B")
0