Userimput, boucle et bouton annuler

Bonjour à tous,

et tout d'abord merci à la communauté pour l'aide apportée. Ceci est mon deuxième message, mon projet avance très bien grâce en parti à ce site. (je précise je suis débutant en vba depuis 1 mois....)

voici mon problème actuel, j'ai dans ma macro une fenêtre de demande de "motif" sous forme d'un userimput. J'ai une boucle de façon à forcer la saisie d'un texte. La boucle marche, mais par contre, si l'utilisateur ne souhaite pas saisir de texte et donc sortir de la fenêtre avec le bouton "Annuler" ou la croix, il ne peut pas, car la fenêtre apparaît car aucune saisie entrée. Comment faire pour que le bouton "Annuler" ou la croix, stop la macro et que l'utilisateur revienne sur la feuille ? merci beaucoup, mon code ci-dessous.

Dim userInput As String

    ' Ouvrir une boîte de dialogue d'entrée
    'texte = InputBox("Motif d'annualtion de la dernière saisie :", "Annulation de la dernière saisie")

  ' Boucle jusqu'à ce que l'InputBox ne soit pas vide
    Do Until userInput <> ""
        ' Afficher l'InputBox
        userInput = InputBox("Motif d'annualtion de la dernière saisie :", "Annulation de la dernière saisie")

        ' Vérifier si l'InputBox est vide
        If userInput = "" Then
            MsgBox "Vous n'avez pas entré de motif d'annulation"
        End If
    Loop

    ' Enregistrer le texte dans la cellule D de la derniere ligne

    Dim dl As Long
dl = Sheets("Enregistrements").Range("E" & Rows.Count).End(xlUp).Row + 0
Sheets("Enregistrements").Range("E" & dl) = userInput

Bonjour,

essaie ceci : (utilise une variable Variant, utilise application.inputbox au lieu de inputbox et ajoute un test)

Dim userInput

    ' Ouvrir une boîte de dialogue d'entrée
    'texte = InputBox("Motif d'annualtion de la dernière saisie :", "Annulation de la dernière saisie")

    ' Boucle jusqu'à ce que l'InputBox ne soit pas vide
    Do Until userInput <> ""
        ' Afficher l'InputBox
        userInput = Application.InputBox("Motif d'annualtion de la dernière saisie :", "Annulation de la dernière saisie")
        If userInput = False Then Exit Sub
        ' Vérifier si l'InputBox est vide
        If userInput = "" Then
            MsgBox "Vous n'avez pas entré de motif d'annulation"
        End If
    Loop

merci beaucoup pour ta réponse,

j'ai une erreur sur ceci :( :

If Not userInput Then

Bonjour,

Quelle erreur? En faisant quoi ?

j'ai :

Erreur d'exécution 13

Incompatibilité de type

avec surligné : If Not userInput Then

dès que je clique sur ok, avec un text saisie ou non

En attente de ta réponse "h2so4" si tu as le temps , j'ai trouvé ce code si cela peut intéressé des personnes

Sub Test()

    Dim NomBudget As String

    Do

        NomBudget = InputBox("Saisir le nom de votre fichier !", "Nom du fichier avec extension PDF")

        If NomBudget = "" Then

            If MsgBox("Vous n'avez pas entrer de nom !" _
                      & vbCrLf & _
                      "Voulez-vous vraiment annuler ?", vbQuestion + vbYesNo) = vbYes Then Exit Do 'ou Exit Sub

        End If

    Loop While NomBudget = ""

End Sub

Bonsoir,

corrige cette instruction

If Not userInput Then

par

If userInput = False Then

et Vérifie si tu as bien modifié cette instruction Dim userinput as string

en Dim userinput ou en Dim userinput as variant

Merci beaucoup "h2so4" ça fonctionne . Bonne journée

Rechercher des sujets similaires à "userimput boucle bouton annuler"