Différents formats Textbox dans Userform

degap05

XLDnaute Impliqué
Bonjour,
J'ai besoin de votre aide.
J'utilise un Userform avec 5 Textbox, pour entrer des données sur plusieurs feuilles d'un classeur et j'ai une erreur lorsque j'entre des données alphanumériques sur l'un d'eux (si je n'entre que des chiffres tout va bien). J'ai indiqué "texte" dans le format de la cellule, mais c'est idem.
Voici le code principal:

Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
ActiveSheet.Unprotect
nbr = CDbl(TextBox5)
For i = 1 To nbr
derlign = [A65000].End(xlUp).Row + 1
For j = 1 To 4
Cells(derlign, j) = IIf(j = 2, Controls("textbox" & j), Controls("textbox" & j))
If j = 4 Then Cells(derlign, j) = Cells(derlign, j) * 1
Next j
Next i
Unload Me
ActiveSheet.Protect
Application.ScreenUpdating = True
End Sub


En fait il faudrait que:
-Textbox 1 = date (de réception, cela est paramétré)
-Textbox 2 = alphanumérique (n° de lot)
-Textbox 3 = date (de péremption, cela est paramétré)
-Textbox 4 = alphanumérique (n° de bordereau de livraison)
-Textbox 5 = numérique (quantité reçue, pas de problème)

Merci pour votre aide.
 

kiki29

XLDnaute Barbatruc
Re : Différents formats Textbox dans Userform

Salut, un échantillon de saisies différentes suivant les TextBoxes, à adapter à ton contexte
 

Pièces jointes

  • SaisieNum.zip
    17.3 KB · Affichages: 257
  • SaisieNum.zip
    17.3 KB · Affichages: 225
  • SaisieNum.zip
    17.3 KB · Affichages: 230
Dernière édition:

Spitnolan08

XLDnaute Barbatruc
Re : Différents formats Textbox dans Userform

Bonsoir,

Comme ça, sans fichier, je ne vois pas ce qui cloche dans ton code si ce n'est que tu fais des tests pour rien :
Code:
Cells(derlign, j) = IIf(j = 2, Controls("textbox" & j), Controls("textbox" & j))
et
Code:
If j = 4 Then Cells(derlign, j) = Cells(derlign, j) * 1
et que perso, je préfère ajouter".value"

Cordialement
 

kiki29

XLDnaute Barbatruc
Re : Différents formats Textbox dans Userform

Re, tu as tous les éléments sous les yeux pour y parvenir
Sinon pour des saisies : 3 Lettres 7 Chiffres 3 Lettres avec MaxLength de TextBox8 à 13
Code:
Const entrees_entieres_permises = "0123456789" & vbCr & vbBack
Const entrees_alpha_permises = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" & vbCr & vbBack

Private Sub TextBox8_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    Select Case TextBox8.SelStart
        Case 0 To 2, 10 To 12
            If InStr(entrees_alpha_permises, Chr(KeyAscii)) = 0 Then KeyAscii = 0
        Case 3 To 9
            If InStr(entrees_entieres_permises, Chr(KeyAscii)) = 0 Then KeyAscii = 0
    End Select
    
    If KeyAscii = 13 Then SendKeys "{TAB}": KeyAscii = 0
End Sub
Tu dois remanier totalement ta procédure CommandButton1_Click,pour cela regarde le fichier SaisieNum, qui montre une utilisation correcte d'une UserForm pour des saisies

La vérification de longueur et/ou contenu des TextBoxes avant validation par Ok est naturellment à ajouter.
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
315 131
Messages
2 116 573
Membres
112 792
dernier inscrit
Jean-Marc YOT