Bonjour,
J'ai suivi un tutoriel pour créer un formule en vba. Cela me paraissait simple mais, j'ai un problème l'indice ne correspond pas à la sélection, erreur d’exécution 9.
A priori cela vient du nom de l'onglet que j'ai rectifié. Je poste le code, sachant que tout n'est pas cohérent car j'ai une liste civilité qui ne correspond en rien à mon besoin. Le problème ne vient pas de la.
J'ai fait un copié /collé du code et j'ai du retaper les guillemets et les apostrophes, j'ai l'impression que cela pourrait être un problème de ce genre. Je suis sous Mac.
Voila le code :
Je joins le fichier.
Merci de votre aide
J'ai suivi un tutoriel pour créer un formule en vba. Cela me paraissait simple mais, j'ai un problème l'indice ne correspond pas à la sélection, erreur d’exécution 9.
A priori cela vient du nom de l'onglet que j'ai rectifié. Je poste le code, sachant que tout n'est pas cohérent car j'ai une liste civilité qui ne correspond en rien à mon besoin. Le problème ne vient pas de la.
J'ai fait un copié /collé du code et j'ai du retaper les guillemets et les apostrophes, j'ai l'impression que cela pourrait être un problème de ce genre. Je suis sous Mac.
Voila le code :
Code:
Option Explicit
Dim Ws As Worksheet
Private Sub ComboBox3_Change()
End Sub
Private Sub Label9_Click()
End Sub
'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(" Checkin ") '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(" Do you want to insert this new contract ? ", vbYesNo, " Demande de confirmation d’ajout ") = vbYes Then
L = Sheets(" Checkin ").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(" Are you sure to edit this contract ? ", 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
Je joins le fichier.
Merci de votre aide