Chacun sa route chacun son chemin

Hello à tous,

J'ai un code VBA qui ne marche pas pour tous les utilisateurs de la macro.

Ce fichier est sur un réseau et le nom du réseau n'est pas le même pour tout le monde du coup la ligne ci-dessous ne marche pas pour tous :

Set WbSource = Workbooks.Open("O:\CQ\Archives_NE_PAS_OUVRIR.xlsx")

Il suffit pour les autres utilisateurs de transformer la ligne en :

Set WbSource = Workbooks.Open("K:\CQ\Archives_NE_PAS_OUVRIR.xlsx")

Comment faire pour que le code, si le premier chemin ne fonctionne pas, aille essayer le second (qui marchera) ?

Merci d'avance de votre aide.

Bonjour il y a encore plus simple

Utilises le chemin UNC

\\NomServeur\Dossier\Sous-dossier\

A+

Bonjour Bruno,

Merci beaucoup de ta réponse. Je comprends parfaitement l'idée, mais j'ai 2 questions supplémentaires du coup

Comment trouver le chemin UNC du dit fichier ?

Est-ce que le code pour ouvrir le fichier sera toujours le même que celui-dessous à l'exception de la partie soulignée que je remplace par le chemin UNC ? :

Set WbSource = Workbooks.Open("O:\CQ\Archives_NE_PAS_OUVRIR.xlsx")

Merci d'avance !

Bonjour à tous,

... Comment trouver le chemin UNC du dit fichier ? ...

Clique sur Cortana >

tape : invite de commandes >

dans la fenêtre de l'invite de commandes, tape :

net use > voire le chemin du O:

Le chemin UNC va remplacer le O: > la suite est identique. (\CQ\Archives_NE_PAS_OUVRIR.xlsx)

ric

Bonjour à tous,

Une proposition :

Sub Go()
Dim T() As String, i As Integer, ndf As String, WbSource As Object

    T = List_Lecteurs
    For i = 0 To UBound(T, 2) - 1
        ndf = T(1, i) & "CQ\Archives_NE_PAS_OUVRIR.xlsx"
        If Exist_Fichier(ndf) Then Set WbSource = Workbooks.Open(ndf)
    Next i

    If Not WbSource Is Nothing Then
        ' ... blablabla
    End If

    Set WbSource = Nothing
End Sub

Function List_Lecteurs() As Variant
Dim Fso As Object, Drv As Object, T() As String, idx As Integer

    idx = 0
    ReDim T(1, idx)
    Set Fso = CreateObject("Scripting.FileSystemObject")
    For Each Drv In Fso.Drives
        If Drv.IsReady Then
            T(0, UBound(T, 2)) = Drv.DriveType
            T(1, UBound(T, 2)) = Drv.DriveLetter & ":\"
            idx = idx + 1
            ReDim Preserve T(1, idx)
        End If
    Next Drv
    List_Lecteurs = T
    Set Fso = Nothing
End Function

Function Exist_Fichier(S As String) As Boolean
Dim tatiak As Object

    Set tatiak = CreateObject("Scripting.FileSystemObject")
    Exist_Fichier = tatiak.FileExists(S)
    Set tatiak = Nothing
End Function
Rechercher des sujets similaires à "chacun route chemin"