Problème de compilation

Fermé
Tinavany2008 Messages postés 1 Date d'inscription jeudi 16 novembre 2017 Statut Membre Dernière intervention 16 novembre 2017 - Modifié le 16 nov. 2017 à 20:37
yg_be Messages postés 23352 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 novembre 2024 - 16 nov. 2017 à 21:15
Bonsoir,

Je débute depuis quelques mois dans le programmation VBA sur excel. Après de longues heures de vidéos et de recherche je suis arrivé à faire une parti du programme ci-dessous. Le problème est le suivant. Quand je veux lancer mon formulaire, visuel basic me marque " erreur de compilation " . J'ai cherché partout sans succès.

Quelqu'un à une solution?

Voici le code :

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
End If
End Sub

'Pour le bouton Nouveau contact
Private Sub CommandButton1_Click()
Dim L As Integer
If MsgBox("Confirmez-vous l'insertionde ce nouveau contacte?", vbYesNo, "Demande de confirmationd'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






Merci d'avance


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

Merci d'y penser dans tes prochains messages.



1 réponse

yg_be Messages postés 23352 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 novembre 2024 Ambassadeur 1 554
16 nov. 2017 à 21:15
bonsoir, d'habitude, Excel indique sur quelle ligne se situe l'erreur. tu peux aussi forcer la compilation dans l'éditeur VBA, au lieu d'attendre l’exécution d'un formulaire.
0