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 :

Goto avec plusieurs conditions


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 163
    Par défaut Goto avec plusieurs conditions
    Bonjour, j'ai un problème sous vba excel...en fait, j'utilise une msgbox yes no et selon la reponse deux actions différentes auront lieu...il m'est demandé de le faire avec goto, ou autre etiquette... Et du coup lorsque j'utilise goto, elle me realise les deux conditions.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    reponseQuest = MsgBox("Voulez vous continuer", vbYesNo)
     
    'If reponseQuest = "No" Then
    'GoTo SuiteNo
    'End If
     
    'If reponseQuest = "Yes" Then
    'GoTo SuiteYes
    'End If
     
    'SuiteNo:
    'MsgBox ("Au revoir"):
     
     
    'SuiteYes:
    variable1 = InputBox("Entrer le montant?")
    variable2 = InputBox("Entrer la date?")
    ' ...ect
    Merci bcp de votre aide.
    Bonne journée.

  2. #2
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Premièrement les goto c'est vraiment moche (en tout cas c'est ce que l'on toujours appris). Surtout que visiblement tu n'as pas vraiment compris comment cela fonctionne alors essaye de les éviter

    Essaye
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    reponseQuest = MsgBox("Voulez vous continuer", vbYesNo)
     
    If reponseQuest <> "yes" Then
    MsgBox "Au revoir"
    exit sub
    'End If
     
     
    variable1 = InputBox("Entrer le montant?")
    variable2 = InputBox("Entrer la date?")
    ' ...ect

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 163
    Par défaut
    En fait, c'est vrai on m'a toujours déconseillé d'utiliser goto, mais en fait là, on m'a limite imposer d'utiliser goto ou une autre etiquette... çà ne tiendrait qu'à moi j'aurai fait if...then, c'est très bien mais bon...merci.

  4. #4
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Citation Envoyé par arnold95 Voir le message
    on m'a limite imposer d'utiliser goto ou une autre etiquette... .
    Goto envoie vers une étiquette. On ne peux pas utiliser l'un ou l'autre. Soit tu as mal compris, soit il s'est mal exprimé soit il vas te faloir le convaincre...
    Sinon juste a la suite de
    Tu met un exit sub
    Sinon le programme va gentillement continuer a éxectuer les ligne de code qui suivent et donc ce que tu souhaite réaliser en cas de oui

  5. #5
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bonjour,

    Je ne dis pas ce que je pense au fond de moi d'un "prof" qui impose les goto ou (ce que tu appelles "autre étiquette") les renvois divers vers des étiquettes.... bref ... un prof qui "benit" le code spaghetti ...

    Ce que je sais, c'est que je ne rate jamais (je suis trop taquin) certains farfelus, lorsque l'occasion m'est donnée de rire un bon coup ...

    Sers-lui donc ceci, si la chose l'amuse tant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Command1_Click()
      reponsequest = MsgBox("Voulez vous continuer", vbYesNo)
      On reponsequest - 5 GoSub 1, 2
    1: variable1 = InputBox("Entrer le montant?")
      variable2 = InputBox("Entrer la date?")
      GoTo 3
    2:  MsgBox "aurevoir"
    3:
    End Sub
    Et envoie-lui le bonjour de satan....

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 163
    Par défaut
    Merci Ucfoutu, mais je me dis que peut etre qu'il impose çà car il ne maitrise pas.lol. C'est vrai que j'ai souvent entendu dire que les goto etait a éviter et donc je ne les avais jamais utilisé jusqu'à présent...en tout cas merci.

    Bonne journée

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

Discussions similaires

  1. Somme si avec plusieurs conditions et plage de données variables.
    Par arnold95 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 12/10/2007, 15h19
  2. Réponses: 1
    Dernier message: 27/06/2007, 17h01
  3. Having avec plusieurs conditions ?
    Par jchatard dans le forum Requêtes
    Réponses: 2
    Dernier message: 05/04/2007, 16h58
  4. Si je fais un if() avec plusieurs conditions ..
    Par Pauli dans le forum Langage
    Réponses: 2
    Dernier message: 25/01/2007, 17h47
  5. like avec plusieur condition
    Par wayak3 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 19/01/2007, 12h43

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