Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

interrompre une macro

4 réponses
Avatar
friskobear
Bonjour a tous,

A l'aide d0une boucle je laisse excel calculer un certain nombre de
fois une date de depart et d'arrivee dans la page1 et copier les
resultats de chaque calcul dqns la page3. Les calculs vont chdercher
regulierement des donnees dans une base de donnees access externe.
Chaqu calcul dure environ 10 a 15 sec.
Ma macro ne s'arrete pas lors des calculs et donc copie des resultats
inchanges.
Existe-t-il une instruction pour interrompre la macro (donc avant la
copie des resultats dans la page3) sans interrompre le deroulement des
calculs de la page1?

merci pour l'aide
patrick

4 réponses

Avatar
Daniel.C
Bonjour.
Poste ton code.
Cordialement.
Daniel
a écrit dans le message de news:

Bonjour a tous,

A l'aide d0une boucle je laisse excel calculer un certain nombre de
fois une date de depart et d'arrivee dans la page1 et copier les
resultats de chaque calcul dqns la page3. Les calculs vont chdercher
regulierement des donnees dans une base de donnees access externe.
Chaqu calcul dure environ 10 a 15 sec.
Ma macro ne s'arrete pas lors des calculs et donc copie des resultats
inchanges.
Existe-t-il une instruction pour interrompre la macro (donc avant la
copie des resultats dans la page3) sans interrompre le deroulement des
calculs de la page1?

merci pour l'aide
patrick


Avatar
friskobear
On 18 apr, 21:16, "Daniel.C" wrote:
Bonjour.
Poste ton code.
Cordialement.
Daniel
a écrit dans le message de news:




Bonjour a tous,

A l'aide d0une boucle je laisse excel calculer un certain nombre de
fois une date de depart et d'arrivee dans la page1 et copier les
resultats de chaque calcul dqns la page3. Les calculs vont chdercher
regulierement des donnees dans une base de donnees access externe.
Chaqu calcul dure environ 10 a 15 sec.
Ma macro ne s'arrete pas lors des calculs et donc copie des resultats
inchanges.
Existe-t-il une instruction pour interrompre la macro (donc avant la
copie des resultats dans la page3) sans interrompre le deroulement des
calculs de la page1?

merci pour l'aide
patrick- Tekst uit oorspronkelijk bericht niet weergeven -


- Tekst uit oorspronkelijk bericht weergeven -


Bonsoir Daniel,
mon code:
Sub rapport()
'publie rapport mensuel de portes de maree pour un tirant d eau donne

Dim BD, ED, DT As Date
Dim TE As Integer
Let BD = Sheets("rapport").Range("g2").Value 'date de depart
Let ED = Sheets("rapport").Range("g3").Value 'date de fin
Sheets("rapport").Select
Range("a2").Activate
Let TE = 135 'valeur tirant d eau
For DT = BD To ED Step 0.5

Sheets("inout").Select 'selectionne la page de donnee
Range("c10").Select 'copie la valeur du tirant d eau
ActiveCell.FormulaR1C1 = TE
Range("h17:i17").Select ' copie la valeur de la date
ActiveCell.FormulaR1C1 = DT

' inscrire les resultats dans la feuille de rapport
Sheets("rapport").Select
ActiveCell.FormulaR1C1 = DT
ActiveCell.Offset(0, 1).Activate
ActiveCell.FormulaR1C1 = TE
ActiveCell.Offset(0, 1).Activate
ActiveCell.FormulaR1C1 = Sheets("inout").Range("d26:e26").Value
ActiveCell.Offset(0, 1).Activate
ActiveCell.FormulaR1C1 = Sheets("inout").Range("g26:h26").Value
ActiveCell.Offset(1, -3).Activate

Next DT

End Sub

Au moment ou la valeur de la date est copiee en ("h17:i17") excel
commence le calcul qui dure environs 10-15 sec.
Ma macro devrait donc attendre la fin des calculs avant d inscrire les
resultats dans la page "rapport".
J ai deja essaye avec application.wait et avec un timer mais alors
excel s arrete de calculer!
cordialement
patrick


Avatar
Daniel.C
Bonjour.
Essaie de mettre :
DoEvents
après :
Range("h17:i17").Select
sinon, coupe ta macro en deux, en insérant :
Application.OnTime Now + TimeValue("00:0:15"), "rapport2"
"rapport2" étant la seconde partie de la macro.
après :
Range("h17:i17").Select
Tu peux peut-être, selon la nature des calculs, envisager une cellule qui
prendrait une valeur (1 par eemple) à la fin des calculs.
Daniel
a écrit dans le message de news:

On 18 apr, 21:16, "Daniel.C" wrote:
Bonjour.
Poste ton code.
Cordialement.
Daniel
a écrit dans le message de news:




Bonjour a tous,

A l'aide d0une boucle je laisse excel calculer un certain nombre de
fois une date de depart et d'arrivee dans la page1 et copier les
resultats de chaque calcul dqns la page3. Les calculs vont chdercher
regulierement des donnees dans une base de donnees access externe.
Chaqu calcul dure environ 10 a 15 sec.
Ma macro ne s'arrete pas lors des calculs et donc copie des resultats
inchanges.
Existe-t-il une instruction pour interrompre la macro (donc avant la
copie des resultats dans la page3) sans interrompre le deroulement des
calculs de la page1?

merci pour l'aide
patrick- Tekst uit oorspronkelijk bericht niet weergeven -


- Tekst uit oorspronkelijk bericht weergeven -


Bonsoir Daniel,
mon code:
Sub rapport()
'publie rapport mensuel de portes de maree pour un tirant d eau donne

Dim BD, ED, DT As Date
Dim TE As Integer
Let BD = Sheets("rapport").Range("g2").Value 'date de depart
Let ED = Sheets("rapport").Range("g3").Value 'date de fin
Sheets("rapport").Select
Range("a2").Activate
Let TE = 135 'valeur tirant d eau
For DT = BD To ED Step 0.5

Sheets("inout").Select 'selectionne la page de donnee
Range("c10").Select 'copie la valeur du tirant d eau
ActiveCell.FormulaR1C1 = TE
Range("h17:i17").Select ' copie la valeur de la date
ActiveCell.FormulaR1C1 = DT

' inscrire les resultats dans la feuille de rapport
Sheets("rapport").Select
ActiveCell.FormulaR1C1 = DT
ActiveCell.Offset(0, 1).Activate
ActiveCell.FormulaR1C1 = TE
ActiveCell.Offset(0, 1).Activate
ActiveCell.FormulaR1C1 = Sheets("inout").Range("d26:e26").Value
ActiveCell.Offset(0, 1).Activate
ActiveCell.FormulaR1C1 = Sheets("inout").Range("g26:h26").Value
ActiveCell.Offset(1, -3).Activate

Next DT

End Sub

Au moment ou la valeur de la date est copiee en ("h17:i17") excel
commence le calcul qui dure environs 10-15 sec.
Ma macro devrait donc attendre la fin des calculs avant d inscrire les
resultats dans la page "rapport".
J ai deja essaye avec application.wait et avec un timer mais alors
excel s arrete de calculer!
cordialement
patrick


Avatar
friskobear
On 20 apr, 10:39, "Daniel.C" wrote:
Bonjour.
Essaie de mettre :
DoEvents
après :
Range("h17:i17").Select
sinon, coupe ta macro en deux, en insérant :
Application.OnTime Now + TimeValue("00:0:15"), "rapport2"
"rapport2" étant la seconde partie de la macro.
après :
Range("h17:i17").Select
Tu peux peut-être, selon la nature des calculs, envisager une cellule qu i
prendrait une valeur  (1 par eemple) à la fin des calculs.
Daniel
a écrit dans le message de news:

On 18 apr, 21:16, "Daniel.C" wrote:





Bonjour.
Poste ton code.
Cordialement.
Daniel
a écrit dans le message de news:


Bonjour a tous,

A l'aide d0une boucle je laisse excel calculer un certain nombre de
fois une date de depart et d'arrivee dans la page1 et copier les
resultats de chaque calcul dqns la page3. Les calculs vont chdercher
regulierement des donnees dans une base de donnees access externe.
Chaqu calcul dure environ 10 a 15 sec.
Ma macro ne s'arrete pas lors des calculs et donc copie des resultats
inchanges.
Existe-t-il une instruction pour interrompre la macro (donc avant la
copie des resultats dans la page3) sans interrompre le deroulement des
calculs de la page1?

merci pour l'aide
patrick- Tekst uit oorspronkelijk bericht niet weergeven -


- Tekst uit oorspronkelijk bericht weergeven -


Bonsoir Daniel,
mon code:
Sub rapport()
'publie rapport mensuel de portes de maree pour un tirant d eau donne

Dim BD, ED, DT As Date
Dim TE As Integer
Let BD = Sheets("rapport").Range("g2").Value 'date de depart
Let ED = Sheets("rapport").Range("g3").Value 'date de fin
Sheets("rapport").Select
Range("a2").Activate
Let TE = 135 'valeur tirant d eau
For DT = BD To ED Step 0.5

Sheets("inout").Select 'selectionne la page de donnee
Range("c10").Select 'copie la valeur du tirant d eau
ActiveCell.FormulaR1C1 = TE
Range("h17:i17").Select ' copie la valeur de la date
ActiveCell.FormulaR1C1 = DT

' inscrire les resultats dans la feuille de rapport
Sheets("rapport").Select
ActiveCell.FormulaR1C1 = DT
ActiveCell.Offset(0, 1).Activate
ActiveCell.FormulaR1C1 = TE
ActiveCell.Offset(0, 1).Activate
ActiveCell.FormulaR1C1 = Sheets("inout").Range("d26:e26").Value
ActiveCell.Offset(0, 1).Activate
ActiveCell.FormulaR1C1 = Sheets("inout").Range("g26:h26").Value
ActiveCell.Offset(1, -3).Activate

Next DT

End Sub

Au moment ou la valeur de la date est copiee en ("h17:i17") excel
commence le calcul qui dure environs 10-15 sec.
Ma macro devrait donc attendre la fin des calculs avant d inscrire les
resultats dans la page "rapport".
J ai deja essaye avec application.wait et avec un timer mais alors
excel s arrete de calculer!
cordialement
patrick- Tekst uit oorspronkelijk bericht niet weergeven -

- Tekst uit oorspronkelijk bericht weergeven -


Bonsoir,
Ca a l air de marcher. Quand je supprime la boucle j obtiens en effet
le bon resultat.
Quand je fait fonctionner ma macro avec le boucle, elle ne marque que
le dernier resultat.
j ai donc encore une erreur dans la macro mais je suis deja super
avance. Merci beaucoup.
patrick