retrouver le chemin d'un fichier

Le
AB
Bonjour à tous,
J'ai en colonne C des données correspondant à des noms de fichiers (F0010,
F02364, etc.). Il s'agit de fichiers htm.
Ces fichiers se trouvent sur mon disque dur, dans différents dossiers
appartenant à une arborescence.
Je cherche une macro qui me permette, à partir de la donnée située en C, de
placer en D (ou ailleurs) le chemin complet permettant de retrouver ce
fichier dans l'arborescence.
Toute idée sera la bienvenue.
AB
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Daniel
Le #4533441
Bonjour.
La macro suivante risque d'être longue s'il faut scanner tout le disque C :

Sub RetrouveChemin()
Dim c As Range, Fichier As String
With Application.FileSearch
.NewSearch
.LookIn = "C:"
.Filename = "*.htm"
.SearchSubFolders = True
.Execute
For i = 1 To .FoundFiles.Count
Fichier = Dir(.FoundFiles(i))
For Each c In Range("C1", Range("C65536").End(xlUp))
If c & ".htm" = Fichier Then
c.Offset(0, 1) = Left(.FoundFiles(i), _
InStrRev(.FoundFiles(i), "") - 1)
End If
Next c
Next i
End With
End Sub

Note : Ne fonctionne pas avec XL2007.
Cordialement.
Daniel
"AB"
Bonjour à tous,
J'ai en colonne C des données correspondant à des noms de fichiers (F0010,
F02364, etc.). Il s'agit de fichiers htm.
Ces fichiers se trouvent sur mon disque dur, dans différents dossiers
appartenant à une arborescence.
Je cherche une macro qui me permette, à partir de la donnée située en C,
de placer en D (ou ailleurs) le chemin complet permettant de retrouver ce
fichier dans l'arborescence.
Toute idée sera la bienvenue.
AB



AB
Le #4533401
Daniel avait énoncé :
Bonjour.
La macro suivante risque d'être longue s'il faut scanner tout le disque C :

Sub RetrouveChemin()
Dim c As Range, Fichier As String
With Application.FileSearch
.NewSearch
.LookIn = "C:"
.Filename = "*.htm"
.SearchSubFolders = True
.Execute
For i = 1 To .FoundFiles.Count
Fichier = Dir(.FoundFiles(i))
For Each c In Range("C1", Range("C65536").End(xlUp))
If c & ".htm" = Fichier Then
c.Offset(0, 1) = Left(.FoundFiles(i), _
InStrRev(.FoundFiles(i), "") - 1)
End If
Next c
Next i
End With
End Sub

Note : Ne fonctionne pas avec XL2007.
Cordialement.
Daniel
"AB"
Bonjour à tous,
J'ai en colonne C des données correspondant à des noms de fichiers (F0010,
F02364, etc.). Il s'agit de fichiers htm.
Ces fichiers se trouvent sur mon disque dur, dans différents dossiers
appartenant à une arborescence.
Je cherche une macro qui me permette, à partir de la donnée située en C,
de placer en D (ou ailleurs) le chemin complet permettant de retrouver ce
fichier dans l'arborescence.
Toute idée sera la bienvenue.
AB




Merci Daniel.
Ca marche nickel, as usual.
Comme j'indique le dossier racine , et que je limite le nombre de
lignes (il y en a 500) ça va vite.
Mais j'ai oublié un point important :
En colonne D, j'ai un indicateur : A ou F. Selon la valeur de cet
indicateur, le fichier se trouve dans une branche ou dans une autre de
l'arborescence.
Si c'est A, le dossier père est :
C:Documents and SettingsHP_PropriétaireBureauparcours_A
Si c'est F, le dossier père est :
C:Documents and SettingsHP_PropriétaireBureauparcours
Serait-ce abuser que de te demander comment modifier la macro de sorte
qu'elle aille chercher au bon endroit, selon la valeur en colonne D ?
J'ai déjà modifié l'instruction Offset, qui m'écrasait justement cette
valeur en colonne D, en la remplaçant par c.Offset(0,2) pour que le
chemin se trouve en colonne E.
Merci
André


MichDenis
Le #4533251
Si tu utilises cette méthode pour "Protéger" ta feuille,
tu devrais être capable d'effectuer un tri sur cette
feuille si le tri est commandé est exécuté à l'aide
d'une macro.

With Worksheets("Feuil1")
.Protect Password:="toto", DrawingObjects:=True, _
Contents:=True, UserInterfaceOnly:=True
End With

Et si ta feuille se doit d'être protéger dès l'ouverture du classeur,
utilise l'événement "open" du classeur dans le Thisworkbook
pour y mettre le code précédent
'---------------------
Private Sub Workbook_Open()
With Worksheets("Feuil1")
.Protect Password:="toto", DrawingObjects:=True, _
Contents:=True, UserInterfaceOnly:=True
End With
End Sub
'---------------------



"AB"
Bonjour à tous,
J'ai en colonne C des données correspondant à des noms de fichiers (F0010,
F02364, etc.). Il s'agit de fichiers htm.
Ces fichiers se trouvent sur mon disque dur, dans différents dossiers
appartenant à une arborescence.
Je cherche une macro qui me permette, à partir de la donnée située en C, de
placer en D (ou ailleurs) le chemin complet permettant de retrouver ce
fichier dans l'arborescence.
Toute idée sera la bienvenue.
AB
MichDenis
Le #4533241
Problème d'aiguillage....en réponse à ta question précédente.

Si tu utilises cette méthode pour "Protéger" ta feuille,
tu devrais être capable d'effectuer un tri sur cette
feuille si le tri est commandé est exécuté à l'aide
d'une macro.

With Worksheets("Feuil1")
.Protect Password:="toto", DrawingObjects:=True, _
Contents:=True, UserInterfaceOnly:=True
End With

Et si ta feuille se doit d'être protéger dès l'ouverture du classeur,
utilise l'événement "open" du classeur dans le Thisworkbook
pour y mettre le code précédent
'---------------------
Private Sub Workbook_Open()
With Worksheets("Feuil1")
.Protect Password:="toto", DrawingObjects:=True, _
Contents:=True, UserInterfaceOnly:=True
End With
End Sub
'---------------------



"AB"
Bonjour à tous,
J'ai en colonne C des données correspondant à des noms de fichiers (F0010,
F02364, etc.). Il s'agit de fichiers htm.
Ces fichiers se trouvent sur mon disque dur, dans différents dossiers
appartenant à une arborescence.
Je cherche une macro qui me permette, à partir de la donnée située en C, de
placer en D (ou ailleurs) le chemin complet permettant de retrouver ce
fichier dans l'arborescence.
Toute idée sera la bienvenue.
AB
Daniel
Le #4533201
Essaie (non testé) :

Sub RetrouveChemin()
Dim c As Range, Fichier As String
With Application.FileSearch
.NewSearch
.LookIn = "C:Documents and
SettingsHP_PropriétaireBureauparcours_A"
.Filename = "*.htm"
.SearchSubFolders = True
.Execute
For i = 1 To .FoundFiles.Count
Fichier = Dir(.FoundFiles(i))
For Each c In Range("C1", Range("C65536").End(xlUp))
If c & ".htm" = Fichier And c.Offset(0, 1) = "A" Then
c.Offset(0, 2) = Left(.FoundFiles(i), _
InStrRev(.FoundFiles(i), "") - 1)
End If
Next c
Next i
.NewSearch
.LookIn = "C:Documents and
SettingsHP_PropriétaireBureauparcours"
.Filename = "*.htm"
.SearchSubFolders = True
.Execute
For i = 1 To .FoundFiles.Count
Fichier = Dir(.FoundFiles(i))
For Each c In Range("C1", Range("C65536").End(xlUp))
If c & ".htm" = Fichier And c.Offset(0, 1) = "F" Then
c.Offset(0, 2) = Left(.FoundFiles(i), _
InStrRev(.FoundFiles(i), "") - 1)
End If
Next c
Next i
End With
End Sub

Daniel
"AB"
Daniel avait énoncé :
Bonjour.
La macro suivante risque d'être longue s'il faut scanner tout le disque C
:

Sub RetrouveChemin()
Dim c As Range, Fichier As String
With Application.FileSearch
.NewSearch
.LookIn = "C:"
.Filename = "*.htm"
.SearchSubFolders = True
.Execute
For i = 1 To .FoundFiles.Count
Fichier = Dir(.FoundFiles(i))
For Each c In Range("C1", Range("C65536").End(xlUp))
If c & ".htm" = Fichier Then
c.Offset(0, 1) = Left(.FoundFiles(i), _
InStrRev(.FoundFiles(i), "") - 1)
End If
Next c
Next i
End With
End Sub

Note : Ne fonctionne pas avec XL2007.
Cordialement.
Daniel
"AB"
Bonjour à tous,
J'ai en colonne C des données correspondant à des noms de fichiers
(F0010, F02364, etc.). Il s'agit de fichiers htm.
Ces fichiers se trouvent sur mon disque dur, dans différents dossiers
appartenant à une arborescence.
Je cherche une macro qui me permette, à partir de la donnée située en C,
de placer en D (ou ailleurs) le chemin complet permettant de retrouver
ce fichier dans l'arborescence.
Toute idée sera la bienvenue.
AB




Merci Daniel.
Ca marche nickel, as usual.
Comme j'indique le dossier racine , et que je limite le nombre de lignes
(il y en a 500) ça va vite.
Mais j'ai oublié un point important :
En colonne D, j'ai un indicateur : A ou F. Selon la valeur de cet
indicateur, le fichier se trouve dans une branche ou dans une autre de
l'arborescence.
Si c'est A, le dossier père est :
C:Documents and SettingsHP_PropriétaireBureauparcours_A
Si c'est F, le dossier père est :
C:Documents and SettingsHP_PropriétaireBureauparcours
Serait-ce abuser que de te demander comment modifier la macro de sorte
qu'elle aille chercher au bon endroit, selon la valeur en colonne D ?
J'ai déjà modifié l'instruction Offset, qui m'écrasait justement cette
valeur en colonne D, en la remplaçant par c.Offset(0,2) pour que le chemin
se trouve en colonne E.
Merci
André






AB
Le #4533061
Daniel a exposé le 19/05/2007 :
Essaie (non testé) :

Sub RetrouveChemin()
Dim c As Range, Fichier As String
With Application.FileSearch
.NewSearch
.LookIn = "C:Documents and
SettingsHP_PropriétaireBureauparcours_A"
.Filename = "*.htm"
.SearchSubFolders = True
.Execute
For i = 1 To .FoundFiles.Count
Fichier = Dir(.FoundFiles(i))
For Each c In Range("C1", Range("C65536").End(xlUp))
If c & ".htm" = Fichier And c.Offset(0, 1) = "A" Then
c.Offset(0, 2) = Left(.FoundFiles(i), _
InStrRev(.FoundFiles(i), "") - 1)
End If
Next c
Next i
.NewSearch
.LookIn = "C:Documents and SettingsHP_PropriétaireBureauparcours"
.Filename = "*.htm"
.SearchSubFolders = True
.Execute
For i = 1 To .FoundFiles.Count
Fichier = Dir(.FoundFiles(i))
For Each c In Range("C1", Range("C65536").End(xlUp))
If c & ".htm" = Fichier And c.Offset(0, 1) = "F" Then
c.Offset(0, 2) = Left(.FoundFiles(i), _
InStrRev(.FoundFiles(i), "") - 1)
End If
Next c
Next i
End With
End Sub

Daniel
"AB"
Daniel avait énoncé :
Bonjour.
La macro suivante risque d'être longue s'il faut scanner tout le disque C
:

Sub RetrouveChemin()
Dim c As Range, Fichier As String
With Application.FileSearch
.NewSearch
.LookIn = "C:"
.Filename = "*.htm"
.SearchSubFolders = True
.Execute
For i = 1 To .FoundFiles.Count
Fichier = Dir(.FoundFiles(i))
For Each c In Range("C1", Range("C65536").End(xlUp))
If c & ".htm" = Fichier Then
c.Offset(0, 1) = Left(.FoundFiles(i), _
InStrRev(.FoundFiles(i), "") - 1)
End If
Next c
Next i
End With
End Sub

Note : Ne fonctionne pas avec XL2007.
Cordialement.
Daniel
"AB"
Bonjour à tous,
J'ai en colonne C des données correspondant à des noms de fichiers
(F0010, F02364, etc.). Il s'agit de fichiers htm.
Ces fichiers se trouvent sur mon disque dur, dans différents dossiers
appartenant à une arborescence.
Je cherche une macro qui me permette, à partir de la donnée située en C,
de placer en D (ou ailleurs) le chemin complet permettant de retrouver ce
fichier dans l'arborescence.
Toute idée sera la bienvenue.
AB




Merci Daniel.
Ca marche nickel, as usual.
Comme j'indique le dossier racine , et que je limite le nombre de lignes
(il y en a 500) ça va vite.
Mais j'ai oublié un point important :
En colonne D, j'ai un indicateur : A ou F. Selon la valeur de cet
indicateur, le fichier se trouve dans une branche ou dans une autre de
l'arborescence.
Si c'est A, le dossier père est :
C:Documents and SettingsHP_PropriétaireBureauparcours_A
Si c'est F, le dossier père est :
C:Documents and SettingsHP_PropriétaireBureauparcours
Serait-ce abuser que de te demander comment modifier la macro de sorte
qu'elle aille chercher au bon endroit, selon la valeur en colonne D ?
J'ai déjà modifié l'instruction Offset, qui m'écrasait justement cette
valeur en colonne D, en la remplaçant par c.Offset(0,2) pour que le chemin
se trouve en colonne E.
Merci
André





Daniel,
Un TRES grand merci pour ta disponibilité, ta rapidité, et ton
efficacité !
A+
André
André




Publicité
Poster une réponse
Anonyme