Rechercher : dans
Par :

Enregistrement automatique des macro en VBA

Dernière réponse le 7 avr 2009 à 14:31:55 jah_haile_selassie, le 6 avr 2009 à 14:28:09 
 Signaler ce message aux modérateurs

Bonjour,
j'ai envie de faire la même chose que superjuju68; enregistrer et copier mon fichier excel toute les heures dans un repertoire différent mais je suis confronté a un problème de chemin. Lorsque j'indique un chemin différent de la où se trouve mon fichier courant j'ai une erreur de type liée a l'application ou à l'objet. Alors que quand je le fait enregistrer dans le même repertoire que le repertoire où se trouve mon fichier courant je n'ai pas d'erreur. Que faire ? voici mon code:

Private Sub Workbook_Open()

debut:

Start = Timer
intervalle = 60

Do While Timer < Start + intervalle
DoEvents
Loop
Dim nom As String
nom = Left(ActiveWorkbook.Name, Len(ActiveWorkbook.Name) - 4) & "_" & Format(Date, "dd-mm-yyyy") & "_" & Format(Time, "hhmmss") & ".xls"
ActiveWorkbook.SaveCopyAs ActiveWorkbook.Path & "\\Ds-srv-hector\commun\DPAPH\Service Tarification\Sauvegarde temps réel" & nom
GoTo debut


End Sub

Merci d'avance a toute les bonnes volontés

Configuration: Windows XP
Internet Explorer 7.0

1

thev, le 6 avr 2009 à 18:28:30

Bonsoir,

\\Ds-srv-hector fait référence à un emplacement réseau. Il ne peut-être que le début du chemin et non placé derrière le chemin du classeur actif.

Répondre à thev

2

jah_haile_selassie, le 7 avr 2009 à 11:33:07

Bonjhour thev,

j'ai compris mais que dois-je faire alors? stp donne moi un exemple ou je peux mieux voir. Ce matin j'ai tenté de refer ma macro mais rien n'y fait. Lorsque j'ai mon fichier sur le bureau par exemple, il refuse de s'enregistrer là où je l'indique et s'enregistre directement sur le bureau et malgré le fait que je l'indique l'emplacement;
voic le code:


Private Sub Workbook_Open()

debut:
Start = Timer
intervalle = 60

Do While Timer < Start + intervalle
DoEvents ' Donne le contrôle à d'autres processus.
Loop

ChDir "U:\Sauvegarde temps réel\Macro\Macro_01"

fname = "test- " & Day(Date) & "-" & Month(Date) & "-" & Year(Date) & " - " & Hour(Time) & "H" & Minute(Time) & "m" & Second(Time) & "s" & ".xls"

ActiveWorkbook.SaveCopyAs Filename:=fname


GoTo debut



End Sub


Mon fichier test est sur le bureau mais je veux que les copies du fichiers test s'enregistre ici ->"U:\Sauvegarde temps réel\Macro\Macro_01"

Mais rien a faire.

Merci d'avance pour l'aide.

Répondre à jah_haile_selassie

3

thev, le 7 avr 2009 à 11:47:19
  • +1

Chemin = "U:\Sauvegarde temps réel\Macro\Macro_01\"

fname = chemin & "test- " & Day(Date) & "-" & Month(Date) & "-" & Year(Date) & " - " & Hour(Time) & "H" & Minute(Time) & "m" & Second(Time) & "s" & ".xls"

ActiveWorkbook.SaveCopyAs Filename:=fname

Répondre à thev

4

lermite222, le 7 avr 2009 à 12:10:26
  • +1

Bonjour,
Manque un \ dans le chemin...
Mais pour ne pas avoir une boucle permanente dans ton Timer, une autre solution

Private Sub Workbook_Open()
Dim VV As Integer
        VV = TimeSerial(Hour(Time), Minute(Time) + 59, Second(Time) )
        Application.OnTime VV, "timer", False
End Sub

Et dans un module
Sub Timer()
Dim Chemin As String
Dim Nom As String
Dim VV As Integer
    Chemin = "U:\Sauvegarde temps réel\Macro\Macro_01\"
    'Pour tester que le chemin est bon...
    Nom = Dir(Chemin)
    If Nom = "" Then
        MsgBox " le chemin n'existe pas"
        Exit Sub
    End If
    Nom = Left(ActiveWorkbook.Name, Len(ActiveWorkbook.Name) - 4) & "_" & _
    Format(Date, "dd-mm-yyyy") & "_" & Format(Time, "hhmmss") & ".xls"
    
    ActiveWorkbook.SaveCopyAs Filename:=Chemin & Nom
    
    VV = TimeSerial(Hour(Time), Minute(Time) + 59, Second(Time))
    Application.OnTime VV, "timer", False
End Sub


A+


L'expérience instruit plus sûrement que le conseil. (André Gide)  
Si tu te cogne à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)

Répondre à lermite222

5

 jah_haile_selassie, le 7 avr 2009 à 14:31:55

Merci a toi oh thev!!!!!
J'ai testé ta première solution elle marche, en effet je n'avais pas fait de déclaration de mon chemin et de mon fname et en plus j'avais des erreurs sur mon chemin. Pour la boucle j'attend encore de bien comprendre ton code pour changer ma boucle. Thank U and Jah Bless U!!!

Répondre à jah_haile_selassie