Programmer un timer sur plusieurs feuilles
Résolu
chrisnapoli
-
chrisnapoli -
chrisnapoli -
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
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
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
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
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.
la variable de controle For Each doit etre de type variant ou Object
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