Demander à l’utilisateur son nom complet, Excel VBA

L’exemple suivant, qui génère une boîte de dialogue , utilise la fonction VBA InputBox pour demander à l’utilisateur son nom complet. Le code extrait ensuite le prénom et affiche un message d’accueil dans une boîte de message.

Sub DemanderLeNom()
Dim NomUtilisateur As String
Dim PremierEspace As Long
Do Until Len(NomUtilisateur) > 0
NomUtilisateur = InputBox("Entrez votre nom complet: ", _
"Identifiez-vous")
Loop
PremierEspace = InStr(NomUtilisateur, Space(1))
If PremierEspace > 0 Then
NomUtilisateur = Left$(NomUtilisateur, PremierEspace - 1)
End If
MsgBox "Salut " & NomUtilisateur
End Sub

 

Commentaires

■ Notez que cette fonction inputBox est écrite dans une boucle Do Until pour garantir que quelque chose est entré lorsque la zone de saisie apparaît.

■ Si l’utilisateur clique sur Annuler ou n’entre pas de texte, UserName contient une chaîne vide et la zone de saisie réapparaît. La procédure tente ensuite d’extraire le prénom en recherchant le premier caractère d’espace (à l’aide de la fonction inStr), puis en utilisant la fonction Left pour extraire tous les caractères avant le premier espace.

■ Si aucun caractère espace n’est trouvé, le nom entier est utilisé tel qu’il a été saisi.

Le code suivant montre la même procédure avec deux modifications. Tout d’abord, la propriété UserName de l’objet Application est fournie comme valeur par défaut dans la boîte de dialogue. Si le nom avec lequel l’utilisateur s’est connecté à Office est correct, il lui suffit de cliquer sur OK et de ne rien saisir. Sinon, ils peuvent changer la propriété par défaut en ce qu’ils veulent. Ensuite, la fonction Split est utilisée pour diviser le texte en un tableau partout où il y a un espace. Ensuite, le premier élément du tableau (le (0) dans le code) est renvoyé. Si l’utilisateur entre Elie Chancelin, Elie est le premier élément du tableau et Chancelin est le second.

Sub DemanderLeNom()
Dim NomUtilisateur As String
Do Until Len(NomUtilisateur) > 0
NomUtilisateur = InputBox("Entrez votre nom complet: ", _
"Identifiez-vous", Application.UserName)
Loop
MsgBox "Salut " & Split(NomUtilisateur, Space(1))(0)
End Sub

 

Si l’utilisateur entre un nom sans espace, le tableau créé par Split n’aura qu’un seul élément. Le code fonctionnera toujours car il utilise le premier élément. Si vous vouliez utiliser un élément différent, vous devez d’abord vous assurer qu’il existe. Utiliser Split n’est pas nécessairement un meilleur moyen qu’InStr de diviser un nom, mais un autre.

S’abonner
Notifier de
0 Commentaires
Inline Feedbacks
Voir tous les commentaires

Fonctions Excel

Macro VBA Utiles

Excel Pratique

Programmation VBA

Sur Facebook

Sur YouTube

0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x
()
x