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