XL 2010 Verifier contenu textbox

cp4

XLDnaute Barbatruc
Bonjour,:)

Je voudrais vérifier que le contenu d'une textbox est bien constitué de 13 chiffres et que celui-ci n'est pas déjà présent dans ma base. J'ai fait ce code mais apparemment ne fonctionne pas.
VB:
Private Sub TextBox1_Exit(ByVal cancel As MSForms.ReturnBoolean)
ligne = WS.Range("A" & Rows.Count).End(xlUp).Row + 1
         Set Rng = WS.Range("A2:G" & ligne)
Set X = Rng.Columns(1).Find(What:=Val(code), LookAt:=xlWhole)

   If Len(TextBox1) < 13 Then
      MsgBox ("Vous devez saisir un numéro de code valide." & Chr(10) & Chr(10) & "Pour cela, saisissez 13 chiffres.")
      cancel = True
      End If
If Not X Is Nothing Then
            MsgBox code & " existe déjà!"
            Me.TextBox1 = "": Me.TextBox1.SetFocus
           Exit Sub
           Else
           Me.TextBox2.SetFocus
End If
End Sub
En vous remerciant. Merci aussi pour vos critiques, commentaires, suggestions concernant ce fichier dans son ensemble.:) Le but de ce fichier est d'ajouter, supprimer ou modifier une petite bd de produits.
 

Pièces jointes

  • Produits.xlsm
    30 KB · Affichages: 37

Lone-wolf

XLDnaute Barbatruc
Re

@cp4

Comme ceci ce sera mieux ;) Et Il faut mettre: X As Range
VB:
Private Sub TextBox1_Exit(ByVal cancel As MSForms.ReturnBoolean)
    ligne = WS.Range("A" & Rows.Count).End(xlUp).Row
    Set Rng = WS.Range("A2:G" & ligne)
    Set X = Rng.Columns(1).Find(What:=Val(TextBox1), LookAt:=xlWhole)

    If Len(TextBox1) < 13 Then
        MsgBox ("Vous devez saisir un numéro de code valide." & Chr(10) & Chr(10) & "Pour cela, saisissez 13 chiffres.")
        Me.TextBox1 = ""
        Me.TextBox1.SetFocus
    End If

    If Not X Is Nothing Then
        MsgBox code & " existe déjà!"
        cancel = True
        Me.TextBox1.SetFocus
        Me.TextBox1 = ""
    End If

End Sub
 

cp4

XLDnaute Barbatruc
Re

@cp4

Comme ceci ce sera mieux ;)
VB:
Private Sub TextBox1_Exit(ByVal cancel As MSForms.ReturnBoolean)
    ligne = WS.Range("A" & Rows.Count).End(xlUp).Row
    Set Rng = WS.Range("A2:G" & ligne)
    Set X = Rng.Columns(1).Find(What:=Val(TextBox1), LookAt:=xlWhole)

    If Len(TextBox1) < 13 Then
        MsgBox ("Vous devez saisir un numéro de code valide." & Chr(10) & Chr(10) & "Pour cela, saisissez 13 chiffres.")
        Me.TextBox1 = "": Me.TextBox1.SetFocus
    End If

    If Not X Is Nothing Then
        MsgBox code & " existe déjà!"
        cancel = True
    End If

End Sub
Merci beaucoup, je teste de suite.:):):)
 

Staple1600

XLDnaute Barbatruc
Re

@cp4
Un autre suggestion (t'aurais pas zappé la précédente par hasard ? ;) )
Pour obliger une saisie numérique dans un TextBox
Code:
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If InStr("01234567890", Chr(KeyAscii)) = 0 Then KeyAscii = 0
End Sub
 

cp4

XLDnaute Barbatruc
Re

@cp4
Un autre suggestion (t'aurais pas zappé la précédente par hasard ? ;) )
Pour obliger une saisie numérique dans un TextBox
Code:
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If InStr("01234567890", Chr(KeyAscii)) = 0 Then KeyAscii = 0
End Sub
Désolé, je n'arrive pas suivre. Je te réponds à toi et à Lone-wolf. Et mon fils me harcèle pour lui installer un jeu.
Ce qui est sûr, c'est que je vous répondrai sans fautes.

Merci beaucoup.
 

Discussions similaires

Réponses
5
Affichages
398
Réponses
2
Affichages
147
Réponses
17
Affichages
325

Statistiques des forums

Discussions
312 177
Messages
2 085 970
Membres
103 072
dernier inscrit
Remithesix