IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Bouton annuler Inputbox


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Alternant en logistique
    Inscrit en
    Juin 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Alternant en logistique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2018
    Messages : 5
    Par défaut Bouton annuler Inputbox
    Bonjour à tous,

    Dans une macro je demande à l'utilisateur de rentrer 5 données, j'ai réalisé le code suivant pour lui permettre d'appuyer sur le bouton annuler et de sortir de la macro.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ctrl_quai = Application.InputBox("Nombre d'erreur de préparation constatée au contrôle quai :", "Saisie de donnée", "Valeur par défaut", Type:=1)
                If ctrl_quai = False Then
                    Exit Sub
                End If
    Seulement voilà, il ne peut plus entrée la valeur "0" sans que ce soit considéré comme "False" et donc que cela le fasse sortir de la macro au lieu de continuer sa saisie de données.

    J'ai essayer avec ce code mais cela n'a pas d'effet

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ctrl_quai = Application.InputBox("Nombre d'erreur de préparation constatée au contrôle quai :", "Saisie de donnée", "Valeur par défaut", Type:=1)
                If ctrl_quai = vbCancel Then
                    Exit Sub
                End If
    Y a-t-il un moyen pour sortir de la macro avec le bouton annuler tout en gardant la possibilité d'entrée la valeur "0" ?

    Merci d'avance

  2. #2
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    tu peux jouer sur le type de ta variable ctrl_quai, en le passant en String, afin de pouvoir différencier le 0 numérique du 0 Booleen

    par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub toto()
    Dim ctrl_quai As String
        ctrl_quai = Application.InputBox("Nombre d'erreur de préparation constatée au contrôle quai :", "Saisie de donnée", "Valeur par défaut", Type:=1)
        If Not IsNumeric(ctrl_quai) Then
            MsgBox "annulé"
            Exit Sub
        Else
            MsgBox "La valeur entrée est : " & CInt(ctrl_quai)
        End If   
    End Sub

  3. #3
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    re
    essaie de recupérer le retour de strptr
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox StrPtr(ctrl_quai)
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Alternant en logistique
    Inscrit en
    Juin 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Alternant en logistique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2018
    Messages : 5
    Par défaut
    Cela a le même effet avec ton code joe, quand je rentre la valeur 0 je suis sortie de la macro.

    Sinon pour faire suite au message de patrick, voilà ce que la msgbox me renvoi selon ce que je rentre comme valeur

    bouton annuler : 166738716
    0 : 432024652
    1 : 431712388

    Qu'est ce que cela signifie ?

  5. #5
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    re ou le test numeric
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub essai()
        Dim ctrl_quai As String,mss
        ctrl_quai = Application.InputBox("Nombre d'erreur de préparation constatée au contrôle quai :", "Saisie de donnée", "Valeur par défaut", Type:=1)
        mss = ctrl_quai
        If Not IsNumeric(ctrl_quai) Then mss = "annuler!!"
        MsgBox "l'entrée est : " & mss
    End Sub
    edit:
    oui autant pour moi strptr est vallable qu'avec le inputbox vb pas les application.inputbox qui sont propres a excel
    version avec un inputbox normal
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub test()
        Dim ctrl_quai As String
        ctrl_quai = InputBox("Nombre d'erreur de préparation constatée au contrôle quai :", "Saisie de donnée", "Valeur par défaut")
         If IsNumeric(ctrl_quai) And StrPtr(ctrl_quai) > 0 Then Debug.Print ctrl_quai
    End Sub
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  6. #6
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    As-tu essayé mon code tel quel, sans l'adapter ?
    La saisie du 0 est bien différenciée de l'appui sur le bouton "annuler"

    Le type String de ctrl_quai est très important, chaque ligne de l'exemple a un rôle, il n'y a pas de décoration

    D'ailleurs, la seconde proposition de Patrick utilise le même mécanisme, mais en passant par une seconde variable que je qualifie de superflue, à moins qu'une subtilité m'échappe et que Patrick va clarifier

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Alternant en logistique
    Inscrit en
    Juin 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Alternant en logistique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2018
    Messages : 5
    Par défaut
    Au temps pour moi, j'ai réussi à intégrer le code de joe à ma macro.

    En fait je l'ai testé dans un module à part pour commencer et en le recopiant dans ma macro je n'ai pas pensé à mettre "dim ctrl_quai as string" au début du code, donc c'est normal si cela ne fonctionnait pas bien.

    Merci pour votre aide !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Bouton annulation InputBox
    Par Alaindhu dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 11/04/2017, 19h24
  2. Ajouter un bouton annuler à une InputBox
    Par NEC14 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 09/03/2009, 15h21
  3. Maitriser le bouton annuler de InputBox
    Par Bubale dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 06/05/2008, 13h36
  4. Problème avec le bouton Annuler de la fonction Inputbox
    Par r0main2b dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 05/06/2007, 19h48
  5. [VBA inputbox] le bouton annuler ne marche pas
    Par herendel dans le forum Access
    Réponses: 2
    Dernier message: 15/05/2006, 12h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo