[RESOLU] [VBA excel] copier un fichier d'un repertoire a un autre

copier un fichier d'un repertoire a un autre [RESOLU] [VBA excel] - VB/VBA/VBS - Programmation

Marsh Posté le 20-08-2008 à 16:07:31    

bonjour voila mon probleme
je voudrais copier un fichier "Audits Sheets DV4.xls" de "W:\Tiger\Students\NF\" vers  "W:\Tiger\Students\NF\Weekly Save\" si sa date de modification est superieur a 2 jours
 
voila ce que jai fait grace a de nombreux sujet du forum mais jai merde quelque part. mais ou ?
 

Code :
  1. Sub backup()
  2. chemin1 = "W:\test\"
  3. Chemin2 = "W:\test\Weekly Save\"
  4. nomfichier = "Audits Sheets DV4.xls"
  5. Dim ObjRep1: Set ObjRep1 = oFSO.GetFolder(Chemin2)
  6. Dim ObjSubFile: Set ObjSubFile = ObjRep1.Files
  7. If DateDiff(D, ObjSubFile.DateLastModified, Now) > 2 Then
  8. If filesystemobject.FileExists(Chemin2 + nomfichier) = True Then filesystemobject.DeleteFile (Chemin2 + nomfichier)
  9. filesystemobject.CopyFile chemin1 + nomfichier, Chemin2
  10. End If
  11. End Sub


 
merci de votre aide


Message édité par 86vomito33 le 20-08-2008 à 22:04:43
Reply

Marsh Posté le 20-08-2008 à 16:07:31   

Reply

Marsh Posté le 20-08-2008 à 16:09:36    

Déjà, utilise les balises de code pour mettre ton code....

 

A quoi correspond "Chemin2 + nomfichier" ? Si c'est une concaténation, il faut utiliser "&" normalement...


Message édité par babasss le 20-08-2008 à 16:09:55

---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
Reply

Marsh Posté le 20-08-2008 à 21:58:20    

a noter de nombreux changements
 

Code :
  1. Sub backup()
  2. Dim chemin1, chemin2 As String
  3. chemin1 = "C:\test\"
  4. chemin2 = "C:\test\Weekly Save"
  5. nomfichier = "Audits Sheets DV4.xls"
  6. Dim FSO As Scripting.FileSystemObject
  7. Dim DossierSource As Scripting.Folder
  8. Dim Fichier As Scripting.File
  9. Set FSO = New Scripting.FileSystemObject
  10. Set DossierSource = FSO.GetFolder(chemin2)
  11. For Each Fichier In DossierSource.Files
  12. If Fichier = nomfichier Then Fichier.Delete
  13. Next Fichier
  14.    
  15. Set DossierSource = FSO.GetFolder(chemin1)
  16. For Each Fichier In DossierSource.Files
  17. If Fichier.Name = nomfichier And DateDiff("d", Fichier.DateLastModified, Now) <> 3 Then
  18. FSO.CopyFile chemin1 & nomfichier, chemin2
  19. End If
  20. Next Fichier
  21. Set Fichier = Nothing
  22. Set DossierSource = Nothing
  23. Set FSO = Nothing
  24. End Sub


 
le probleme venant de la ligne en rouge avec comme message acces refuse. normal dans la mesure ou je lance la macro a partir de ce fichier  
 
je lai donc remplace par  
Application.DisplayAlerts = False
ActiveWorkbook.SaveCopyAs (chemin2 + nomfichier)


Message édité par 86vomito33 le 20-08-2008 à 22:04:01
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed