XL 2016 VBA - Créer un classeur dans un répertoire OneDrive

  • Initiateur de la discussion Initiateur de la discussion Dudu2
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Dudu2

XLDnaute Barbatruc
Bonjour,
J'ai un souci avec un code d'un utilisateur.
La création par VBA d'un classeur dans son répertoire C:\Users\<utilisateur>\OneDrive part en erreur 1004.

Je n'ai pas OneDrive et j'aimerais savoir s'il y a des restrictions d'écriture par le VBA ?

1724791261821.png


1724791223552.png
 
Bonjour,
J'ai un souci avec un code d'un utilisateur.
La création par VBA d'un classeur dans son répertoire C:\Users\<utilisateur>\OneDrive part en erreur 1004.

Je n'ai pas OneDrive et j'aimerais savoir s'il y a des restrictions d'écriture par le VBA ?

Regarde la pièce jointe 1202475

Regarde la pièce jointe 1202474
Bonsoir Dudu2,
sans certitude aucune mais il me semble bien qu'il faut convertir le chemin d'accès en chemin UNC.
À tester :
VB:
Option Explicit

#If VBA7 Then
    Private Declare PtrSafe Function DavGetUNCFromHTTPPath Lib "Netapi32.dll" (ByVal Url As LongPtr, ByVal UncPath As LongPtr, lpSize As Long) As Long
#Else
    Private Declare Function DavGetUNCFromHTTPPath Lib "Netapi32.dll" (ByVal Url As Long, ByVal UncPath As Long, lpSize As Long) As Long
#End If
 
'-----------------------------------------------------------------------------------------
' Convertit un chemin SharePoint de type (http...) en chemin UNC (\\...)
' Le chemin retourné a un séparateur final si le chemin initial en avait un
'-----------------------------------------------------------------------------------------
Public Function getUNCPath(pPath As String) As String
Dim lPath As String
Dim lUncPath As String
Dim lSize As Long
lSize = 260 ' MAX_PATH
lPath = pPath & vbNullChar ' Chemin + caractère null de fin
lUncPath = Space(lSize) ' Buffer de réception
If DavGetUNCFromHTTPPath(StrPtr(lPath), StrPtr(lUncPath), lSize) = 0 Then
    ' 0 = pas d'erreur
    ' on reçoit dans lSize la taille du chemin UNC (séparateur de fin inclus)
    getUNCPath = Left(lUncPath, lSize - 1)
    ' Si le chemin initial avait un séparateur final, on en ajoute un
    If Right(pPath, 1) = "/" Or Right(pPath, 1) = "\" Then
        getUNCPath = getUNCPath & "\"
    End If
Else
    getUNCPath = pPath
End If
End Function
Cordialement,
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
382
Retour