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
michdenis
Bonjour Sten83,
Tu lances une recherche sur tous les disques locaux de ton ordinateurs, Il ne faut pas être pressé !!!!!!!
Voici une procédure de Frédéric Sigonneau qui fait le boulot.
Sub TestRechercheTousDisquesLocaux() Dim Coll As New Collection Set Coll = CherchePartout("InscrireLeNomDuFichierRecherché.xls") MsgBox Coll.Count & " fichier(s) trouvé(s)" If Coll.Count > 0 Then MsgBox Coll(1) End Sub
Function CherchePartout(nomFichier) As Collection 'cherche "nomFichier" sur l'ensemble des disques durs du système '"nomFichier" est un nom de fichier sans son extension 'la fonction renvoie le ou les fichiers trouvés dans une collection '(attention : ça peut être assez longuet...) Dim fso, Lecteurs, Lecteur, Retour As New Collection Dim Fichiers, Fichier, Dossier, Racine, SousDossiers
Set fso = CreateObject("Scripting.FileSystemObject") Set Lecteurs = fso.drives
For Each Lecteur In Lecteurs 'examine les dusques durs locaux If Lecteur.DriveType = 2 Then ChercheFichier Lecteur.driveletter & ":", nomFichier, Retour End If Next Set CherchePartout = Retour End Function 'fs
Sub ChercheFichier(dossierDépart, nomFichier, Retour As Collection) 'renvoie dans la variable "retour" le chemin complet de "nomFichier" 'cherché dans "dossierDépart" (antislash final requis) Dim fso, Fichiers, Fichier, Dossier, Racine, SousDossiers
Set fso = CreateObject("Scripting.FileSystemObject") Set Racine = fso.GetFolder(dossierDépart) Set Fichiers = Racine.Files For Each Fichier In Fichiers If UCase(fso.getbasename(Fichier.Path)) = UCase(nomFichier) Then On Error Resume Next Retour.Add Fichier.Path, Fichier.Path On Error GoTo 0 End If Next
Set SousDossiers = Racine.SubFolders For Each Dossier In SousDossiers ChercheFichier Dossier, nomFichier, Retour Next
End Sub
Salutations!
"STEN83" a écrit dans le message de news: Bonsoir à tous, Comment à l'aide d'une macro ouvrir un classeur sans en connaître le chemin ?
-- Le partage du savoir contribue à l'amélioration de la condition humaine! Merci à tous
Bonjour Sten83,
Tu lances une recherche sur tous les disques locaux de ton ordinateurs,
Il ne faut pas être pressé !!!!!!!
Voici une procédure de Frédéric Sigonneau qui fait le boulot.
Sub TestRechercheTousDisquesLocaux()
Dim Coll As New Collection
Set Coll = CherchePartout("InscrireLeNomDuFichierRecherché.xls")
MsgBox Coll.Count & " fichier(s) trouvé(s)"
If Coll.Count > 0 Then MsgBox Coll(1)
End Sub
Function CherchePartout(nomFichier) As Collection
'cherche "nomFichier" sur l'ensemble des disques durs du système
'"nomFichier" est un nom de fichier sans son extension
'la fonction renvoie le ou les fichiers trouvés dans une collection
'(attention : ça peut être assez longuet...)
Dim fso, Lecteurs, Lecteur, Retour As New Collection
Dim Fichiers, Fichier, Dossier, Racine, SousDossiers
Set fso = CreateObject("Scripting.FileSystemObject")
Set Lecteurs = fso.drives
For Each Lecteur In Lecteurs
'examine les dusques durs locaux
If Lecteur.DriveType = 2 Then
ChercheFichier Lecteur.driveletter & ":", nomFichier, Retour
End If
Next
Set CherchePartout = Retour
End Function 'fs
Sub ChercheFichier(dossierDépart, nomFichier, Retour As Collection)
'renvoie dans la variable "retour" le chemin complet de "nomFichier"
'cherché dans "dossierDépart" (antislash final requis)
Dim fso, Fichiers, Fichier, Dossier, Racine, SousDossiers
Set fso = CreateObject("Scripting.FileSystemObject")
Set Racine = fso.GetFolder(dossierDépart)
Set Fichiers = Racine.Files
For Each Fichier In Fichiers
If UCase(fso.getbasename(Fichier.Path)) = UCase(nomFichier) Then
On Error Resume Next
Retour.Add Fichier.Path, Fichier.Path
On Error GoTo 0
End If
Next
Set SousDossiers = Racine.SubFolders
For Each Dossier In SousDossiers
ChercheFichier Dossier, nomFichier, Retour
Next
End Sub
Salutations!
"STEN83" <STEN83@discussions.microsoft.com> a écrit dans le message de news: CF526570-7ABA-44C2-B160-44D676967F55@microsoft.com...
Bonsoir à tous,
Comment à l'aide d'une macro ouvrir un classeur sans en connaître le chemin ?
--
Le partage du savoir contribue à l'amélioration de la condition humaine!
Merci à tous
Tu lances une recherche sur tous les disques locaux de ton ordinateurs, Il ne faut pas être pressé !!!!!!!
Voici une procédure de Frédéric Sigonneau qui fait le boulot.
Sub TestRechercheTousDisquesLocaux() Dim Coll As New Collection Set Coll = CherchePartout("InscrireLeNomDuFichierRecherché.xls") MsgBox Coll.Count & " fichier(s) trouvé(s)" If Coll.Count > 0 Then MsgBox Coll(1) End Sub
Function CherchePartout(nomFichier) As Collection 'cherche "nomFichier" sur l'ensemble des disques durs du système '"nomFichier" est un nom de fichier sans son extension 'la fonction renvoie le ou les fichiers trouvés dans une collection '(attention : ça peut être assez longuet...) Dim fso, Lecteurs, Lecteur, Retour As New Collection Dim Fichiers, Fichier, Dossier, Racine, SousDossiers
Set fso = CreateObject("Scripting.FileSystemObject") Set Lecteurs = fso.drives
For Each Lecteur In Lecteurs 'examine les dusques durs locaux If Lecteur.DriveType = 2 Then ChercheFichier Lecteur.driveletter & ":", nomFichier, Retour End If Next Set CherchePartout = Retour End Function 'fs
Sub ChercheFichier(dossierDépart, nomFichier, Retour As Collection) 'renvoie dans la variable "retour" le chemin complet de "nomFichier" 'cherché dans "dossierDépart" (antislash final requis) Dim fso, Fichiers, Fichier, Dossier, Racine, SousDossiers
Set fso = CreateObject("Scripting.FileSystemObject") Set Racine = fso.GetFolder(dossierDépart) Set Fichiers = Racine.Files For Each Fichier In Fichiers If UCase(fso.getbasename(Fichier.Path)) = UCase(nomFichier) Then On Error Resume Next Retour.Add Fichier.Path, Fichier.Path On Error GoTo 0 End If Next
Set SousDossiers = Racine.SubFolders For Each Dossier In SousDossiers ChercheFichier Dossier, nomFichier, Retour Next
End Sub
Salutations!
"STEN83" a écrit dans le message de news: Bonsoir à tous, Comment à l'aide d'une macro ouvrir un classeur sans en connaître le chemin ?
-- Le partage du savoir contribue à l'amélioration de la condition humaine! Merci à tous