Bonjour à Tous,
Voic mon problème. Je débute en VBA, et je souhaite créer une macro qui suit les étapes suivantes :
1) Ouvrir fichier excel
2) Actualiser les TCD qui sont alimentés par des cubes OLAP
3) Attendre la fin de l'actualisation
4) Sauvegarder et fermer.
Grâce à différents forum, j'ai pu créer un début de Macro qui reprend les étape 1) et 2).
Première question, pourquoi si je mets direcetement "ActiveWorkbook.RefreshAll" cela n'actualise pas mon classeur ? Je suis obligé de mettre "Windows(NomFich).Activate" pour que ça marche.
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
23
24
25 Sub Actualiser() Dim Chemin As String reponse = MsgBox("Voulez-vous actualiser ?", vbYesNo, "Attention") If reponse = vbYes Then Application.ScreenUpdating = False Chemin = ThisWorkbook.Path Ouvrir Chemin Application.ScreenUpdating = True Else: Exit Sub End If End Sub Sub Ouvrir(Chemin As String) Dim NomFich As String NomFich = Dir(Chemin & "\Comentarios" & "*.xlsx") If NomFich = "" Then MsgBox "Aucun fichier n'a été trouvé." Do While Left(NomFich, 11) = "Comentarios" Workbooks.Open Chemin & "\" & NomFich Windows(NomFich).Activate ActiveWorkbook.RefreshAll ActiveWorkbook.Save ActiveWorkbook.Close NomFich = Dir Loop End Sub
Pour l'étape 3, quelqu'un aurait-il une idée ?
Merci d'avance.
Motus
Partager