VBA excel : continuer une macro par un click
Résolu
vanessa002
Messages postés
11
Statut
Membre
-
vanessa002 Messages postés 11 Statut Membre -
vanessa002 Messages postés 11 Statut Membre -
Bonjour,
Après 2 jours de recherche j'ai décider de poser ma question sur le forum.
Voila le problème est simple mais je n'arrive pas à voir comment faire. Je débute en VBA excel mais j'arrive déja à faire pas mal de chose. En ce moment je travail sur un projet pour mon travail de fin d'étude.
J'aimerai savoir s'il est possible d'interrompre une macro en ajoutant une ligne dans le code. Le but est que la macro reprenne, là où elle s'est arrêtée, grâce à un click sur un bouton. Cela me permet d'encoder des valeurs utilisées par la macro à chaque cycle d'une boucle For.
Merci d'avence pour votre aide.
Après 2 jours de recherche j'ai décider de poser ma question sur le forum.
Voila le problème est simple mais je n'arrive pas à voir comment faire. Je débute en VBA excel mais j'arrive déja à faire pas mal de chose. En ce moment je travail sur un projet pour mon travail de fin d'étude.
J'aimerai savoir s'il est possible d'interrompre une macro en ajoutant une ligne dans le code. Le but est que la macro reprenne, là où elle s'est arrêtée, grâce à un click sur un bouton. Cela me permet d'encoder des valeurs utilisées par la macro à chaque cycle d'une boucle For.
Merci d'avence pour votre aide.
9 réponses
Re,
Si tu veux autoriser un utilisateur à saisir dans une cellule tu peux arreter la macro en affichant un userform non modal avec :
UserForm1.Show vbModeless
exemple
eric
PS : La méthode de lermite que je viens de tester est très bien aussi
Si tu veux autoriser un utilisateur à saisir dans une cellule tu peux arreter la macro en affichant un userform non modal avec :
UserForm1.Show vbModeless
exemple
eric
PS : La méthode de lermite que je viens de tester est très bien aussi
Option Explicit Dim Continue As Boolean Sub Attendre() 'Le début du code.. '........... While Not Continue DoEvents Wend Continue = False 'La suite du code.. '........... End Sub Private Sub CommandButton1_Click() Continue = True End Sub
Mais le plus simple serait de mettre la suite du code de la macro dans le code du bouton.
A+
L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
Ça doit se passer sur le forum pour que tous puisse y participer ou en profiter.
Lermite,
merci là je vois ce que tu veux faire avec ton code. Je pourrai tester ton code sans me poser de question mais c'est plus fort que moi. J'aurai encore 2 petites questions au sujet de ton code :
- Le Doevents sert à quoi? je ne peux pas tout simplement mettre une boucle vide?
- Je suppose que l'instruction 'continue = false' après la boucle while permettera au code d'attendre à nouveau le click de l'utilisateur pour l'encodage de la donnée suivante? (mon code se trouve en fait dans une boucle for et l'utilisateur doit entrer ses données à chaque cycle de la boucle for)
Encore merci pour votre aide, je debute en VBA et en programmation en général.
merci là je vois ce que tu veux faire avec ton code. Je pourrai tester ton code sans me poser de question mais c'est plus fort que moi. J'aurai encore 2 petites questions au sujet de ton code :
- Le Doevents sert à quoi? je ne peux pas tout simplement mettre une boucle vide?
- Je suppose que l'instruction 'continue = false' après la boucle while permettera au code d'attendre à nouveau le click de l'utilisateur pour l'encodage de la donnée suivante? (mon code se trouve en fait dans une boucle for et l'utilisateur doit entrer ses données à chaque cycle de la boucle for)
Encore merci pour votre aide, je debute en VBA et en programmation en général.
Bonjour,
Peut-^tre tout simplement avec une msgbox ?
Peut-^tre tout simplement avec une msgbox ?
Bonjour tout le monde,
Voire même une inputbox si tu dois avoir une saisie.
Ex :
Message = "Entrez une valeur comprise entre 1 et 3"
Title = "Démonstration de InputBox" ' Définit le titre.
Default = "1" ' Définition la valeur par défaut.
' Affiche le message, le titre et la valeur par défaut.
MyValue = InputBox(Message, Title, Default)
eric
Voire même une inputbox si tu dois avoir une saisie.
Ex :
Message = "Entrez une valeur comprise entre 1 et 3"
Title = "Démonstration de InputBox" ' Définit le titre.
Default = "1" ' Définition la valeur par défaut.
' Affiche le message, le titre et la valeur par défaut.
MyValue = InputBox(Message, Title, Default)
eric
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
eriiic,
j'ai essayé avec une inputbox mais serait il possible que l'utilisateur puisse taper sa valeur dans une cellule d'excel et que cette valeur soit assignée à une variable en appuyant sur un bonton click?
La macro devrait attendre que l'utilisateur remplisse cette cellule et clique sur le bouton pour reprendre son cours...
merci d'avance
j'ai essayé avec une inputbox mais serait il possible que l'utilisateur puisse taper sa valeur dans une cellule d'excel et que cette valeur soit assignée à une variable en appuyant sur un bonton click?
La macro devrait attendre que l'utilisateur remplisse cette cellule et clique sur le bouton pour reprendre son cours...
merci d'avance
Bonjour,
Avec une boucle conditionnelle ?
Avec une boucle conditionnelle ?
Sub Attendre() 'Le début du code.. '........... While Range("B5") = "" DoEvents Wend 'La suite du code.. '........... End SubA+
Merci eriiic,
j'avais déja essayé avec les userform mais j'ai trouvé cela un peu compliqué.
Lermite,
avec ce code, je sort de la boucle While une fois que la cellule "B5" est remplie par l'utilisateur, pas vrai?
Mais alors serait-il possible de sortir de la boucle que lorsque l'utilisateur clique sur un bouton, après avoir encodé sa valeur dans la cellule "B5"? Ma question devient plus précise parce que je sens qu'on se rapproche du but.
Merci d'avance à vous.
j'avais déja essayé avec les userform mais j'ai trouvé cela un peu compliqué.
Lermite,
avec ce code, je sort de la boucle While une fois que la cellule "B5" est remplie par l'utilisateur, pas vrai?
Mais alors serait-il possible de sortir de la boucle que lorsque l'utilisateur clique sur un bouton, après avoir encodé sa valeur dans la cellule "B5"? Ma question devient plus précise parce que je sens qu'on se rapproche du but.
Merci d'avance à vous.