Bonjour le forum,
Je travaille sur MAC et j’utilise MS Office 2011 pour MAC. En plus, je ne comprends rien dans le VB.
Un projet m’oblige mettre a jour des fichiers (ils sont + /- 25) chaque jour. Tous les fichiers sauf un seul se trouvent dans le même répertoire.
Tous les fichiers appartiennent en trois groupes :
Gr 1. Les données théoriques (1 fichier AAA.xls, répertoire 1).
Gr 2. Les bases de données (BD_1.xls, BD_2.xls,...BD_20.xls, répertoire 2, chaque fichier est protégé par mot de passe « aaa », « bbb », ... , « yyy »).
Gr 3. Le récapitulatif des bases de données (BD_Recap.xls, répertoire 2, mot de passe « aabbcc »)
Quelqu’un m’a écrit une macro qui ouvre et met à jour les données de Gr 2 et Gr 3. J’ai 2 problèmes :
a. Le fichier AAA.xls reste dehors.
b. Parce que les fichiers de la Gr 2 sont nombreux et « lourds », la mise a jour prend plus que 3 heures et ca bloque les utilisateurs.
Mes questions pour le forum :
I. Est-ce que possible adapter la macro existante dans telle manière qu’elle se lancera automatiquement chaque minuit ? Ou je pourrai la lancer vers 16 heures mais le calcul et mise à jour commenceront 8 heures plus tard ?
II. Est-ce quelqu’un pourra rajoute le fichier AAA.xls dans la macro existante pour le mettre a jour seulement ?
Je vous remercie d’avance,
Gogia
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 Sub som() Dim MasterWbk As Workbook Dim i As Long, cel As Range Dim passwords Application.ScreenUpdating = False Set MasterWbk = ThisWorkbook passwords = Array("aaa", "bbb", "ccc", "ddd", "eee", "fff", "ggg", "hhh", "iii", "jjj", "kkk", "lll", "mmm", "nnn", "ooo", "ppp", "qqq", "rrr", "sss", "ttt", "uuu", "vvv", "www", "xxx") MasterWbk.ActiveSheet.[C4:F35,C37:F38,K4:N35,K37:N38].ClearContents For i = 1 To 24 Workbooks.Open "BD_" & i & ".xls", UpdateLinks:=3, Password:=passwords(i - 1) For Each cel In Sheets("Recap1").[C4:F35,C37:F38,K4:N35,K37:N38] MasterWbk.ActiveSheet.Range(cel.Address) = MasterWbk.ActiveSheet.Range(cel.Address) + cel.Value Next cel ActiveWorkbook.Close False Next i End Sub
Partager