J'ai un classeur avec en colonne C des données qui sont des noms de fichiers
(F01001, F01002, etc.).
Ces fichiers sont situés dans un répertoire-père ou dans des sous
répertoires-fils du précédent.
Mais, leur vrai nom commence toujours par F, suivi de 5 chiffres, puis de
caractères alphabétiques, et enfin de l'extension .htm
Par exemple, "F01001 Le marché des changes.htm"
Ma question : est-il possible, à partir des données placées en colonne C, de
"chercher" le chemin du fichier correspondant, et de placer le résultat en
colonne D ? (seulement le chemin).
Merci de votre aide.
AB
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Daniel
Bonjour. Essaie la macro suivante en mettant la bonne valeur dans "RepertoirePere"
Sub test1() Dim RepertoirePere As String, c As Range RepertoirePere = "e:donneesdanielmpfe" For Each c In Range("C1", Range("C65536").End(xlUp)) With Application.FileSearch .NewSearch .LookIn = RepertoirePere .Filename = c & "*.htm" .SearchSubFolders = True .Execute If .FoundFiles.Count > 0 Then c.Offset(0, 1) = Left(.FoundFiles(1), _ InStrRev(.FoundFiles(1), "") - 1) End If End With Next c End Sub
Cordialement. Daniel "AB" a écrit dans le message de news: %
Bonjour à tous,
J'ai un classeur avec en colonne C des données qui sont des noms de fichiers (F01001, F01002, etc.). Ces fichiers sont situés dans un répertoire-père ou dans des sous répertoires-fils du précédent. Mais, leur vrai nom commence toujours par F, suivi de 5 chiffres, puis de caractères alphabétiques, et enfin de l'extension .htm Par exemple, "F01001 Le marché des changes.htm" Ma question : est-il possible, à partir des données placées en colonne C, de "chercher" le chemin du fichier correspondant, et de placer le résultat en colonne D ? (seulement le chemin). Merci de votre aide. AB
Bonjour.
Essaie la macro suivante en mettant la bonne valeur dans "RepertoirePere"
Sub test1()
Dim RepertoirePere As String, c As Range
RepertoirePere = "e:donneesdanielmpfe"
For Each c In Range("C1", Range("C65536").End(xlUp))
With Application.FileSearch
.NewSearch
.LookIn = RepertoirePere
.Filename = c & "*.htm"
.SearchSubFolders = True
.Execute
If .FoundFiles.Count > 0 Then
c.Offset(0, 1) = Left(.FoundFiles(1), _
InStrRev(.FoundFiles(1), "") - 1)
End If
End With
Next c
End Sub
Cordialement.
Daniel
"AB" <ABspamophobe1@marseille.com> a écrit dans le message de news:
%236z8Eg1VHHA.4404@TK2MSFTNGP03.phx.gbl...
Bonjour à tous,
J'ai un classeur avec en colonne C des données qui sont des noms de
fichiers (F01001, F01002, etc.).
Ces fichiers sont situés dans un répertoire-père ou dans des sous
répertoires-fils du précédent.
Mais, leur vrai nom commence toujours par F, suivi de 5 chiffres, puis de
caractères alphabétiques, et enfin de l'extension .htm
Par exemple, "F01001 Le marché des changes.htm"
Ma question : est-il possible, à partir des données placées en colonne C,
de "chercher" le chemin du fichier correspondant, et de placer le résultat
en colonne D ? (seulement le chemin).
Merci de votre aide.
AB
Bonjour. Essaie la macro suivante en mettant la bonne valeur dans "RepertoirePere"
Sub test1() Dim RepertoirePere As String, c As Range RepertoirePere = "e:donneesdanielmpfe" For Each c In Range("C1", Range("C65536").End(xlUp)) With Application.FileSearch .NewSearch .LookIn = RepertoirePere .Filename = c & "*.htm" .SearchSubFolders = True .Execute If .FoundFiles.Count > 0 Then c.Offset(0, 1) = Left(.FoundFiles(1), _ InStrRev(.FoundFiles(1), "") - 1) End If End With Next c End Sub
Cordialement. Daniel "AB" a écrit dans le message de news: %
Bonjour à tous,
J'ai un classeur avec en colonne C des données qui sont des noms de fichiers (F01001, F01002, etc.). Ces fichiers sont situés dans un répertoire-père ou dans des sous répertoires-fils du précédent. Mais, leur vrai nom commence toujours par F, suivi de 5 chiffres, puis de caractères alphabétiques, et enfin de l'extension .htm Par exemple, "F01001 Le marché des changes.htm" Ma question : est-il possible, à partir des données placées en colonne C, de "chercher" le chemin du fichier correspondant, et de placer le résultat en colonne D ? (seulement le chemin). Merci de votre aide. AB
JLuc
Daniel avait soumis l'idée :
Dim RepertoirePere As String, c As Range RepertoirePere = "e:donneesdanielmpfe" For Each c In Range("C1", Range("C65536").End(xlUp)) With Application.FileSearch .NewSearch .LookIn = RepertoirePere .Filename = c & "*.htm" .SearchSubFolders = True
Pour le chemin de départ, j'aurai mis : RepertoirePere = Thisworkbook.Path & ".." :oÞ
-- JLuc
Daniel avait soumis l'idée :
Dim RepertoirePere As String, c As Range
RepertoirePere = "e:donneesdanielmpfe"
For Each c In Range("C1", Range("C65536").End(xlUp))
With Application.FileSearch
.NewSearch
.LookIn = RepertoirePere
.Filename = c & "*.htm"
.SearchSubFolders = True
Pour le chemin de départ, j'aurai mis :
RepertoirePere = Thisworkbook.Path & ".."
:oÞ
Dim RepertoirePere As String, c As Range RepertoirePere = "e:donneesdanielmpfe" For Each c In Range("C1", Range("C65536").End(xlUp)) With Application.FileSearch .NewSearch .LookIn = RepertoirePere .Filename = c & "*.htm" .SearchSubFolders = True
Pour le chemin de départ, j'aurai mis : RepertoirePere = Thisworkbook.Path & ".." :oÞ
-- JLuc
Daniel
Bonjour. Ben, j'ai pas compris que son répertoire principal était forcément celui de thisworkbook Cordialement. Daniel "JLuc" a écrit dans le message de news:
Daniel avait soumis l'idée :
Dim RepertoirePere As String, c As Range RepertoirePere = "e:donneesdanielmpfe" For Each c In Range("C1", Range("C65536").End(xlUp)) With Application.FileSearch .NewSearch .LookIn = RepertoirePere .Filename = c & "*.htm" .SearchSubFolders = True
Pour le chemin de départ, j'aurai mis : RepertoirePere = Thisworkbook.Path & ".." :oÞ
-- JLuc
Bonjour.
Ben, j'ai pas compris que son répertoire principal était forcément celui de
thisworkbook
Cordialement.
Daniel
"JLuc" <ns.jeanluc.laurent@free.fr.ns> a écrit dans le message de news:
mn.bbdb7d7276a8a1e4.42854@free.fr.ns...
Daniel avait soumis l'idée :
Dim RepertoirePere As String, c As Range
RepertoirePere = "e:donneesdanielmpfe"
For Each c In Range("C1", Range("C65536").End(xlUp))
With Application.FileSearch
.NewSearch
.LookIn = RepertoirePere
.Filename = c & "*.htm"
.SearchSubFolders = True
Pour le chemin de départ, j'aurai mis :
RepertoirePere = Thisworkbook.Path & ".."
:oÞ
Bonjour. Ben, j'ai pas compris que son répertoire principal était forcément celui de thisworkbook Cordialement. Daniel "JLuc" a écrit dans le message de news:
Daniel avait soumis l'idée :
Dim RepertoirePere As String, c As Range RepertoirePere = "e:donneesdanielmpfe" For Each c In Range("C1", Range("C65536").End(xlUp)) With Application.FileSearch .NewSearch .LookIn = RepertoirePere .Filename = c & "*.htm" .SearchSubFolders = True
Pour le chemin de départ, j'aurai mis : RepertoirePere = Thisworkbook.Path & ".." :oÞ
-- JLuc
AB
Daniel, Encore une fois, un très grand merci. Ton code fonctionne parfaitement ! J'ai juste limité à 500 lignes, car à 65536, ça prenait un temps fou. Je te souhaite une excellente fin de journée. Merci encore ! Merci aussi Jean-Luc : effectivement, le répertoire principal n'est pas celui du classeur Excel. André
"Daniel" a écrit dans le message de news:
Bonjour. Ben, j'ai pas compris que son répertoire principal était forcément celui de thisworkbook Cordialement. Daniel "JLuc" a écrit dans le message de news:
Daniel avait soumis l'idée :
Dim RepertoirePere As String, c As Range RepertoirePere = "e:donneesdanielmpfe" For Each c In Range("C1", Range("C65536").End(xlUp)) With Application.FileSearch .NewSearch .LookIn = RepertoirePere .Filename = c & "*.htm" .SearchSubFolders = True
Pour le chemin de départ, j'aurai mis : RepertoirePere = Thisworkbook.Path & ".." :oÞ
-- JLuc
Daniel,
Encore une fois, un très grand merci. Ton code fonctionne parfaitement !
J'ai juste limité à 500 lignes, car à 65536, ça prenait un temps fou.
Je te souhaite une excellente fin de journée.
Merci encore !
Merci aussi Jean-Luc : effectivement, le répertoire principal n'est pas
celui du classeur Excel.
André
"Daniel" <dZZZcolardelle@free.fr> a écrit dans le message de news:
es3QLA2VHHA.392@TK2MSFTNGP06.phx.gbl...
Bonjour.
Ben, j'ai pas compris que son répertoire principal était forcément celui
de thisworkbook
Cordialement.
Daniel
"JLuc" <ns.jeanluc.laurent@free.fr.ns> a écrit dans le message de news:
mn.bbdb7d7276a8a1e4.42854@free.fr.ns...
Daniel avait soumis l'idée :
Dim RepertoirePere As String, c As Range
RepertoirePere = "e:donneesdanielmpfe"
For Each c In Range("C1", Range("C65536").End(xlUp))
With Application.FileSearch
.NewSearch
.LookIn = RepertoirePere
.Filename = c & "*.htm"
.SearchSubFolders = True
Pour le chemin de départ, j'aurai mis :
RepertoirePere = Thisworkbook.Path & ".."
:oÞ
Daniel, Encore une fois, un très grand merci. Ton code fonctionne parfaitement ! J'ai juste limité à 500 lignes, car à 65536, ça prenait un temps fou. Je te souhaite une excellente fin de journée. Merci encore ! Merci aussi Jean-Luc : effectivement, le répertoire principal n'est pas celui du classeur Excel. André
"Daniel" a écrit dans le message de news:
Bonjour. Ben, j'ai pas compris que son répertoire principal était forcément celui de thisworkbook Cordialement. Daniel "JLuc" a écrit dans le message de news:
Daniel avait soumis l'idée :
Dim RepertoirePere As String, c As Range RepertoirePere = "e:donneesdanielmpfe" For Each c In Range("C1", Range("C65536").End(xlUp)) With Application.FileSearch .NewSearch .LookIn = RepertoirePere .Filename = c & "*.htm" .SearchSubFolders = True
Pour le chemin de départ, j'aurai mis : RepertoirePere = Thisworkbook.Path & ".." :oÞ