Programmer un timer sur plusieurs feuilles
Résolu/Fermé
A voir également:
- Programmer un timer sur plusieurs feuilles
- Comment faire un livret avec des feuilles a4 - Guide
- Programmer un sms - Guide
- Programmer un mail gmail - Guide
- Regrouper plusieurs feuilles excel en une seule - Guide
- Bruler des feuilles de laurier - Guide
1 réponse
yg_be
Messages postés
23535
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
27 avril 2025
Ambassadeur
1 579
21 avril 2018 à 14:28
21 avril 2018 à 14:28
bonjour,
moi je ferais ainsi:
dans thisworkbook:
dans un autre module:
moi je ferais ainsi:
dans thisworkbook:
Option Explicit Private Sub Workbook_BeforeClose(Cancel As Boolean) copy_dh End Sub Private Sub Workbook_Open() init_marches End Sub
dans un autre module:
Option Explicit Dim marches() As Worksheet Sub copy_dh() Dim marche As Variant Dim fl As Worksheet For Each marche In marches Set fl = marche Call copy_dhfl(fl) Next marche End Sub Private Sub copy_dhfl(sh As Worksheet) sh.Range("D12:H51").Value = sh.Range("AS12:AW51").Value sh.Range("C12:C51").ClearContents sh.Range("C11") = Now End Sub Sub init_marches() ReDim marches(3) Set marches(0) = Sheets("CAC40") Set marches(1) = Sheets("AEX") Set marches(2) = Sheets("BEL20") Set marches(3) = Sheets("PSI20") End Sub
21 avril 2018 à 17:36
j ai mis le code et j 'ai la fenêtre de débogage qui s'ouvre et
For Each marche In marches se colore en jaune
Modifié le 21 avril 2018 à 18:04
j'ai oublié d'expliquer qu'il fallait sauver, fermer et rouvrir le fichier pour que cela fonctionne. il suffit donc de choisir "terminer" quand tu as le message d'erreur avant d'avoir fermé et rouvert le fichier.
21 avril 2018 à 18:46
la variable de controle For Each doit etre de type variant ou Object
21 avril 2018 à 19:21
21 avril 2018 à 19:31
Option Explicit
Private Sub Workbook_BeforeClose(Cancel As Boolean)
copy_dh
End Sub
Private Sub Workbook_Open()
init_marches
End Sub
sur module 8
Option Explicit
Dim marches() As Worksheet
Sub copy_dh()
Dim marche As Variant
Dim fl As Worksheet
For Each marches In marche
Set fl = marche
Call copy_dhfl(fl)
Next marche
End Sub
Private Sub copy_dhfl(sh As Worksheet)
sh.Range("D12:H51").Value = sh.Range("AS12:AW51").Value
sh.Range("C12:C51").ClearContents
sh.Range("C11") = Now
End Sub
Sub init_marches()
ReDim marches(3)
Set marches(0) = Sheets("CAC40")
Set marches(1) = Sheets("AEX")
Set marches(2) = Sheets("BEL20")
Set marches(3) = Sheets("PSI20")
End Sub