verification si nombre dans une saisie

KGreg

XLDnaute Nouveau
Bonjour à tous

J'espère que vous pourrez m'aider parce que je suis dessus depuis hier midi. Et la je desespère.
Je cherche à determiner s'il y a un chiffre lors d'une saisie dans un inputbox.

Voila ce que j'ai :

Private Sub Nom_Prénom_Change()

Dim NouvNom, NouvPrénom As String
If Nom_Prénom.ListIndex = 0 Then
NouvNom = InputBox('Nom du nouveau Demandeur', 'Nouveau Nom')
NouvPrénom = InputBox('Prénom du nouveau Demandeur', 'Nouveau Prénom')
Nom_Prénom.Value = UCase(NouvNom) & ' ' & _
Application.WorksheetFunction.Proper(NouvPrénom)
End If

End Sub

Private Sub Nom_Prénom_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If NouvNom = '' Or NouvPrénom = '' Then
MsgBox 'Vous devez entrer le nouveau Nom ou Prénom'
Exit Sub
End If

....

là Je cherche à savoir si lors de la saisi de Nouvnom et NouvPrénom si les champs sont vides (je pense que ça c'est pasa trop difficile) mais aussi qu'il n'y ait aucun chiffre parmi les lettres.

Voila. merci d'avance pour votre aide
KGreg
 

mutzik

XLDnaute Barbatruc
Bonjour KGreg,

Je ne vois qu'une solution pour résoudre ce que tu demandes :

- faire une boucle de 1 à len(NouvNom)
- vérifier chaque caractère s'il est différent des caractères de a à z et de A à Z

-idem pour le prénom

SOIT
de faire la même vérification en cours de frappe quand l'utilisateur entre NouvNom ou NouvPrénom
Tu peux même effacer le caractère indésirable si tu veux
Cette methode suppose que tu concatenes chaque caratère entré avec les précédents style NouvNom=NouvNom & CarEntré

Il y a peut-être une autre possibilité, voire une fonction ou instruction toute faite mais je ne la connais pas

Bertrand
 

KGreg

XLDnaute Nouveau
Merci à tous pour votre aide.

J'ai réussi à contourner le problème en demandant à l'utilisateur de confirmer ses saisies parce je n'ai pas réussie à implémenter la vérif des caractères d'un mot l'un après l'autre.


Mais pour ma culture perso comment on vérifie les caractères d'un mot l'un après l'autre?


Merci encore
a+
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Bonjour

Voici un bout de code qui vérifies si tous les caractères de ton nom appartiennent à l'alphabet

Dim nom As String
Dim BonNom As Boolean
Dim x As Byte, y As Byte, z As Byte

nom = InputBox('nom?')

For x = 1 To Len(nom)
BonNom = False
For y = 65 To 90
z = y + 32
If Mid(nom, x, 1) = Chr(y) Or Mid(nom, x, 1) = Chr(z) Then
BonNom = True
Exit For
End If
Next
If Mid(nom, x, 1) = Chr(39) Or Mid(nom, x, 1) = Chr(45) Then BonNom = True
If BonNom = False Then Exit For
Next

If BonNom = False Then MsgBox 'erreur de saisie'

j'ai rajouter un test sur les cartères - et ' qui peuvent être dans des noms et qui dans ma macro sont refusés

Bon courage
 

Discussions similaires

Statistiques des forums

Discussions
312 490
Messages
2 088 879
Membres
103 981
dernier inscrit
vinsalcatraz