Bonjour
Je travaille sous Mac, j'ai un fichier excel qui dois s'actualiser toutes les x minutes et générer un fichier txt par la suite.
Ce fichier reste ouvert sur un poste que je consulte régulièrement via teamviewer.
Ma macro ne marche pas, je pense que le fichier excel se met en arrière plan et la macro s'arrête (ou se met en pause). Quand je clique sur mon fichier excel la macro se remet en marche.
J'ai ajouté un tas de ligne pour que mon fichier se mette en avant plan.
Je sélectionne des cellules (F1, F2, F3) juste pour voir ma macro pas à pas
Je cherche à savoir ou est mon erreur (suis un novice en VBA).
Ma macro dans le module 1
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 'Dans ThisWorkBook Private Sub Workbook_Activate() Workbooks("nom.du.fichier.xlsm").Activate ActiveWorkbook.Sheets("Produit").Select ActiveSheet.Range("F1").Select ActiveWindow.WindowState = xlNormal Application.ScreenUpdating = True Application.Visible = True Application.OnTime Now + TimeValue("00:03:00"), "Enregistrer" End Sub Private Sub Workbook_open() Call Enregistrer End Sub
Merci d'avance (et on ne se moque pas)
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
26
27
28
29
30
31
32
33
34
35
36
37
38 Sub Enregistrer() 'Mettre au premier plan Feuille Produit Application.Visible = True Workbooks("nom.du.fichier.xlsm").Activate ActiveWorkbook.Sheets("Produit").Select ActiveSheet.Range("F1").Select ActiveWindow.WindowState = xlNormal Application.Visible = True Application.ScreenUpdating = True 'Attente 2 sec Application.Wait (Now + TimeValue("00:00:02")) ActiveSheet.Range("G1").Select 'Actualisation SQL ActiveWorkbook.RefreshAll ActiveSheet.Range("F2").Select 'Attente 2 sec Application.Wait (Now + TimeValue("00:00:02")) 'Enlever message pour enregistrer sur fichier existant Application.DisplayAlerts = False 'Sélection Feuille Stock ActiveWorkbook.Sheets("stock").Select ActiveSheet.Range("F1").Select ActiveWindow.WindowState = xlNormal Application.Wait (Now + TimeValue("00:00:02")) 'Direction et format de l'enregistrement Sheets("stock").Select Sheets("stock").Copy ChDir "/Users/toto/Desktop/momo/stock/" ActiveWorkbook.SaveAs FileName:= _ "/Users/toto/Desktop/momo/stock/stock.csv", FileFormat:= _ xlCSVUTF8, CreateBackup:=False ActiveWindow.Close Application.Wait (Now + TimeValue("00:00:01")) 'Enregistrement du fichier et selection Feuille Produits ActiveWorkbook.Sheets("Produits").Select ActiveSheet.Range("F3").Select ActiveWorkbook.Save End Sub
Partager