Erreur dans UserForm / textbox
Résolu/Fermé
seblap47
Messages postés
2
Date d'inscription
lundi 28 février 2011
Statut
Membre
Dernière intervention
15 mars 2015
-
15 mars 2015 à 12:23
Maurice - 15 mars 2015 à 21:28
Maurice - 15 mars 2015 à 21:28
A voir également:
- Erreur dans UserForm / textbox
- Erreur 0x80070643 - Accueil - Windows
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- Erreur 1001 outlook - Accueil - Bureautique
- Instagram une erreur s'est produite ✓ - Forum Instagram
- Erreur 4201 ✓ - Forum Réseaux sociaux
4 réponses
Bonjour
Ci-dessous La procédure
Pour transmettre un fichier, il faut passer par un site de pièce jointe tel que cjoint.com
Va sur ce site : http://cjoint.com
Clic sur parcourir,
Cherche ton fichier,
clic sur ouvrir,
Clic sur "Créer le lien cjoint",
Copier le lien,
Revenir ici le coller dans une réponse
A+
Maurice
Ci-dessous La procédure
Pour transmettre un fichier, il faut passer par un site de pièce jointe tel que cjoint.com
Va sur ce site : http://cjoint.com
Clic sur parcourir,
Cherche ton fichier,
clic sur ouvrir,
Clic sur "Créer le lien cjoint",
Copier le lien,
Revenir ici le coller dans une réponse
A+
Maurice
seblap47
Messages postés
2
Date d'inscription
lundi 28 février 2011
Statut
Membre
Dernière intervention
15 mars 2015
15 mars 2015 à 15:22
15 mars 2015 à 15:22
merci pour la procédure.
Pour info voilà le code qui fonctionne :
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 Sub
Pour info voilà le code qui fonctionne :
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 Sub
bonjour
tu pense que je vais refaire ton fichier
car la je ne voie que du code
je ne peux rien faire avec ca
A+
Maurice
tu pense que je vais refaire ton fichier
car la je ne voie que du code
je ne peux rien faire avec ca
A+
Maurice
Bonsoir
en plus simple
A+
Maurice
en plus simple
Private Sub TextBox1_AfterUpdate() For Li = 2 To Range("A" & Rows.Count).End(xlUp).Row If TextBox1.Value = Range("A" & Li).Text Then TextBox2.Text = Cells(Li, 3) Exit Sub End If Next TextBox2.Value = "" TextBox1.Value = "" MsgBox "Gencode invalide" Li = 0 End Sub Private Sub TextBox2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) Select Case KeyAscii Case 48 To 57 'n'autorise que la rentrée de chiffre KeyAscii = KeyAscii Case Else KeyAscii = 0 End Select End Sub Private Sub CommandButton1_Click() If Li = 0 Then Exit Sub Cells(Li, 3).Value = Val(TextBox2.Value) End Sub
A+
Maurice