Comment continuer une macro via un bouton commande

  • Initiateur de la discussion Remi
  • Date de début
R

Remi

Guest
J'avais besoin de stopper ma macro au milieu de son execution pour faire une mise à jour entre temps. Comment redémarrer la macro où j'en étais via un bouton de commande?
 
R

Remi

Guest
A la base j'ai un seul bouton pour lancer le traitement, mais j'ai conscience que je dois en rajouter un. Mais comment coder un bouton de sorte qu'il renchaine la où le précédent traitement s'est terminé?

C'est une mise a jour de données sur la feuille Excel, pas de la macro!
 
R

Remi

Guest
Avant la mise à jour, je stoppe la macro par un simple STOP
PAr exemple, ce qui serait bien:

SI je clique sur le deuxieme bouton de commande
ALORS je continue le traitement juste après le stop...
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour Remi, Mutzik, Jacques le Forum

Non, on ne peut pas faire ceci ou alors en mode 'Debug Step Into' (Pas à pas) mais ce n'est pas du Run Time réél.

Enfin je ne sais pas ce que tu appelles 'Mise à Jour' ?... Essaies quand même un DoEvents conjoitement avec Calculate, si on parle de mise à jour de Formules pointant sur des données importées par VBA...

Mais si on parle de 'Mise à Jour' par de la saisie manuelle, dans ce genre de cas, soit tu prévoies une rupture en deux Sub disctinctes avec deux boutons en prévoyant bien où en est le Code du premier Bouton pour suivre avec le Bouton 2, soit tu peux éventuellement mettre une instruction 'OnTime' pour lancer la seconde Sub après le délai désiré... Ou encore de déclencher les macro par évènementielles de Private Modules...

A mon avis tu te tracasses de soucis inutiles en te compliquant la vie car tu ne dois pas bien avoir la maîtrise de ce que peut faire VBA... Le mieux serait de nous expliquer calmement le but et le synopsis de ton Projet...

Bon Courage
[ol]@+Thierry[/ol]
 

Jacques87

XLDnaute Accro
Remi

je te propose un truc tout c..

en cliquant sur le bouton j'écris 'Bonjour' et la procédure s'arrête
en recliquant je la force à recommencer après l'arrêt (Exit Sub) pour écrire 'A Tous'

Est ce que cela peut t'inspirer [file name=bouton_20060314172226.zip size=11802]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/bouton_20060314172226.zip[/file]
 

Jacques87

XLDnaute Accro
Bonjour Thierry et les autres

Attention Rémi, la proposition toute bête que je t'ai proposée n'interrompt pas la macro comme tu le demandais.
J'appelle deux fois cette macro sous condition

Je t'ai proposé cela pour te donner une idée qui ne servira peut être à rien

Thierry a été très explicite à ce sujet

Bon courage
 
R

Remi

Guest
ok
Donc 1ere feuille: Donnees saisies manuellement, les données sont stockées au fil des années
Ensuite, j'au un bouton de commande qui lance un USF, l'USF permet de rensigner une DateDebut et une DateFin, quand je clique sur Ok de l'usf, le traitement démarre...

2e feuille: l'intervalle selectionné grace a l'usf est collé en feuille 2 ou se trouvait deja des données initiales mais sans les dates, dc apres le debut de la macro (copier coller) je la stoppe, pr renseigner les données manuellement en fonction de la date, ensuite je projette de mettre un 2e bouton de commande qui permet de lancer la suite de la macro avec les données mises a jour.

Mon probleme est que je vais avoir un sub de ce 2e bouton avec le code que javais ecrit a la suite logiquement, mais du coup les variables ne seront plus reconnues, notamment celle provenant du Userform... C'est un peu un casse tete
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Re Bonjour à tous

J'ai lu tes explications, alors donc à mon avis ce n'est pas si sorcier que ça...

Si le problème est : 'mais du coup les variables ne seront plus reconnues, notamment celle provenant du Userform'

Deux alternatives combinables :

1) Déclaration des Variables en tant que Publique pour la Globalité du Projet VB...

          => Mode D'Emploi

            Dans un Module Standard en Top de celui-ci, syntax :
            Public MaVariablePublic As String


2) Non Déchargement du UserForm de la Mémoire Accessible pour la Globalité du Projet VB...

          => Mode D'Emploi

            Instruction : 'UserForm1.Hide'
            On pourra utiliser les valeurs contenues dans les Contrôles de ce UserForm
            Par ce genre de syntax : UserForm1.TextBox1.Value

Bonne Soirée
[ol]@+Thierry[/ol]

Message édité par: _Thierry, à: 14/03/2006 18:41
 

Discussions similaires

Réponses
12
Affichages
248

Statistiques des forums

Discussions
312 332
Messages
2 087 365
Membres
103 528
dernier inscrit
maro