Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Format TEXTE dans un texbox

4 réponses
Avatar
Domi
Bonjour à tous,
Je viens de faire ce petit code pour m'assurer que la valeur saise dans le
textbox NumDos n'esixte pas déja dans la plage "BaseAFNum"
Ca marche presque bien !
Mon problème c'est que BaseAFNum contient du texte uniquement (parfois que
des chiffres mais au format texte.)
Hors si je saisie "123" dans le textbox alors que cette valeur existe dans
un nombre dans "BaseAFNum",il la laisse passer
Comment fait-on pour indiquer à un texbox que ce qu'il contient est du TEXTE
? A l'inisialisation du userform ?
Merci
Domi

Private Sub NumDos_Exit(ByVal Cancel As MSForms.ReturnBoolean)
'Interdit la saisie d'un n° qui existe déja
For Each cel In Range("BaseAFNum")
If cel.Value = Me.NumDos.Value Then
MsgBox "Ce n° existe déjà dans la base, veuiller en saisir un nouveau"
Me.NumDos.Value = ""
Cancel = True
End If
Next
End Sub

4 réponses

Avatar
papou
Bonjour
Personnellement je te propose Cstr, et par la même occasion je te suggère
plutôt d'utiliser la méthode Find, à toi de voir :
Private Sub NumDos_Exit(ByVal Cancel As MSForms.ReturnBoolean)
NumDos = CStr(NumDos)
Dim ATrouver
With Range("BaseAFNum")
Set ATrouver = .Find(NumDos, , xlValues, xlWhole, xlByRows)
If Not ATrouver Is Nothing Then
MsgBox "Ce n° existe déjà dans la base, veuiller en saisir un nouveau"
NumDos = ""
Cancel = True
End If
End With
End Sub

Cordialement
pascal

"Domi" a écrit dans le message de news:
%23rEu34$
Bonjour à tous,
Je viens de faire ce petit code pour m'assurer que la valeur saise dans le
textbox NumDos n'esixte pas déja dans la plage "BaseAFNum"
Ca marche presque bien !
Mon problème c'est que BaseAFNum contient du texte uniquement (parfois que
des chiffres mais au format texte.)
Hors si je saisie "123" dans le textbox alors que cette valeur existe dans
un nombre dans "BaseAFNum",il la laisse passer
Comment fait-on pour indiquer à un texbox que ce qu'il contient est du
TEXTE
? A l'inisialisation du userform ?
Merci
Domi

Private Sub NumDos_Exit(ByVal Cancel As MSForms.ReturnBoolean)
'Interdit la saisie d'un n° qui existe déja
For Each cel In Range("BaseAFNum")
If cel.Value = Me.NumDos.Value Then
MsgBox "Ce n° existe déjà dans la base, veuiller en saisir un nouveau"
Me.NumDos.Value = ""
Cancel = True
End If
Next
End Sub




Avatar
AV
Plutôt que de faire une boucle.... :

If Application.CountIf(Range("BaseAFNum"), NumDos) > 0 Then MsgBox "blabla"

AV
Avatar
Domi
Très bon tout cela ;o) Efficace et léger.
Merci
Domi

"AV" a écrit dans le message de
news:
Plutôt que de faire une boucle.... :

If Application.CountIf(Range("BaseAFNum"), NumDos) > 0 Then MsgBox
"blabla"


AV




Avatar
papou
Salut Alain
Comme toujours plus court mais toujours l'essentiel !
;-)
Cordialement
Pascal

"AV" a écrit dans le message de news:

Plutôt que de faire une boucle.... :

If Application.CountIf(Range("BaseAFNum"), NumDos) > 0 Then MsgBox
"blabla"

AV