PB dans ma macro automatique
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).
Code:
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 |
Ma macro dans le module 1
Code:
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 |
Merci d'avance (et on ne se moque pas)