bonsoir
je souhaiterai qu'une fois un fichier excel ouvert une macro s'execute automatiquement toutes les minutes pendant 9 heures
avez vous un code a me proposer ?
merci
bonsoir
je souhaiterai qu'une fois un fichier excel ouvert une macro s'execute automatiquement toutes les minutes pendant 9 heures
avez vous un code a me proposer ?
merci
Tu dis
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 Public Chrono As Boolean Sub Workbook_Open() Dim HFin HFin = Now + TimeValue("09:00:00") 'Délai fixé à 9 heures Chrono = True Call FaitTourner Do Chrono = Now < HFin DoEvents Loop While Chrono 'Arrête si temps est dépassé End Sub Sub FaitTourner() 'Relance la pendule (mise à jour de OnTime) toutes les minutes If Chrono Then Application.OnTime Now + TimeValue("00:01:00"), "FaitTourner" Call TaMacro '*********** End Sub
A+
cela ne semble pas fonctionner
j ai deux trois question
la macroa partir du moment que je fais une macro portant se "nom" elle va s'executer des que j'ouvre mon fichier ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part Sub Workbook_Open()
je ne comprends pas bien cette ligne
une fois que j'appelle ma macro ne faut il pas dans mamacro rapeller fait trouner ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part Chrono = Now < HFin
Déjà, pour tester, réduits les délais. Chez moi, ces macros fonctionnent. J'ai fait les tests dur une durée d'une minute, avec 5 secondes entre chaque appel.
Pour tester, fais ça
Quant à Sub Workbook_Open(), tu la places dans ThisWorkbook pour que la macro se déclenche à l'ouverture du classeur. Si tu veux la lancer depuis un bouton, rebaptise-la d'un autre nom et place-la dans un module standard
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 Public Chrono As Boolean Sub Workbook_Open() Dim HFin HFin = Now + TimeValue("00:00:30") 'Délai fixé à 9 heures Chrono = True Call FaitTourner Do Chrono = Now < HFin DoEvents Loop While Chrono 'Arrête si temps est dépassé End Sub Sub FaitTourner() 'Relance la pendule (mise à jour de OnTime) toutes les minutes If Chrono Then Application.OnTime Now + TimeValue("00:00:05"), "FaitTourner" Call TaMacro '*********** End Sub Sub TaMacro() Msgbox "Coucou !" End sub
A+
Si tu as toujours un pb de fonctionnement, tu dis, je te donnerai une solution. C'est peut-être un pb de vitesse de Mµ (?)
ok je n avais pas place workbook_open dans worksheet
ca semble marché cependant j ai maintenant un souci dans ma macro
la voici
j ai le message
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 sub var() Range("M1:M15").Select Selection.ClearContents Range("N1:N15").Select Selection.ClearContents For i = 3 To 15 If Range("G" & i & "").Value < 0 Then Range("M" & i & "").Value = "BAISSE": _ Range("M" & i & "").Select: Selection.Font.ColorIndex = 3 Else: Range _ ("M" & i & "").Value = "HAUSSE": Range("M" & i & "").Select: Selection.Font.ColorIndex = 4 If Range("G" & i & "").Value = 0 Then Range("M" & i & "").Value = "EGAL": Range("M" & i & "").Select: Selection.Font.ColorIndex = 1 Next i end sub
alors que si lance ma macro a partir d'un bouton elle fonctionne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 incompatibilite de type If Range("G" & i & "").Value < 0
Et pourremplace parIf Range("G" & i & "").Value < 0
A+
Code : Sélectionner tout - Visualiser dans une fenêtre à part If Range("G" & i).Value < 0
ok j ai trouve j avais un #NA dans ma cellule
merci encore pour ton aide
a+
Partager