Tester chemin avec one drive - erreur 52

4 réponses
Avatar
Droopy191
Bonjour,

J'ai une macro qui teste l'existence d'un chemin avant de créer un sous
dossier si besoin.
Cela marche bien sur un dossier local mais cela ne marche plus si le
fichier est hébergé sur un onedrive.



Une version simplifiée de la macro:
***********
Sub Test_Chemin()

Dim Sous_Dossier As String, Chemin As String, Nom_fichier As String,
fName As String


' Paramètre modifiable
Sous_Dossier = "\Demande de Transport\"


' Chemin du fichier excel
Chemin = ThisWorkbook.Path


' vérifie existante du sous-dossier, et le créer si besoin
If Not (Len(Dir(Chemin & Sous_Dossier, vbDirectory)) > 0) Then
MkDir Chemin & Sous_Dossier
End If

End Sub
**********

J'ai l'erreur suivante
Erreur 52, nom ou numéro de fichier incorrect

Sans doute logique, car ThisWorkbook.Path me renvoit un
https://societe.com-my.sharepoint.com/personnal/username/.....


Comment travailler avec ce dossier sur un onedrive ?
Mon dossier peut etre indifféremment sur un disque classique ou sur un
one drive.



Cordialement


--
DR

4 réponses

Avatar
MichD
Le 01/03/21 Í  05:59, Droopy191 a écrit :
Bonjour,
J'ai une macro qui teste l'existence d'un chemin avant de créer un sous
dossier si besoin.
Cela marche bien sur un dossier local mais cela ne marche plus si le
fichier est hébergé sur un onedrive.
Une version simplifiée de la macro:
***********
Sub Test_Chemin()
Dim Sous_Dossier As String, Chemin As String, Nom_fichier As String,
fName As String
' Paramètre modifiable
Sous_Dossier = "Demande de Transport"
' Chemin du fichier excel
Chemin = ThisWorkbook.Path
' vérifie existante du sous-dossier, et le créer si besoin
If Not (Len(Dir(Chemin & Sous_Dossier, vbDirectory)) > 0) Then
    MkDir Chemin & Sous_Dossier
End If
End Sub
**********
J'ai l'erreur suivante
Erreur 52, nom ou numéro de fichier incorrect
Sans doute logique, car ThisWorkbook.Path me renvoit un
https://societe.com-my.sharepoint.com/personnal/username/.....
Comment travailler avec ce dossier sur un onedrive ?
Mon dossier peut etre indifféremment sur un disque classique ou sur un
one drive.
Cordialement

Bonjour,
Ceci fonctionne très bien. Le répertoire créé apparaÍ®t après quelques
secondes dans le répertoire sur le serveur OneDrive de Microsoft.
Cette procédure peut créer tout un chemin qui n'existe pas avant.
Exemple. Sur un répertoire donné, tu veux ajouter un sous-répertoire Í 
un sous-répertoire bien que ces 2 répertoires n'existent pas.
Exemple : Créer tous ces répertoires d'un seul coup!
"c:Documentstototititata"
'-------------------------------------------
Sub Macro1()
Dim Répertoire As String
Dim Chemin As String,
Dim Rep As string
'Ne pas oublier le "" Í  la fin du chemin
Chemin = "C:UsersmichdOneDriveBureau"
Répertoire = "MichD"
'S'assurer que l'on est sur le bon drive
'dans mon exemple : C
ChDrive Left(Chemin, 1)
Rep = Chemin & Répertoire
If Dir(Rep, vbDirectory) = "" Then
Commande = Environ("comspec") & " /c mkdir " & Rep
Shell Commande, 0
End If
End Sub
'-------------------------------------------
MichD
Avatar
Droopy191
Le 01/03/2021 Í  14:01, MichD a écrit :
Le 01/03/21 Í  05:59, Droopy191 a écrit :
Bonjour,
J'ai une macro qui teste l'existence d'un chemin avant de créer un
sous dossier si besoin.
Cela marche bien sur un dossier local mais cela ne marche plus si le
fichier est hébergé sur un onedrive.
Une version simplifiée de la macro:
***********
Sub Test_Chemin()
Dim Sous_Dossier As String, Chemin As String, Nom_fichier As String,
fName As String
' Paramètre modifiable
Sous_Dossier = "Demande de Transport"
' Chemin du fichier excel
Chemin = ThisWorkbook.Path
' vérifie existante du sous-dossier, et le créer si besoin
If Not (Len(Dir(Chemin & Sous_Dossier, vbDirectory)) > 0) Then
     MkDir Chemin & Sous_Dossier
End If
End Sub
**********
J'ai l'erreur suivante
Erreur 52, nom ou numéro de fichier incorrect
Sans doute logique, car ThisWorkbook.Path me renvoit un
https://societe.com-my.sharepoint.com/personnal/username/.....
Comment travailler avec ce dossier sur un onedrive ?
Mon dossier peut etre indifféremment sur un disque classique ou sur un
one drive.
Cordialement

Bonjour,
Ceci fonctionne très bien. Le répertoire créé apparaÍ®t après quelques
secondes dans le répertoire sur le serveur OneDrive de Microsoft.
Cette procédure peut créer tout un chemin qui n'existe pas avant.
Exemple. Sur un répertoire donné, tu veux ajouter un sous-répertoire Í 
un sous-répertoire bien que ces 2 répertoires n'existent pas.
Exemple : Créer tous ces répertoires d'un seul coup!
"c:Documentstototititata"
'-------------------------------------------
Sub Macro1()
Dim Répertoire As String
Dim Chemin As String,
Dim Rep As string
'Ne pas oublier le "" Í  la fin du chemin
Chemin = "C:UsersmichdOneDriveBureau"
Répertoire = "MichD"
'S'assurer que l'on est sur le bon drive
'dans mon exemple : C
ChDrive Left(Chemin, 1)
Rep = Chemin & Répertoire
If Dir(Rep, vbDirectory) = "" Then
    Commande = Environ("comspec") & " /c mkdir " & Rep
    Shell Commande, 0
End If
End Sub
'-------------------------------------------
MichD

Merci pour votre aide,
Mon soucis est que le dossier Í  créer est un sous dossier dans le
dossier du fichier excel.
Je récupère l'info comme ceci:
' Chemin du fichier excel
Chemin = ThisWorkbook.Path
Mais cela ne renvoit pas "C:UsersmichdOneDriveBureau"
mais un lien web de type
https://societe.com-my.sharepoint.com/personnal/username/.....
Donc ensuite, la commande dir ou d'autres commandes me donne l'erreur 52
--
DR
Avatar
MichD
Un début de solution dans le fichier suivant : Module1
https://www.cjoint.com/c/KCbofiFAiQj
MichD
Avatar
Droopy191
Le 01/03/2021 Í  15:06, MichD a écrit :
Un début de solution dans le fichier suivant : Module1
https://www.cjoint.com/c/KCbofiFAiQj
MichD

Une bonne solution !
Cela marche sur disque local et onedrive
merci encore pour votre aide précieuse
--
DR