Boucle macro

J

jojo

Guest
Bonjour, jai une macro msg box toute simple que jaimerai faire tourné en boucle si on repond non !
voila le début

reponse = MsgBox('Voulez vous revenir au menu principal?', vbYesNo)
If reponse = 'Yes' Then Sheets('menu').Select
If reponse = 'No' Then reponse = MsgBox('Un message s'affichera dans 10 secondes pour savoir si vous voulez revenir au menu principal', vbOKOnly)
Application.Wait (Now + TimeValue('0:00:1O'))

et la jaimerai que sa reaffiche le début^^

merci davance
 
J

justine

Guest
bonjour le forum, jojo.

debut:
reponse = MsgBox('Voulez vous revenir au menu principal?', vbYesNo)
If reponse = 'Yes' Then
Sheets('menu').Select
else
MsgBox('Un message s'affichera dans 10 secondes pour savoir si
vous voulez revenir au menu principal'
Application.Wait (Now + TimeValue('0:00:1O'))
goto debut
end if

reste de la macro
 

salim

XLDnaute Occasionnel
Bonjour

jojo tu peux aussi t'y prendre comme ça je pense:

Code:
[size=4]
Option Explicit

Sub Repetition()
Dim Reponse As Byte
    Do
        Reponse = MsgBox('Voulez vous revenir au menu principal?', vbYesNo)
        If Reponse = 7 Then
            MsgBox 'Un message s'affichera dans 10 secondes pour savoir si vous voulez revenir au menu principal', vbOKOnly
            Application.Wait (Now + TimeValue('0:00:10'))
        End If
    Loop Until Reponse = 6
End Sub[/size]
Mais durant ce laps de temps d'attente l'utilisateur final ne peut rien faire Excel ne peut réaliser aucune autre manipulation.

salim
 
J

jojo

Guest
Voila ou en est ma macro:

reponse = MsgBox('Voulez vous revenir au menu principal?', vbYesNo)
If reponse = vbYes Then Sheets('menu').Select
If reponse = vbNo Then reponse2 = MsgBox('Un message s'affichera dans 10 secondes pour savoir si vous voulez revenir au menu principal', vbOKOnly)


apres jaimerai, seulement si on a dit No que sa attende 10 secondes et que sa relance cette macro
Jy arrive pas....moi, que je dise oui ou non, sa ma relance la macro si je met goto... ou autre
 

Hervé

XLDnaute Barbatruc
bonjour tout le monde :)

en somme tu veux boucler tant que l'utilisateur ne sélectionne pas la feuille menu, c'est ca ?

si oui, tu peux essayer ceci :


Dim bon As Boolean

bon =
False
Do
reponse = MsgBox('Voulez vous revenir au menu principal?', vbYesNo)
If reponse = vbYes Then Sheets('menu').Select: bon = True
If reponse = vbNo Then
        reponse2 = MsgBox('Un message s'affichera dans 10 secondes pour savoir si vous voulez revenir au menu principal', vbOKOnly)
        Application.Wait (Now + TimeValue('0:00:3'))
End If
Loop Until bon = True


salut
 

Hervé

XLDnaute Barbatruc
Re bonsoir tout le monde

C’est simple jojo,

On utilise une boucle do loop until

Soit en clair :

Tant que bon n’est pas égale à vrai tu réalises la boucle, sinon tu sort.

Par défaut, bon=false avant le démarrage de la boucle, puis des que l’utilisateur clique sur yes on bascule la variable bon en true, ainsi on sort de la boucle.

Voilà

Salut
 

Discussions similaires

Réponses
12
Affichages
881

Statistiques des forums

Discussions
312 508
Messages
2 089 137
Membres
104 046
dernier inscrit
ouiza