retrouver le chemin d'accès d'un fichier

barnes83

XLDnaute Nouveau
bonjour à tous,
je cherche la méthode pour insérer automatiquement dans un code , le chemin d'accès d'un fichier suite à une modification de l'arborescence du réseau.
exemple: antérieurement , mon fichier se trouvait sur "U:\TECH\REUNIONS\mavariable.xls".
suite à réorganisation des services, le fichier se trouve sur "U:\SECTION3D\REUNIONS\mavariable.xls"
il en résulte un bug dans lié à la recherche infructueuse du fichier à ouvrir (worksbook.open....)
merci d'avance pour votre concours
cdlt
 

Lone-wolf

XLDnaute Barbatruc
Bonjour barnes

Elle est un peu bizarre ta demande. o_O Si tu connais le nouveau chemin : "U:\SECTION3D\REUNIONS\mavariable.xls", tu déclare une variable (Dim fichier As String)

fichier = "U:\SECTION3D\REUNIONS\mavariable.xls"
WorkBooks.Open(fichier)
 

Robert

XLDnaute Barbatruc
Repose en paix
Bonjour Barnes, bonjour le forum,

Il te suffit de faire un Rechercher/Remplacer dans le code VBA (touche de raccourci [Ctrl]+[H]), de taper TECH dans Rechercher, SECTION3D dans Remplacer par, de sélectionner l'option du champ Dans et de valider avec Remplacer tout..

[Édition]
Bonjour Loup solitaire, nos posts se sont croisés...
 

JCGL

XLDnaute Barbatruc
Bonjour à tous,

Un complément ICI
ou un code :
Code:
Option Explicit

Sub Listage()
'Microsoft Scripting Runtime requis
Dim Répertoire As String, Lig&, FSO As New FileSystemObject, Dossier As Folder, Fichier As File
Répertoire = ThisWorkbook.Path
Lig = 1
Cells.ClearContents
On Error Resume Next
Set Dossier = FSO.GetFolder(Répertoire)
If Err Then MsgBox "Accès au dossier """ & Répertoire & """ impossible.", vbCritical, "Recherche": Exit Sub
On Error GoTo 0
For Each Fichier In Dossier.Files
   If Fichier.Name Like "*.*" Then
      Lig = Lig + 1
      Cells(Lig, 1) = Dossier.Name
      Cells(Lig, 2) = Fichier.Name
      End If
   Next Fichier
   Cells.Columns.AutoFit
End Sub
A+ à tous
 

Lone-wolf

XLDnaute Barbatruc
Bonjour Jean Claude :) et les autres ;) :)

J'ai trouvé ;)

VB:
Option Explicit

Sub Cherche_Fichier()
Dim Fso As Object, Rep As String, Wb
Dim f1 As Object, f2 As Object, Nom As String

Set Fso = CreateObject("Scripting.FileSystemObject")
Rep = "U:\SECTION3D\"
Nom = "MaisOuEst-ceQuIlEstPassé.xls"

For Each f1 In Fso.GetFolder(Rep).SubFolders
    For Each f2 In f1.Files
    If f2.Name = Nom Then _
        Set Wb = Workbooks.Open(f2)
    Next f2
Next f1
End Sub
 

barnes83

XLDnaute Nouveau
Bonjour barnes

Elle est un peu bizarre ta demande. o_O Si tu connais le nouveau chemin : "U:\SECTION3D\REUNIONS\mavariable.xls", tu déclare une variable (Dim fichier As String)

fichier = "U:\SECTION3D\REUNIONS\mavariable.xls"
WorkBooks.Open(fichier)

salut robert

je savais que ma demande était mal formulée! Je la reformule
en fait je veux que ma routine trouve automatiquement le chemin qui permet l'ouverture du fichier afin que l'utilisateur puisse le placer dans n'importe quel répertoire sans que
Option Explicit

Sub Cherche_Fichier()
Dim Fso As Object, Rep As String, Wb
Dim f1 As Object, f2 As Object, Nom As String

Set Fso = CreateObject("Scripting.FileSystemObject")
Rep = "U:\SECTION3D\"
Nom = "MaisOuEst-ceQuIlEstPassé.xls"

For Each f1 In Fso.GetFolder(Rep).SubFolders
For Each f2 In f1.Files
If f2.Name = Nom Then _
Set Wb = Workbooks.Open(f2)
Next f2
Next f1
End Sub
merci pour ton concours,
je pense que tu as trouvé ,
j'y suis presque mais ca plante encore.
cdlt
 

Lone-wolf

XLDnaute Barbatruc
Re

As-tu changé le nom du fichier? Personnellement je n'ai pas eu de problèmes.

EDIT: essaie comme ceci

VB:
Option Explicit

Sub Test()
Dim Rep$, Nom$

    Rep = "U:\SECTION3D\REUNIONS\"
    Nom = [A2] & ".xls"
  
    If FichierExiste(Rep & Nom) Then
        MsgBox Rep & Nom, vbInformation, "VERIFICATION"
    Else
        MsgBox "Le fichier n'est pas dans ce dossier.", vbExclamation, "VERIFICATION"
    End If
End Sub

Public Function FichierExiste(S As String) As Boolean
Dim fso As Object
    Set fso = CreateObject("Scripting.FileSystemObject")
    FichierExiste = fso.FileExists(S)
End Function
 
Dernière édition:

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 084
Messages
2 085 194
Membres
102 810
dernier inscrit
mohammedaminelahbali