2 réponses
PlacageGranby
Messages postés
393
Date d'inscription
mercredi 26 mars 2014
Statut
Membre
Dernière intervention
7 mars 2019
26
25 sept. 2015 à 14:25
25 sept. 2015 à 14:25
Bonjour,
J'ai fait la recherche "VBA erreur 70" sur google, et selon Microsoft.
https://support.microsoft.com/fr-fr/help/147394
CAUSE
Ce problème se produit si le fichier source que vous souhaitez copier est ouvert lorsque vous essayez d'exécuter la macro.
Autre KB qui n'a peut-être pas rapport
https://support.microsoft.com/fr-fr/help/180384
L'erreur d'exécution « 70 » est généralement le résultat d'un problème de sécurité ou d'autorisations. La liste suivante recense des causes possibles de l'erreur d'exécution 70. Elle n'est cependant ni exhaustive, ni définitive.
J'ai regarder un peu si il y a des macro pour tester l'état d'un fichier.
Je vois seulement du code pour tester si un document excel est ouvert ou non, mais rien pour un autre type de fichier.
J'ai aussi tombé sur ce site : http://www.info-3000.com/vbvba/fichiers/
Beaucoup d'exemple de code sur la copie de fichier et différente méthode. On sait jamais.
Malheureusement, je ne suis pas une superbole Excel qui peut détecter les problème à vue. Surtout que ton problème est peut-être plus lié à l'environnement que le code. Donc, a moins de réussir à reproduire le problème sur mon ordi, on peut difficilement t'aider.
J'ai fait la recherche "VBA erreur 70" sur google, et selon Microsoft.
https://support.microsoft.com/fr-fr/help/147394
CAUSE
Ce problème se produit si le fichier source que vous souhaitez copier est ouvert lorsque vous essayez d'exécuter la macro.
Autre KB qui n'a peut-être pas rapport
https://support.microsoft.com/fr-fr/help/180384
L'erreur d'exécution « 70 » est généralement le résultat d'un problème de sécurité ou d'autorisations. La liste suivante recense des causes possibles de l'erreur d'exécution 70. Elle n'est cependant ni exhaustive, ni définitive.
J'ai regarder un peu si il y a des macro pour tester l'état d'un fichier.
Je vois seulement du code pour tester si un document excel est ouvert ou non, mais rien pour un autre type de fichier.
J'ai aussi tombé sur ce site : http://www.info-3000.com/vbvba/fichiers/
Beaucoup d'exemple de code sur la copie de fichier et différente méthode. On sait jamais.
Malheureusement, je ne suis pas une superbole Excel qui peut détecter les problème à vue. Surtout que ton problème est peut-être plus lié à l'environnement que le code. Donc, a moins de réussir à reproduire le problème sur mon ordi, on peut difficilement t'aider.
Bonjour,
Finalement j'ai trouvé ce qui n'allait pas sur mon code:
Ce code:
Dim objDrive As Object
With CreateObject("Scripting.FileSystemObject")
For Each objDrive In .Drives
If objDrive.IsReady Then
If objDrive.VolumeName = "VERBATIM HD" Then
destination = objDrive.Path & "\SAUVEGARDE IMPORT\"
il me donnait l'erreur plus haut.
Je l'ai remplacé par celui ci qui a l'air de bien fonctionner:
Private Declare Function GetVolumeInformation Lib "Kernel32" Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Long, lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Long) As Long
Function GetVolumeName(ByVal cDrive As String) As String
' http://www.codyx.org/snippet_recuperer-nom-attribue-lecteur-disque-cle-etc_863.aspx
' cDrive = CHAR (lettre) de A à Z
Dim sBuffer As String
Dim iEnd As Integer
sBuffer = Space$(255)
GetVolumeInformation cDrive & ":\", sBuffer, Len(sBuffer), 0&, 0&, 0&, vbNullString, 0&
iEnd = InStr(1, sBuffer, vbNullChar)
If iEnd Then GetVolumeName = Left$(sBuffer, iEnd - 1)
End Function
Function lettreLecteur(nomLecteur As String) As String
Dim l As Long
For l = 1 To 26
If GetVolumeName(Chr(64 + l)) = nomLecteur Then
lettreLecteur = Chr(l + 64)
Exit For
End If
Next l
End Function
Dim r As String, nomLecteur As String
nomLecteur = "VERBATIM HD"
r = lettreLecteur(nomLecteur)
If r <> "" Then
Dim destination As String
destination = r & ":\SAUVEGARDE IMPORT\"
Else
MsgBox ("Lecteur '" & nomLecteur & "' non trouvé."), vbCritical
Exit Sub
End If
Finalement j'ai trouvé ce qui n'allait pas sur mon code:
Ce code:
Dim objDrive As Object
With CreateObject("Scripting.FileSystemObject")
For Each objDrive In .Drives
If objDrive.IsReady Then
If objDrive.VolumeName = "VERBATIM HD" Then
destination = objDrive.Path & "\SAUVEGARDE IMPORT\"
il me donnait l'erreur plus haut.
Je l'ai remplacé par celui ci qui a l'air de bien fonctionner:
Private Declare Function GetVolumeInformation Lib "Kernel32" Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Long, lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Long) As Long
Function GetVolumeName(ByVal cDrive As String) As String
' http://www.codyx.org/snippet_recuperer-nom-attribue-lecteur-disque-cle-etc_863.aspx
' cDrive = CHAR (lettre) de A à Z
Dim sBuffer As String
Dim iEnd As Integer
sBuffer = Space$(255)
GetVolumeInformation cDrive & ":\", sBuffer, Len(sBuffer), 0&, 0&, 0&, vbNullString, 0&
iEnd = InStr(1, sBuffer, vbNullChar)
If iEnd Then GetVolumeName = Left$(sBuffer, iEnd - 1)
End Function
Function lettreLecteur(nomLecteur As String) As String
Dim l As Long
For l = 1 To 26
If GetVolumeName(Chr(64 + l)) = nomLecteur Then
lettreLecteur = Chr(l + 64)
Exit For
End If
Next l
End Function
Dim r As String, nomLecteur As String
nomLecteur = "VERBATIM HD"
r = lettreLecteur(nomLecteur)
If r <> "" Then
Dim destination As String
destination = r & ":\SAUVEGARDE IMPORT\"
Else
MsgBox ("Lecteur '" & nomLecteur & "' non trouvé."), vbCritical
Exit Sub
End If