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 :

détection du bouton oui non ok ou cancel en vba [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 19
    Points : 11
    Points
    11
    Par défaut détection du bouton oui non ok ou cancel en vba
    Bonjour,

    je débute juste en vba et je souhaiterai écrire un petit programme via les macros. mon problème est que je ne comprend pas comment on fait pour détecter si l'utilisateur a cliqué sur le bouton ok ou cancel après avoir répondu à la question. pour l'instant j'ai écrit ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub trie_bom_1()
        Dim code As String
        code = InputBox("Entrez le code a 10 chiffres.", "demande de code", "exemple : 4612091900")
     
    end sub
    merci d'avance de votre aide !

    lysander 31

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Testez ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub trie_bom_1()
    Dim code As String
    code = InputBox("Entrez le code a 10 chiffres.", "demande de code", "exemple : 4612091900")
    MsgBox code
    End Sub
    Saisissez une valeur et regardez le résultat de code pour OK et Annuler.

    Pour exploiter la valeur de Code par la suite en dehors de votre procédure trie_bom_1, il vous faut déclarer votre variable Code au niveau Private ou Public en tête du module.

    Cordialement.

  3. #3
    Expert éminent sénior
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    6 803
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 6 803
    Points : 32 058
    Points
    32 058
    Par défaut
    Réponse : quand il a appuyé sur "annuler", Code est toujours à vide

    Comment je l'ai trouvée(bien plus important que la réponse) :
    (1) J'ai mis un point d'arrêt sur le "End Sub" en cliquant sur la bande grise à gauche du code
    (2) J'ai lancé la macro
    (3) Dans le menu Affichage de l'éditeur, j'ai activé la fenêtre variable locales
    (4) J'ai regardé, dans cette fenêtre, le contenu de la valeur "code"

    Et j'ai fait quelques essais, pour comprendre comment ça marche. Je te conseilles de faire de même. A priori, il ne sait pas faire la distinction entre "Annuler" et une réponse vide. Mais vu que tu attends 10 chiffres, ça n'est pas grave - au final, tu n'as pas ce que tu voulais.

    Perso, je gérerais ça de la manière suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub trie_bom_1()
    Dim Code As String
        Code = InputBox("Entrez le code a 10 chiffres.", "demande de code", "exemple : 4612091900")
        If Len(Code) = 10 And IsNumeric(Code) Then
            MsgBox ("OK")
        Else
            MsgBox ("KO")
        End If
    End Sub
    En remplacant les msgbox par les actions que tu souhaites réellement faire. Elles m'ont juste servi pour valider que je n'avais pas écrit de clowneries. En l'occurence, je vérifiie que j'ai bien 10 caractères(Len est la longueur d'une chaine) et qu'ils sont tous des chiffres(fonction standard IsNumeric qui est vraie si et seulement si tout dans la chaine est numérique).

    EDIT : grillé, par une autre manière de faire, tout aussi efficace.
    Les 4 règles d'airain du développement informatique sont, d'après Michael C. Kasten :
    1)on ne peut pas établir un chiffrage tant qu'on a pas finalisé la conception
    2)on ne peut pas finaliser la conception tant qu'on a pas complètement compris toutes les exigences
    3)le temps de comprendre toutes les exigences, le projet est terminé
    4)le temps de terminer le projet, les exigences ont changé
    Et le serment de non-allégiance :
    Je promets de n’exclure aucune idée sur la base de sa source mais de donner toute la considération nécessaire aux idées de toutes les écoles ou lignes de pensées afin de trouver celle qui est la mieux adaptée à une situation donnée.

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 19
    Points : 11
    Points
    11
    Par défaut
    merci beaucoup de vos réponses rapides et claires

  5. #5
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 771
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 771
    Points : 28 631
    Points
    28 631
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Citation Envoyé par lysander31 Voir le message
    Bonjour,
    je débute juste en vba et je souhaiterai écrire un petit programme via les macros. mon problème est que je ne comprend pas comment on fait pour détecter si l'utilisateur a cliqué sur le bouton ok ou cancel après avoir répondu à la question
    Voilà ce que l'aide de VBA t'indique si tu places le pointeur de ta souris sur la fonction InputBox et qu'ensuite tu tapes sur F1
    Si l'utilisateur clique sur OK ou appuie sur ENTRÉE , la fonction InputBox renvoie le texte contenu dans la zone de texte. Si l'utilisateur clique sur le bouton Annuler, la fonction renvoie une chaîne de longueur nulle ("").
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

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

Discussions similaires

  1. [Débutant] En ASP.NET, comment afficher un messagebox avec deux boutons OUI/NON?
    Par ronot dans le forum ASP.NET
    Réponses: 2
    Dernier message: 29/01/2013, 16h29
  2. Réponses: 3
    Dernier message: 18/04/2011, 09h57
  3. Détection Javascript activé OUI/NON
    Par Lux interior dans le forum XMLRAD
    Réponses: 3
    Dernier message: 01/10/2009, 13h10
  4. [E-O7] boite de dialogue avec bouton oui / non
    Par clarisse dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/12/2008, 07h43
  5. Message à 3 boutons : Oui/Non/Annuler
    Par Gildesam dans le forum 4D
    Réponses: 1
    Dernier message: 16/09/2008, 10h16

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