Macro worksheet change qui attend la fin d une autre avant de demarrer
Dernière réponse : dans Programmation
Bonjour,
J ai une macro qui envois des valeurs dans des cell sur une autre page, et dans cette autre page, quand la valeur de ces cellules la change, une macro demarre!
Le probleme est que j aimerais que la premiere macro soit terminée avant que la macro automatique demarre...des idées?
Merci a l avance!
J ai une macro qui envois des valeurs dans des cell sur une autre page, et dans cette autre page, quand la valeur de ces cellules la change, une macro demarre!
Le probleme est que j aimerais que la premiere macro soit terminée avant que la macro automatique demarre...des idées?
Merci a l avance!
Autres pages sur : macro worksheet change attend fin demarrer
Lassé par la pub ? Créez un compte
Salut Pat'
Je vois une solution.
Supposons que ta macro qui démarre inopinément soit Worksheet_Change().
Je propose de modifier cette macro en y ajoutant la lecture d'un flag.
Lors de ta copie, initiée dans la première feuille, lève le flag avant de commencer, et baisse-le à la fin.
Et voilà !
Je vois une solution.
Supposons que ta macro qui démarre inopinément soit Worksheet_Change().
Je propose de modifier cette macro en y ajoutant la lecture d'un flag.
' // Code de la feuille "Autre Page" Public flg_loading As Boolean Sub Worksheet_Change() If flg_loading Then Exit Sub .... End Sub
Lors de ta copie, initiée dans la première feuille, lève le flag avant de commencer, et baisse-le à la fin.
' // Code de la feuille "Première Page" Sub Copie_Donnees() Worksheets("Autre Feuille").flg_loading = True ' // Copie de cellule .... Worksheets("Autre Feuille").flg_loading = False End Sub
Et voilà !
Merci, je comprend le principe..mais je n arrive pas a mettre les elements aux bonnes places!
dans mon code je met le flag true au debut et false a la fin...ca semble aller
mais ensuite dans le code de la feuille, dans l ordre je met quoi?
le code va comme suit
si j insere ton code il me sort un message d erreur a la ligne sub worksheet change..
je sais..je suis débutant, j ai encore du mal avec les codes!
dans mon code je met le flag true au debut et false a la fin...ca semble aller
mais ensuite dans le code de la feuille, dans l ordre je met quoi?
le code va comme suit
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$A$3" Then rest du code.... End If End Sub
si j insere ton code il me sort un message d erreur a la ligne sub worksheet change..
je sais..je suis débutant, j ai encore du mal avec les codes!
PATPOWER a édité ce message
Eh, eh, eh... Donc je supposais bien.
Donc tu mets à la première ligne de ta fonction la première ligne que je proposais, à savoir :
Puis à la place de mes petits points, tu mets ton code.
------------
Que je daigne te répondre ne te dispense pas d'utiliser la balise [code] pour présenter du code
Donc tu mets à la première ligne de ta fonction la première ligne que je proposais, à savoir :
If flg_loading Then Exit Sub
Puis à la place de mes petits points, tu mets ton code.
------------
Que je daigne te répondre ne te dispense pas d'utiliser la balise [code] pour présenter du code
désolé, je suis nouveau et je ne sais pas trop comment avec les codes..
en resumé ma macro commence par lever le flag selon ta ligne de code et se termine en baissant ce dernier selon ta ligne de code. entre les 2 elle donne a des cell de l autre page des valeur.
l autre page dans le code de la feuille, j ai le code worksheetchange qui quand les cell en question change lance une macro. cette macro contien ta ligne de code pour s arreter si le flag est levé.
le probleme est que des que uje lance la premiere macro, un message d erreur apparait et me dit methode incorrect...et la premiere ligne est surlignée, celle qui lève le flag! donc je ne comprend pas trop ce qui se passe..en attendant j essais d autre combinaison mais rien ne marche!
je vais faire une macro test que je vais pouvoir te fournir le code..car la macro d origine est compliquée avec des userform et tout.. le but pour moi est de comprendre la facon de faire avec le code et de le reproduire dans la grande macro...pour l instant je fait donc des test avec une macro facile de 4 ou 5 ligne..
en resumé ma macro commence par lever le flag selon ta ligne de code et se termine en baissant ce dernier selon ta ligne de code. entre les 2 elle donne a des cell de l autre page des valeur.
l autre page dans le code de la feuille, j ai le code worksheetchange qui quand les cell en question change lance une macro. cette macro contien ta ligne de code pour s arreter si le flag est levé.
le probleme est que des que uje lance la premiere macro, un message d erreur apparait et me dit methode incorrect...et la premiere ligne est surlignée, celle qui lève le flag! donc je ne comprend pas trop ce qui se passe..en attendant j essais d autre combinaison mais rien ne marche!
je vais faire une macro test que je vais pouvoir te fournir le code..car la macro d origine est compliquée avec des userform et tout.. le but pour moi est de comprendre la facon de faire avec le code et de le reproduire dans la grande macro...pour l instant je fait donc des test avec une macro facile de 4 ou 5 ligne..
PATPOWER a édité ce message
Merci pour l'édition de ton message. Je n'en demande pas plus.
Mais tu peux ajouter =VB dans la première balise pour faire encore plus joli
Faire un petit code pas compliqué pour mieux comprendre : +1 - Excellente idée.
Juste un détail. Lever un drapeau, en programmation, c'est mettre Vrai dans sa valeur. Le baisser, c'est y mettre Faux. Vérifier la valeur du drapeau, ce n'est pas le lever.
Il semble que tu ais compris
Ou pas ?
---------------------
J'espère que tu utilises l'Option Explicit !
(Pour les programmeurs confirmés, 10 coups de fouet en cas de manquement. Pour les novices, passage obligatoire par la documentation, puis 10 coups de fouet en cas de récidive !)
Mais tu peux ajouter =VB dans la première balise pour faire encore plus joli
Faire un petit code pas compliqué pour mieux comprendre : +1 - Excellente idée.
Juste un détail. Lever un drapeau, en programmation, c'est mettre Vrai dans sa valeur. Le baisser, c'est y mettre Faux. Vérifier la valeur du drapeau, ce n'est pas le lever.
Citation :
cette macro contien ta ligne de code pour s arreter si le flag est levé.Il semble que tu ais compris
Citation :
le probleme est que des que uje lance la premiere macro, un message d erreur apparait et me dit methode incorrect...et la premiere ligne est surlignée, celle qui lève le flag!Ou pas ?
---------------------
J'espère que tu utilises l'Option Explicit !
(Pour les programmeurs confirmés, 10 coups de fouet en cas de manquement. Pour les novices, passage obligatoire par la documentation, puis 10 coups de fouet en cas de récidive !)
Lassé par la pub ? Créez un compte
- Contenus similaires :
Tags :
- ForumMacro ctrl fin
- ForumMacro excel quand cellule change
- ForumProgrammation de la fin d'une macro
- ForumActiver macro quand cellule change
- ForumLancer macro si cellule change
- ForumBasiqueselection worksheet excel depuis une macro
- ForumExcel macro select worksheet
- ForumExcel macro this worksheet
- ForumExcel macro ctrl fin
- ForumRenomer worksheet excel macro
- Voir plus