Erreur dans UserForm / textbox
Bonjour,
Avant d'expliquer mon problème je vous explique comme utiliser le fichier.
Colonne A : code barre (GENCODE)
Colonne B : références
Colonne C : quantité
Un "CommandButton" Inventaire
Premièrement, ce qu'il se passe :
1/ je clique sur Inventaire
2/ je saisi un GENCODE (100005 pour l'exemple) dans la Textbox
3/ je clique sur Modifier
4/ je vois la valeur "12" apparaître dans la Texbox Quantité (pas normal vu que la quantité en rapport avec le GENCODE "10005" est 121
5/ je modifie la quantité "12" par "7" par exemple
6/ je clique sur Valider
7/ je vois bien "7" dans la Colonne C
En résumé le code lit la Colonne B et modifie la Colonne C alors qu'il devrait lire la Colonne C et modifier la Colonne C
Deuxièmement
1/ je clique sur Inventaire
2/ je NE saisi PAS de GENCODE et/ou QUANTITE
3/ je clique sur Valider
7/ j'ai une erreur
Comment faire en sorte que je retourne dans la boucle à la place d'avoir cette erreur ?
Ce code est un code que j'ai trouvé sur un forum et que j'ai modifié.
Merci à tous pour votre aide.
Cordialement
Sébastien
Bonjour,
Pour éviter l'erreur, tu peux tester dans ton bouton Valider ...(première instruction...)
If TextBox1 = "" Or TextBox2 = "" Then TextBox1.SetFocus: Exit Submerci, je vais commencer par ça
pour info voilà le code qui fonctionne, merci.
Private li As Integer 'déclare la variable li (LIgne)
Private modif As Boolean 'déclare la variable modif
Private ajout As Boolean 'déclare la variable ajout
Private Sub TextBox2_Change()
End Sub
Private Sub UserForm_Initialize() 'à l'initialisation de l'UserForm
modif = False 'initialise la variable modif
ajout = False 'initialise la variable ajout
End Sub
Private Sub TextBox1_AfterUpdate()
Dim pl As Range 'déclare la variable pl (PLage)
Dim x As Byte 'déclare la variable x (incrément)
If Me.TextBox1.Value = "" Then Exit Sub 'sort de la procédure si la TextBox1 est vide
'définit la plage pl (cellules éditées de la colonne A)
Set pl = Range(Cells(2, 1), Cells(Application.Rows.Count, 1).End(xlUp))
On Error Resume Next 'gestion des erreurs, en cas d'erreur passe à la ligne suivante
li = pl.Find(Me.TextBox1.Value, , xlValues, xlWhole).Row 'définit la ligne li (si aucune occurrence trouvée, génère une erreur)
If Err > 0 Then 'condition : si une erreur a été générée
If ajout = True Then 'condition : si la variable ajout est "Vrai"
Exit Sub 'sort de la procédure
End If
'sélectionne le texte de la TextBox1
Me.TextBox1.SelStart = 0 'début de la sélection
Me.TextBox1.SelLength = Len(Me.TextBox1.Value) 'longueur de la selection
MsgBox "Gencode invalide"
Exit Sub 'sort de la procédure
End If 'fin de la condition
'======================
'ici
TextBox2.Text = Cells(li, 3)
'======================
Me.TextBox2.SetFocus 'place le curseur dans la TextBox2 (Quantité)
Me.TextBox2.SelStart = 0 'début de la sélection
Me.TextBox2.SelLength = Len(Me.TextBox2.Value) 'longueur de la sélection
End Sub
Private Sub CommandButton1_Click() 'bouton "Valider"
Dim x As Byte 'déclare la variable x
If modif = True Or ajout = True Then
For x = 1 To 2 'boucle sur les 2 textboxes
Me.Controls("TextBox" & x).Value = Cells(li, x).Value
Next 'prochaine Textbox de la boucle
Else
'=========================================================
'ici
On Error Resume Next
Cells(li, 3).Value = CInt(Me.TextBox2.Value) 'répercute la quantité dans la cellule
If Err.Number Then
On Error GoTo 0
Exit Sub
End If
On Error GoTo 0
'========================================================
End If
Unload Me 'vide et ferme l'UserForm1
UserForm1.Show 'affiche l'Userform1
End Sub
Private Sub CommandButton2_Click() 'bouton "Modifier"
modif = True 'définit la variable modif
End Sub
Private Sub CommandButton4_Click() 'bouton "Sortir"
Unload Me 'vide et ferme l'UserForm1
End SubRe,
Content que tu aies trouvé la solution ...