Macro ne fonctionne pas sur d'autres PC - Nom lecteur réseau différent

Bonjour à tous,

Je rencontre actuellement un problème car les macros ne fonctionnent que sur mon PC.

Je pense que cela provient du chemin d'accès car sur mon PC je suis sur le lecteur Z et sur celui de mon responsable, il s'agit du lecteur Y.

Le nom de nos deux lecteurs est identique --> \\SRV-DC-FILES

J'ai ainsi remplacé le Z par le "vrai" nom du lecteur mais cela ne fonctionne pas, même sur mon PC la macro ne fonctionne plus

Set WB = Workbooks.Open("Z:\Partage Cdg\1. Budgets\2026\ etc..

Set WB = Workbooks.Open("\\SRV-DC-FILES\Partage Cdg\1. Budgets\2026\etc..

Que dois-je modifier ? Auriez-vous une solution à me proposer ?

Je vous remercie par avance,

Très bonne journée à vous,

Bonjour,

Perso, je travaille beaucoup par macros complémentaires avec mes clients. Lors de l'envoi d'une mise à jour, les utilisateurs chargent un fichier de paramètres propre au site dans un onglet de paramètres contenant des zones nommées. Dans ces zones nommées, on retrouve justement les adresses des différents répertoires.

Sans aller jusque là, les différents chemins dont vous vous servez pourraient être collectés dans des zones nommées. Le soucis sera de mettre à jour pour chaque utilisateur chaque fois qu'il voudra utiliser une macro. D'où l'utilité de séparer les macros, des données dans une macro complémentaire.

Il y a peut-être une solution intermédiaire en testant le user utilisateur qui indiquera implicitement les différents répertoires.

capture

Bonjour Eric,

Je vous remercie pour votre retour, je vais tenter d'utiliser votre technique :)

Bonjour,

De mon côté j'utilise une macro pour enregistrer le chemin de l'utilisateur, macro très utile parce qu'on utilise M365 et SharePoint.

Le principe : il ne faut avoir qu'un seul explorateur de fichier ouvert, la macro va capter le nom de l'utilisateur et l'adresse de cet explorateur pour les enregistrer dans une feuille de votre classeur. La feuille sera cachée pour l'esthétisme.

Si cela peut vous servir...

Public CheminExplorateur As String

Sub GetCheminExplorateur()
    Dim ShellApp As Object
    Dim Window As Object

    ' Créer un objet Shell.Application
    Set ShellApp = CreateObject("Shell.Application")

    ' Obtenir la fenêtre active
    For Each Window In ShellApp.Windows
        If Window Is ShellApp.Windows.Item(ShellApp.Windows.Count - 1) Then
            Exit For
        End If
    Next Window

    ' Obtenir le chemin du dossier actif dans l'explorateur de fichiers
    On Error Resume Next
    CheminExplorateur = Window.Document.Folder.Self.Path & "\"
    On Error GoTo 0

    ' Si le chemin est vide, afficher une boîte de message
    If CheminExplorateur = "" Then
        MsgBox "Chemin non détecté"
    End If

    Set ShellApp = Nothing
End Sub

'Macro pour enregistrer le user et son chemin local
Sub Rec_Utilisateur_CheminLocal()

    Application.ScreenUpdating = False

    ' Définir le nom de l'utilisateur et l'emplacement du fichier
    Dim NomUtilisateur As String
    Dim EmplacementFichier As String
    Dim etatInitial As Variant
    Dim Mononglet As String

    'on active ou créé l'onglet qui va gérer les users et chemins d'accès
    Call Verifier_Ou_Creer_Onglet_Users

    Call GetCheminExplorateur
    NomUtilisateur = Environ$("username") ' Obtenir le nom de l'utilisateur
    EmplacementFichier = CheminExplorateur ' Obtenir l'emplacement du fichier

    Debug.Print EmplacementFichier

    ' Trouver si l'utilisateur existe déjà
    Dim RangeUtilisateur As Range
    Set RangeUtilisateur = Columns("A:A").Find(What:=NomUtilisateur, LookIn:=xlValues, LookAt:=xlWhole)

    ' Si l'utilisateur existe, mettre à jour l'emplacement du fichier
    If Not RangeUtilisateur Is Nothing Then
        Cells(RangeUtilisateur.Row, 2).Value = EmplacementFichier
    Else
        ' Sinon, ajouter un nouvel enregistrement
        Dim DerniereLigne As Long
        DerniereLigne = Cells(Rows.Count, 1).End(xlUp).Row + 1
        Cells(DerniereLigne, 1).Value = NomUtilisateur
        Cells(DerniereLigne, 2).Value = EmplacementFichier
    End If

'On masque l'onglet
   ActiveSheet.Visible = xlSheetHidden

    Application.ScreenUpdating = True

End Sub

'Macro pour trouver le chemin dans le tableau. Ce chemin sert à l'enregistrement
Function Trouver_Chemin() As Variant

    ' Définir le nom de l'utilisateur
    Dim NomUtilisateur As String
    NomUtilisateur = Environ$("username") ' Obtenir le nom de l'utilisateur

    Call Verifier_Ou_Creer_Onglet_Users

    ' Trouver l'utilisateur dans la colonne A
    Dim RangeUtilisateur As Range
    Set RangeUtilisateur = Columns("A:A").Find(What:=NomUtilisateur, LookIn:=xlValues, LookAt:=xlWhole)

    ' Si l'utilisateur est trouvé, obtenir le résultat correspondant dans la colonne B
    If Not RangeUtilisateur Is Nothing Then
        Dim Resultat As String
        Resultat = Cells(RangeUtilisateur.Row, 2).Value
        Trouver_Chemin = Resultat ' Retourner le résultat
    Else
        MsgBox "L'utilisateur " & NomUtilisateur & " n'a pas été trouvé."
        Trouver_Chemin = "" ' Retourner une chaîne vide si l'utilisateur n'est pas trouvé
    End If

    'On masque l'onglet
   ActiveSheet.Visible = xlSheetHidden

End Function

'Macro pour créer et rendre visible la feuille comportant les users et chemins d'accès
Sub Verifier_Ou_Creer_Onglet_Users()

    Dim Feuille As Worksheet
    Dim NomFeuille As String
    NomFeuille = "Chemin local par users"

    On Error Resume Next ' Ignorer l'erreur si la feuille n'existe pas
    Set Feuille = ThisWorkbook.Sheets(NomFeuille)
    On Error GoTo 0 ' Rétablir le comportement normal en cas d'erreur

    If Feuille Is Nothing Then
        ' Si la feuille n'existe pas, la créer
        Set Feuille = ThisWorkbook.Sheets.Add(After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count))
        Feuille.Name = NomFeuille
    End If

    ' Activer la feuille
    ThisWorkbook.Sheets(NomFeuille).Visible = True
    Sheets("Chemin local par users").Visible = True
    Worksheets(NomFeuille).Select

End Sub
Rechercher des sujets similaires à "macro fonctionne pas nom lecteur reseau different"