Bonjour à tous. Je débute en programmation VBA et dans le cadre d'un projet je tombe sur un os. Je vous explique le projet et je vous montre ensuite ce que j'ai déjà fait.
Alors je dispose d'un fichier Excel qui me permet d'aller chercher des informations de la veille contenues dans un automate. Lorsque j'ouvre le fichier, une fenêtre s'ouvre et j'ai 3 options, 1/ rappatrier els infos, 2/ ne pas rappatrier et 3/ j'ai oublié lol....comme dans le service on ne travaille pas le weekend, on perd les infos de la production du vendredi et du samedi. Le but pour moi est evidemment de pouvoir les recuperer et enregistrer chaque jour le rappatriement des données sous le nom de la veille....compliqué hein.

J'ai donc créé une macro de test en attendant.
Je sais que
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Application.DisplayAlerts = False
permet de forcer sur "oui" une fenêtre "oui-non" au demarrage d'excel, est-ce que ça marchera pour ma fenêtre aussi?
ensuite j'ai créé un code pour enregistrer sous le nom de la veille...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 monfichier = Day(Date - 1) & "_" & Month(Date - 1) & "_" & Year(Date - 1)
 
   ActiveWorkbook.SaveAs "*******\" & monfichier & ".Xls"
Ca fonctionne mais est-il possible de supprimer la macro quand j'enregistre le projet sous l'autre nom car lorsque j'ouvre la copie la macro se lance aussi et j'en ai plus besoin lol....si on ne peut pas il me fausra alors copier les values des cellules et creer moi même un nouveau classeur puis les coller mais je ne sais pas faire.....

Enfin, est-il possible de créer une tempo d'une quinzaine de secondes avant d'enregistrer sous car ça prend un certain temps avant de rappatrier les données depuis l'automate....

Voila le code complet
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
Private Sub Workbook_Open()
'
' Macro1 Macro
' Macro enregistrée le 27/06/2007 par ****
'
With ActiveWorkbook
    Dim N As Integer
    Dim monfichier As String
 
'Application.DisplayAlerts = False
'essai d'une boucle pour tempo mais c'est pas terrible
    N = 0
    Do
    N = N + 1
    Loop Until N = 1000
 
    monfichier = Day(Date - 1) & "_" & Month(Date - 1) & "_" & Year(Date - 1)
 
   ActiveWorkbook.SaveAs "*******\" & monfichier & ".Xls"
 
    Workbooks.Close
End With
 
End Sub
Je vous remercie d'avance.