Erreur 76 chez les utilisateurs

Bonjour le forum,

je viens vers vous car malgrès mes recherches sur le net je ne trouve pas de solution à mon soucis.

Chez moi tout fonctionne correctement, mon fichier se trouve sur mon onedrive et le fichier sauvegarde bien dans le sharepoint.

Chez les utilisateurs j'ai demandé de faire exactement la même chose mais ils ont toujours une "erreur 76" qui apparait. Pourtant ils ont bien les même accès au répertoire cible sur le sharepoint que moi.

J'ai créé un bouton supplémentaire pour eux afin de sauver sur leur "c:" et ensuite le tranférer manuellement vers le bon répertoire et cette méthode fonctionne.

J'ai essayé plusieurs choses différentes (changer la fontion de recherche de l'environnement) mais rien n'y fait.

Pouvez-vous m'aider svp.

capture

Bonjour Heavy_B

Je ne comprends pas pourquoi vous appelez une sub avec des arguments vides !?

Call Sub_additionnel.DefinitionCheminNomFichier(RepertoryPath, FileName)

Dans la procédure, j'obtiens pour RepertoryPath

C:\Users\******\Eurofiber Nederland BV\Design - Documents\17_Design\INFRABEL\OPR\2024

Et sur cette ligne

 If Dir(RepertoryPath, vbDirectory) = "" Then MkDir RepertoryPath

J'obtiens l'erreur 76, car le dossier existe pour vous, mais pour moi (utilisateur)

A+

OK, mais chez les utilisateurs le SP est mappé dans windows explorer, donc le chemin "C:\users\....." devrais se mettre à jour avec le nom d'utilisateur et donc si le dossier n'est pas trouvé, le créer... non?

Re,

Voici la réponse que je connaissais mais de ChatGPT

L'erreur 76 dans VBA se produit lorsque le chemin spécifié n'existe pas et que la commande Mkdir ne peut pas créer le répertoire complet car certains sous-dossiers n'existent pas.

La commande Mkdir ne crée qu'un seul niveau de répertoire à la fois. Par conséquent, si un ou plusieurs sous-dossiers dans le chemin n'existent pas, vous devez les créer individuellement ou utiliser une méthode pour créer tous les niveaux de répertoires nécessaires.

Il faut donc utiliser ceci

Sub CreatePath(path As String)
    Dim subPath As String
    Dim folders() As String
    Dim i As Integer    
    folders = Split(path, "\")
    subPath = folders(0) & "\"
    For i = 1 To UBound(folders)
        subPath = subPath & folders(i) & "\"
        If Dir(subPath, vbDirectory) = "" Then
            MkDir subPath
        End If
    Next i
End Sub

A+

Vu le message d'erreur j'avais bien compris que le répertoire n'existe pas pour l'utilisateur, mais le répertoire existe bien sur le sharepoint et donc je ne comprend pas pourquoi le programme ne le trouve pas chez l'utilisateur...

Désolé pour les questions ci après mais je suis loin de tout comprendre en VBA... (mais je promet que j'essaye... )

la sub "DefinitionCheminNomFichier" demande de regarder si dans le "répertoire fixe" du sharepoint un répertoire avec l'année existe.

S'il n'existe pas il faut le créer

S'il existe il faut vérifier si un répertoire existe nommé avec certaines info contenue dans une cellule d'un sheet

si non, le créer

Et y sauver le pdf avec un certain nom

correct? si oui, pourquoi l'utilisateur ne vois pas le répertoire existant?

dans cette sub, je suppose donc que je dois remplacer la partie

' RepertoryPath = "C:\Users\" & Environ("USERNAME") & "\Eurofiber Nederland BV\Design - Documents\17_Design\INFRABEL\OPR\" & Year(Now())
  RepertoryPath = Environ("USERPROFILE") & "\Eurofiber Nederland BV\Design - Documents\17_Design\INFRABEL\OPR\" & Year(Now())
  ' RepertoryPath = Sheets("Information Page").Range("B5") & Year(Now())

  ' Vérifier si chemin existe avec l'année, sinon le créer
  If Dir(RepertoryPath, vbDirectory) = "" Then MkDir RepertoryPath
  ' Chemin définitif
  RepertoryPath = RepertoryPath & "\" & Sheets("Information Page").Range("C13").Text & "\"
  ' Vérifier si chemin existe, sinon le créer
  If Dir(RepertoryPath, vbDirectory) = "" Then MkDir RepertoryPath

par la sub que vous proposez, mais comment?

je la met dans un module et je fait un call?

je la place directement à la place de ces lignes?

Autre question bête

Dans le module1 je cherche le pdf via un chdir et sauve aussi l'excel dans le répertoire créé, cela va aussi donner des soucis si la macro va plus loin que la ligne d'erreur actuelle?

Re,

Vu le message d'erreur j'avais bien compris que le répertoire n'existe pas pour l'utilisateur, mais le répertoire existe bien sur le sharepoint et donc je ne comprend pas pourquoi le programme ne le trouve pas chez l'utilisateur...

Ce n'est pas parce qu'un dossier existe dans un SharePoint qu'il existe forcément chez l'utilisateur
A moins que votre DSI n'est déployée une GPO qui fait le nécessaire...

Normalement un SharePoint en local est dans le dossier

C:\Users\******\OneDrive - SOCIETE\

Ce qui ne semble pas être le cas pour vous, est-ce déjà bien normal ?

Pour le MKDIR, il faut dans la sub existante, remplacer la ligne indiquée par

If Dir(RepertoryPath, vbDirectory) = "" Then CreatePath(RepertoryPath)

Et insérer la Sub donnée dans le même module

A+

Je ne savais pas que :

Ce n'est pas parce qu'un dossier existe dans un SharePoint qu'il existe forcément chez l'utilisateur

A moins que votre DSI n'est déployée une GPO qui fait le nécessaire...

je vous crois mais je trouve cela étrange... je pensais que si on vois le répertoire, il existe (après synchro et éventuellement droit d'accès bien entendu).

Par contre DSI et GPO, aucune idée de ce que c'est... mais je pense que c'est une autre discution... j'irai voir sur le net...

Normalement un SharePoint en local est dans le dossier

C:\Users\******\OneDrive - SOCIETE\

Ce qui ne semble pas être le cas pour vous, est-ce déjà bien normal ?

Comme tous les utilisateurs ont le même chemin local vers le sharepoint je suppose que c'est correct...

Je suppose que les 2 lignes doivent être modifiées?

capture2

encore désolé si mes question sont bête...

Re,

Ce que je vous dirais juste, c'est renseignez vous auprès de votre DSI (Direction des Services Informatique)

Les stratégies de groupe ou GPO (Group Policies Object) permettent de configurer des restrictions d’utilisation de Windows ou des paramètres à appliquer soit sur un ordinateur soit sur un utilisateur.

Bonne chance

OK, je comprend mieux vos propos, merci pour l'info.

Concernant le code, j'ai bien modifié les 2 lignes, l'utilisateur n'as plus de message d'erreur mais les dossiers ne se créent pas dans le sharepoint...

Pour revenir au sharepoint, j'ai regardé sur mon pc,

Tout ce qui est sharepoint est de type : C:\Users\USER\SOCIETE - REPERTOIRES.

Le OneDrive personnel est de type : C:\Users\USER\OneDrive - SOCIETE\REPERTOIRES

Après quelques test il s'avère que le message d'erreur disparait et que l'envoie de mail avec attache est possible mais rien n'est créé ou sauvegardé sur le sharepoint

Rechercher des sujets similaires à "erreur utilisateurs"