|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
|
Nouveau Membre du Club
![]() Étudiant Inscription : juin 2011 Messages : 98 ![]() |
Bonsoir à tous,
Pourriez vous me venir en aide s'il vous plaît. J'aimerais savoir comment je pourrais faire pour faire une pause dans une macro. En fait j'ai une macro qui traite un certains nombres de choses. Cependant certaines d' entre elles ne peuvent être gérer automatiquement. Ainsi j'aimerais faire une "pause" à un moment donné au cours de la macro afin que l'utilisateur fasse les ajouts ou des modifications sue le classeur puis que la macro reparte. (en cliquant sur "OK" par exemple) Quelqu'un aurait t-il une idée ? Cordialement. |
|
|
00
|
|
|
#2 |
![]() ![]() |
Bonsoir ...
tu divise ta macro en 2 et tu lance la deuxième partie par un second bouton ...
__________________
page à bbil : dernières entrées : Débuter en VB6 Mes contributions en téléchargement Les pages VB : FAQs, Tutoriels VB, Outils , Sources, WIKI Impératif "A LIRE AVANT DE POSTER"
|
|
10
|
|
|
#3 |
|
Nouveau Membre du Club
![]() Étudiant Inscription : juin 2011 Messages : 98 ![]() |
Merci pour ta réponse bbil.
Mais ne serait-il pas possible de ne garder qu'un seul bouton ? Suis je contrainte de la couper ? Cordialement. |
|
|
00
|
|
|
#4 |
![]() ![]() |
Déjà faire des macros à rallonge c'est jamais bon ... il faut diviser cela en procédures, fonctions....
après derrière votre bouton vous pouvez mettre une procédure qui teste si la première partie du code à été exécuté et selon le cas lance la première ou la seconde procédure...
__________________
page à bbil : dernières entrées : Débuter en VB6 Mes contributions en téléchargement Les pages VB : FAQs, Tutoriels VB, Outils , Sources, WIKI Impératif "A LIRE AVANT DE POSTER"
|
|
10
|
|
|
#5 |
|
Nouveau Membre du Club
![]() Étudiant Inscription : juin 2011 Messages : 98 ![]() |
Merci bien Bbil.
En l'occurrence, il est vrai que ma macro est trés longue. Mais j'ai beaucoup de mal avec les fonctions et les procédures. Ma macro marche bien mais je t'avouerais que j'aimerais améliorer la syntaxe. Il faudrait que je trouve un bon tuto sur les procédures et les fonctions. Merci encore pour tes conseils. Cordialement. Bonjour a tous, S'IL VOUS PLAIT. J'ai un soucis avec une macro. je dois y faire une pause pour faire des modification entre deux evenements mercadog m'a conseiller de separer ma macro en deux. et il est clair qu'il a tout a fait raison. Probleme : comment puis je couper ma macro sans perdre toutes les infos precedentes. car je reutilise dans la seconde partie des variables de la premiere partie de ma macro. comment puis je garder ces infos ? Est ce que si je met des public partout ca peut marcher efficacement? Cordialement |
|
|
00
|
|
|
#6 |
|
Membre du Club
![]() Inscription : janvier 2010 Messages : 176 ![]() |
Bonjour,
As-tu essayé de passer en argument les paramètres de ta première moitié de macro ? En gros, faire une fonction pour ta deuxième moitié de macro, avec comme variables les infos dont tu as besoin et qui sont dans ta première moitié. |
|
|
10
|
|
|
#7 |
|
Nouveau Membre du Club
![]() Étudiant Inscription : juin 2011 Messages : 98 ![]() |
Bonsoir à tous,
Je suis totalement bloqué. J'ai crée une macro qui classe des données par catégories. Je m'explique. Je lis la colonne A. (il y a des phrases sur les cellules de la colonne A) S'il y a le mot bananne dans la phrase => je met le mot FRUIT en colonne B. S'il y a le mot cake dans la phrase => je met le mot GATEAU en colonne B. ...etc Mais dans certaine cellule de la colonne A, il n'y a pas de mot clé dans les phrase Ainsi en colonne B, j'ai créé une liste déroulante avec toutes les catégories pour que l'utilisateur puisse choisir la catégorie. Par la suite ma macro exécute d'autres évènement. Je voudrais "FAIRE UNE PAUSE" dans la macro à cet instant, pour permettre à l'utilisateur de selectionner via la liste déroulante la catégorie correspondante. Puis je souhaiterais que la macro reparte. Soit en cliquant sur un bouton soit autrement peu importe. J'essaye de diviser ma macro en deux macros mais je n'y parvient pas car par la suite j'utilise des variables qu'il y a dans la première partie. Comment pourrais je faire? Auriez vous une idée s'il vous plaît. Cordialement |
|
|
00
|
|
|
#8 |
|
Membre chevronné
![]() Architecte Inscription : mai 2002 Messages : 1 057 ![]() |
Bonjour,
Fournis ta macro pour qu'on puisse y voir plus clair. A bientôt Vas aussi voir du côté de la portée des variables qui permet que celles-ci passent d'une procédure à une autre. |
|
|
10
|
|
|
#9 |
|
Expert Confirmé Sénior
![]() ![]() |
Salut
Et si tu nous montrais de quoi il s'agit, expose ton code pour que l'on puisse te donner un avis plus éclairé. ++ Qwaz
__________________
MagicQwaz := Harry Potter la baguette en moins ![]() Le monde dans lequel on vit HammerFest Ma page perso DVP - Dernier Tutoriel : VBA & Internet Explorer |
|
|
10
|
|
|
#10 | ||
|
Nouveau Membre du Club
![]() Étudiant Inscription : juin 2011 Messages : 98 ![]() |
Bonjour à tous.
Tout d'abord, je tiens à m'excuser. Le responsable m'a fait mention du fait que j'avais posté deux fois la même question sur le forum. Sachez que ceci n'était pas mon intention, veuillez m'en excuseer. Et navrée pour la gêne occasionnée De plus, je suis désolé d’avoir mis autant de temps à répondre, je n’avais pas mon code complet, j’ai du aller le récupérer chez mes parents. Je sais qu’il est surement mal écrit, je suis débutante. Je n’ai pas encore compris comment fonctionnaient les procédures et les fonctions donc j’ai tous mis en un bloc. Encore désolé. Merci infiniment de votre aide à tous. Voici ce que j'ai fait grace aux tutos et à l'aide des bénévols. Mais j'ai honte de vous le poster. Code :
Très cordialement. |
||
|
|
00
|
|
|
#11 |
|
Membre Expert
![]() Sebastien LIngénieur Financier Inscription : mars 2010 Messages : 880 ![]() |
Je dirais 2 pistes :
1- Tu fais un userForm à la place de ta liste de validation 2- Tu déclares tes variables en globales et tu sépares ton code en 2. Tu rajoutes une variable globale que tu mets à False à l'ouverture du classeur, à True à la fin de la première partie de ton code, et à False à la fin de la deuxième partie. Sur l'évènement Worksheet_Change de ta feuille, s'il s'agit de la cellule soumise à la validation (la liste), tu déclenches la deuxième macro seulement si ta nouvelle variable est à True. J'espère que c'est à peu près clair. |
|
|
20
|
|
|
#12 |
|
Nouveau Membre du Club
![]() Étudiant Inscription : juin 2011 Messages : 98 ![]() |
Merci de ta réponse Zebreloup.
Mais je ne sais pas comment faire ce genre de choses. Trés cordialement. |
|
|
00
|
|
|
#13 | ||||||
|
Membre Expert
![]() Sebastien LIngénieur Financier Inscription : mars 2010 Messages : 880 ![]() |
En relisant un peu plus ton code, la première solution parait compliquée en l'état étant donné qu'il y a plusieurs liste de choix.
Pour la deuxième solution, au lieu de faire des dans ta procédure, tu fais Au début d'un module. Au même endroit, tu peux rajouter un De ce fait, quand tu exécuteras ta deuxième macro (après avoir vérifier que la première a bien été exécutée via procedureEnCours), tu auras conservé la valeur de tes variables entre les deux. Voici ce que tu pourrais faire. Je n'ai pas vérifier tout ton code, juste s'il compilait. Dans un module (modifs en rouge) Code :
Code :
Code :
|
||||||
|
|
10
|
|
|
#14 |
|
Nouveau Membre du Club
![]() Étudiant Inscription : juin 2011 Messages : 98 ![]() |
Merci beaucoup de ton aide Zebreloup,
Mais je crois voir une limite : Comment puis je mettre la procédure Worksheet_Change dans la feuille où l'utilisateur doit faire le choix sachant que ce fichier est toujours différent. C'est un fichier que l'on choisit??? Je ne comprends pas bien Zebreloup ???? Excuse moi, peux tu m'éclairer ? |
|
|
00
|
|
|
#15 | ||
|
Expert Confirmé Sénior
![]() ![]() |
Salut
Je me suis plus penché sur le code en lui même, pas sur l'organisation de ta séparation de code. Voila quelques modifications et simplifications (pas testé) pour la 1ere partie de ton code. Code :
Qwaz
__________________
MagicQwaz := Harry Potter la baguette en moins ![]() Le monde dans lequel on vit HammerFest Ma page perso DVP - Dernier Tutoriel : VBA & Internet Explorer |
||
|
|
10
|
|
|
#16 |
|
Nouveau Membre du Club
![]() Étudiant Inscription : juin 2011 Messages : 98 ![]() |
Bonsoir tous le monde,
Est ce que quelqu'un aurait une idée ? ou alors une suggestion par rapport à l'idée de Zebreloup ? Trés cordialement. |
|
|
00
|
|
|
#17 |
|
Membre Expert
![]() Sebastien LIngénieur Financier Inscription : mars 2010 Messages : 880 ![]() |
Je n'avais pas fait attention au fait que les listes étaient dans le fichier que tu ouvres. Dans ce cas, peut-être qu'un deuxième bouton dans le fichier principal est une bonne solution.
Tu peux bien sûr rajouter dynamiquement du code dans le fichier ouvert, mais c'est un peu plus compliqué si tu débutes en VBA. |
|
|
10
|
|
|
#18 |
|
Nouveau Membre du Club
![]() Étudiant Inscription : juin 2011 Messages : 98 ![]() |
Merci de ta réponse Zebreloup,
J'essaye lamentablement de trouver comment créer deux bouton et séparer la macro pour que cela fonctionne mais je n'y parvient pas. Est ce que tu sais comment je dois faire pour que cela fonctionne ? Ps : Merci infiniment de ton aide. Cordialement. Je voudrais couper la macro en deux pour que l'utilisateur ait la main au moment que j'ai indiquer dans le code, peut importe le moyen utilisé. J'aimerais bien créer deux bouton sur mon classeur principal, ce serait l'idéal mais je ne sais pas comment faire. Merci encore. Cordialement. |
|
|
00
|
|
|
#19 |
|
Membre Expert
![]() Sebastien LIngénieur Financier Inscription : mars 2010 Messages : 880 ![]() |
Je pense que la manière dont je l'avais coupé devrait convenir. Mais tu lances la deuxième procédure via un bouton plutôt que dans l'évènement Worksheet_Change.
Pour lancer une macro via un bouton, tu créés un bouton via la boite à outils contrôles, te le personnalises (nom, apparence, ...) et tu double-clique dessus. Tu te retrouve dans l'évènement NomDuBouton_Click de ta feuille et c'est là que tu appelles ta macro (il suffit d'écrire le nom de ta macro) |
|
|
10
|
|
|
#20 |
|
Nouveau Membre du Club
![]() Étudiant Inscription : juin 2011 Messages : 98 ![]() |
Merci beaucoup Zebreloup,
Je vais testé, et je reviens vers toi pour te confirmer que cela fonctionne bien. Merci encore. Cordialement. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com