Bonjour fred29.
Bon vu que Banzai64 a été carrément plus rapide que moi, voilà quand même quelques explications si cela t'intéresse
La première partie qui plante est la suivante:
Private Sub obG1()
UserForm1.Frame1.Visible = UserForm1.OptionButton2.Value
If Me.OptionButton1.Value = True Then
For x = 1 To 5
Me.Controls("TextBox" & x).Value = ""
Next x
Me.TextBox1.SetFocus
nl = 0
End If
End Sub
En effet, on initialise les TextBox qui s'appellent TextBox1 , TextBox2, TextBox3, TextBox4 et TextBox5
Cependant tu as supprimé ces deux TextBox. La solution: ne pas faire
For x = 1 to 5
mais
For x = 1 to 3
Maintenant voyons l'exécution des commandes. Lorsque tu cliques sur le bouton "Valider", la procédure exécutée est: Private Sub CommandButton1_Click().
A l'intérieur de cette procédure, la partie problématique est la suivante:
For x = 0 To 4
dest.Offset(0, x).Value = Me.Controls("TextBox" & x + 1).Value
Next x
Pour x = 0 -> dest.Offset(0,0).Value = Me.constrols("Textbox1").Value
Traduction: Par rapport à ta cellule de destination "de base", je décalle de 0 ligne et 0 colonne, et j'y écris la valeur dans TextBox1
Pas de surprise, lorsque x va être égal à 3, on va essayer de récupérer la valeur de la Textbox4 (x + 1), qui n'existe plus.
Solution:
For x = 0 To 2
dest.Offset(0, x).Value = Me.Controls("TextBox" & x + 1).Value
Next x
Le bouton 'autre agence' est à supprimer. Il fait référence à un formulaire qui n'est pas présent dans ton excel. Je suppose que vu que tu l'a récupéré d'ailleurs, il n'a aucun intérêt pour toi.
Pour le reste, certaines parties du code sont incompréhensibles, et un peu bordéliques à mon gout donc pas de corrections pour le reste =)