Message erreur Inputbox

Bonjour à tous,

J’ai besoin de votre aide, j’ai créé un bouton « Ajouter un client » que vous trouverez dans ma feuille « Accueil »

Si on renseigne le nom d’un client, cela va créer ensuite une feuille client avec le nom du client.

Néanmoins si on appuie sur le bouton « Ok » ou « Annuler » de mon InputBox sans renseigner de nom de client, une erreur s’affiche, que faire pour y remédier ?

Voir les captures d'écrans, mon fichier est trop volumineux.

codeajoutclient ajoutclient min

Bonjour,

A adapter à ton code car une photo c'est pas top pour copier les lignes de code.

Dim Message, Titre, Default, Nomclient
Message = "Veuillez renseigner le nom du nouveau client"  ' Set prompt.
Titre = "Saisie client"    ' Set title.
Default = ""    ' Set default.
Nomclient = InputBox(Message, Titre, Default)
If Nomclient = "" Then Exit Sub

La suite avec tes Worksheets….

Dans cet exemple si tu clic sur ok alors qu'il n'y a pas de client renseigner il ne fera rien non plus comme pour un clic sur annulé.

Du coup à la fin de ta macro j'ajouterai un message box pour confirmer quand la saisie est bien ajoutée.

Bonjour,

Vous avez plusieurs possibilités. Voici quelques exemples non exhaustifs :

Do
   NomClient = InputBox("Nom du client ?")
Loop While NomClient = "" 'Recommence tant que la variable est vide
NomClient = InputBox("Nom du client ?")
If NomClient = "" Then 
   MsgBox "Pas de nom renseigné !"
   Exit Sub 'Quitte la macro
End if
On Error Resume Next 'En cas d'erreur, passe à l'instruction suivante
'Reste de la macro
On Error GoTo SiErreur
'Reste de la macro
'...
Exit Sub
SiErreur : 'Exécuté uniquement si une erreur se présente
   MsgBox "Pas de nom renseigné !"
End Sub

edit : salut xmenpl !

Bonjour,

En plus de ces deux réponses, ma contribution qui permet de distinguer l'annulation de l'absence de saisie :

Dim iVar As Variant
    iVar = InputBox("Nom du client ?")
    If StrPtr(iVar) = 0 Then
        MsgBox "Vous avez annulé", vbCritical + vbOKOnly, "Annulation utilisateur"
    ElseIf iVar = vbNullString Then
        MsgBox "Aucune saisie", vbCritical + vbOKOnly, "Pas de saisie utilisateur"
    Else
        'ICI le traitement en cas de saisie régulière
    End If

En effet, l'absence de saisie peut être réglée par une boucle (voir le Do... Loop While de Pedro), l'annulation, quant à elle, peut exister à part entière...

Merci à tous,

J'ai retenu ton code pikaju!

Rechercher des sujets similaires à "message erreur inputbox"