Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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
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
 

Staple1600

XLDnaute Barbatruc
Re,

@cp4
Une dernière suggestion (ou plutôt une variante)
Pour vérifier si le code existe déjà
If Not IsError(Application.Match(code, WS.Columns(1), 0)) Then
MsgBox code & " existe déjà!"
TextBox1 = "": TextBox1.SetFocus
 

cp4

XLDnaute Barbatruc
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
2
Affichages
269
Réponses
5
Affichages
415
Réponses
2
Affichages
154
Réponses
17
Affichages
350
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…