Erreur 70

aducloux Messages postés 33 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 20 juin 2008 - 20 juin 2008 à 14:00
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 20 juin 2008 à 15:00
re re re re re re bonjour :

ce coup-ci quand je lance mon code j ai une erreur 70 qui apparait et qui me dit que je n ai pas l accees... j ai cherche sur internet et en premier lieu j avais un probleme de \ mais la ne vois vraiement pas pkoi...

merci de m aider

Dim Source1 As String
Dim Source2 As String
Dim Source3 As String




For i = 2 To taille


    Source1 = "K:\Dept LIAISONS\DCLA\PYLONES\13. DOCUMENTATION PYLONES\13.03 PLANS" & Cells(i, 37) & ".Tif"
   
    Const Destin1 = "D:\Documents and Settings\duclouxant\Mes documents\exo tower"
 
    Dim objOFS1 As Variant
   
    Set objOFS1 = CreateObject("Scripting.FileSystemObject")
   
    If (objOFS1.FileExists(Source1)) Then
       
        objOFS1.CopyFile Source1, Destin1
       
    End If
   
    Set objOFS1 = Nothing
   
   
     Source2 = "K:\Dept LIAISONS\DCLA\PYLONES\13. DOCUMENTATION PYLONES\13.03 PLANS" & Cells(i, 37) & ".pdf"
   
    Const Destin2 = "D:\Documents and Settings\duclouxant\Mes documents\exo tower"
 
    Dim objOFS2 As Variant
   
    Set objOFS2 = CreateObject("Scripting.FileSystemObject")
   
    If (objOFS2.FileExists(Source2)) Then
       
        objOFS2.CopyFile Source2, Destin2
       
    End If
       
    Set objOFS2 = Nothing
   
    Source3 = "K:\Dept LIAISONS\DCLA\PYLONES\13. DOCUMENTATION PYLONES\13.03 PLANS" & Cells(i, 37) & ".wmg"
   
    Const Destin3 = "D:\Documents and Settings\duclouxant\Mes documents\exo tower"
 
    Dim objOFS3 As Variant
   
    Set objOFS3 = CreateObject("Scripting.FileSystemObject")
   
    If (objOFS3.FileExists(Source3)) Then
       
        objOFS3.CopyFile Source3, Destin3
       
    End If
   
    Set objOFS3 = Nothing
   
    Next i
   
  
   


End Sub


 




 

7 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
20 juin 2008 à 14:08
ça t'apprendra à utiliser FSO dans un environnement VBA ou VB6 !

na!

pas compris le tout...
l'utilité de cumuler les Destin1, Destin2, Destin3 ; de créer objOFS1, objOFS2 et objOFS3 ....

a voir si le repertoire destination existe, si tu y a les droits d'accès...
0
aducloux Messages postés 33 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 20 juin 2008
20 juin 2008 à 14:13
en gros je vais t'expliquer ou vous expliquer ma macro...

alors : je recupere dans une celleule excel un nom de fichier, or celui-ci peut avoir 3 extensions possibles soit .Tif soit .pdf soit .wmg c pourquoi j ai creer Destin1/2/3 et ObjFS1/2/3 c ets pour les 3 extensions differentes...
c'est bete ce qu j ai fais?

et en ce qui concerne le repertoire destination j ai bien verifie j ai effectivement les droits...

donc je ne sais que faire a part tue mon voisin de bureau a coup de clavier ....
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
20 juin 2008 à 14:21
si tu avais 18 extensions possibles, tu dupliquerais tout aussi inutilement tes variables, ton code, etc ?

fais une fonction, factorise..... (et vires moi ce fichui FSO, qui, comme son nom l'indique est a reserver pour le Scripting)
0
aducloux Messages postés 33 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 20 juin 2008
20 juin 2008 à 14:27
je suis desole mais je suis novice encore.... si je le suipprime comment vais je alors faire marcher ma commande de copier/coller et comment vais je faire tourner mon test d existence de fichier ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
20 juin 2008 à 14:37
Option Explicit

Private Declare Function GetFileAttributes Lib "kernel32.dll" Alias "GetFileAttributesA" (ByVal lpFileName As String) As Long
Private Declare Function MkDir Lib "imagehlp.dll" Alias "MakeSureDirectoryPathExists" (ByVal lpPath As String) As Long
Private Const INVALID_FILE_ATTRIBUTES As Long = &HFFFFFFFF

Public Function DoesExist(ByRef vsPath As String) As Boolean
DoesExist = (GetFileAttributes(vsPath) <> INVALID_FILE_ATTRIBUTES)
End Function

Public Sub FileCopy(ByVal vsFilePath As String, ByVal vsDestination As String, Optional ByVal vbOverwrite As Boolean = False)
Dim nPos As Long
Dim sFileName As String
'# On ajoute le "" final, si besoin (le parametres est en ByVal, donc pas de souci)
If Right$(vsDestination, 1) <> "" Then
vsDestination = vsDestination & ""
End If
'# Si le fichier source existe...
If DoesExist(vsFilePath) Then
'# Et si le repertoire de destination est accessible... (l'arborescence sera créée si besoin)
If MkDir(vsDestination) <> 0 Then
'# On récupère le nom du fichier
nPos = InStrRev(vsFilePath, "")
If nPos Then
sFileName = Mid$(vsFilePath, nPos + 1)
'# Si le fichier cible existe, et que l'on a demandé à ne pas l'ecraser...
If DoesExist(vsDestination & sFileName) And vbOverwrite = False Then
'# On quitte la procédure
Exit Sub
End If
'# Sinon, on copie le fichier.
VBA.FileCopy vsFilePath, vsDestination & sFileName
End If
End If
End If
End Sub

Public Sub Test()
Const SRCFOLDER = "K:\Dept LIAISONS\DCLA\PYLONES\13. DOCUMENTATION PYLONES\13.03 PLANS"
Const DSTFOLDER = "D:\Documents and Settings\duclouxant\Mes documents\exo tower"
Dim i As Long
'# Colonne 37 ; ligne 2 à la fin...
For i = 2 To Cells.SpecialCells(xlCellTypeLastCell).Row
'# On tente la recopie de notre fichier
FileCopy SRCFOLDER & Cells(i, 37) & ".tif", DSTFOLDER
FileCopy SRCFOLDER & Cells(i, 37) & ".pdf", DSTFOLDER
FileCopy SRCFOLDER & Cells(i, 37) & ".wmg", DSTFOLDER
Next i
End Sub
0
aducloux Messages postés 33 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 20 juin 2008
20 juin 2008 à 14:49
je ne peux que te remercier....
tu viens de me rendre heureux pour mon week end...
merci beaucoup , bon week end, bonne fete de la musique!
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
20 juin 2008 à 15:00
le tout est que tu en tire quelques lecons...

1- pas de FSO hors fichier VBS
2- factoriser le code dans des fonctions, réutilisables
3- éviter de multiplier inutilement les variables
0
Rejoignez-nous