recherche du contenu d'une cellule dans l'explorateur windows

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

bravojr

XLDnaute Nouveau
recherche du contenu d'une cellule dans l'explorateur windows [résolu]

Bonjour,

le titre de mon message est peut être pas très clair, donc je m'explique:

dans un fichier excel j'ai les éléments d'une base documentaire où dans des cellules j'ai le nom (modifié) des documents de la forme :

*ref*01*nom*

et j'aimerai rechercher le "contenu" de cette cellule sur mon ordinateur (plus présisément sur un dossier bien spécifique)

je pense que ceci n'est réalisable que par une macro en VBA et comme je ne sais pas programmer... j'ai besoin de votre aide !

j'ai essayer de rechercher des info sur internet, mais je n'ai rien trouvé,merci de m'aider
 
Dernière édition:
Re : recherche du contenu d'une cellule dans l'explorateur windows

Bonjour Bravojr

Dans un premier temps: avec l'explorateur Windows (F3 = fonction recherche) tu peux rechercher un texte dans un dossier (il faut modifier les préférences avec recherche avancée).
 
Re : recherche du contenu d'une cellule dans l'explorateur windows

merci de ta réponse mais je connait déjà la recherche avancé...

j'ai trouvé ce que je rechercher,.... donc voici le code VBA de la macro

Code:
Sub Rechercher_et_Ouvrir_Fichier_correspondant_selection()

With Application.FileSearch 'appel de l'aplication de recherche de fichier
.NewSearch
.LookIn = "C:\WINDOWS\Bureau\Nouveau dossier" 'dossier de recherche des fichier
.SearchSubFolders = False 'recherche dans les sous dossier true false
.Filename = Selection.Offset(0, -1) & Selection & "*" 'nom du fichier ici le nom du fichier est composé de "la cellule à gauche de la cellule sélectionnée" ET de la "cellule sélectionnée" ET du caractère générique "*"


If .Execute(SortBy:=msoSortByLastModified, SortOrder:=msoSortOrderDescending) = 0 Then 'présentation d'une boite de message si la recherche ne retourne pas de résultat
MsgBox "pas de fichier correspondant à " & Selection.Offset(0, -1) & Selection & "*"
End If

If .Execute(SortBy:=msoSortByLastModified, SortOrder:=msoSortOrderDescending) > 0 Then 'si la recherche retourne des résultats
For i1 = 1 To .FoundFiles.Count 'de 1 au nombre de fichier trouvés
Workbooks.Open (.FoundFiles(i1)) 'ouverture des fichier trouvés
Next i1
End If

End With
End Sub

exemple
A1---------------B1
test--------------2

En prenant en compte que la cellule sélectionnée est B1 :

la macro cherchera le fichier nomer "test2*" (A1&B1&*) dans le dossier "C:\WINDOWS\Bureau\Nouveau dossier"

si il n'y a pas de fichier correspondant à "test2*" il y aurra un message d'erreur

Si au contraire il y a un ou plusieurs résultats (à cause du caractère générique "*") les différents fichiers seront ouvert.

voilà j'espère que c'est assez clair

PS : ce code est adapté du code proposé sur VBA Tips & Tricks: Search and Open Files using Excel VBA (FileSearch)
 
Dernière édition:
Re : recherche du contenu d'une cellule dans l'explorateur windows [résolu]

Code:
Sub Rechercher_et_Ouvrir_Fichier_correspondant_selection()
    Dim ref As Integer 'défini "ref" comme nombre
    ref = 2 - ActiveCell.Column 'permet le choix de la colone de l'offset. exemple colone B = 2 (numéro colone de la cellule active - 2)

With Application.FileSearch 'appel de l'aplication de recherche de fichier
    .NewSearch
    .LookIn = "C:\WINDOWS\Bureau\Documentation\" 'dossier de recherche des fichier
    .SearchSubFolders = True 'recherche dans les sous dossier true false
    .Filename = ActiveCell.Text & Selection.Offset(0, ref) & ".*" 'nom du fichier
        'ICI :le nom du fichier est le texte de la cellule active
        '+ le contenu de la cellule de la meme ligne mais de la colone b

    If .Execute(SortBy:=msoSortByLastModified, SortOrder:=msoSortOrderDescending) = 0 Then 'présentation d'une boite de message si la recherche ne retourne pas de résultat
    MsgBox "pas de fichier correspondant à " & ActiveCell.Text & Selection.Offset(0, ref) & ".*"
    End If

    If .Execute(SortBy:=msoSortByLastModified, SortOrder:=msoSortOrderDescending) > 0 Then 'si la recherche retourne des résultats
    For i1 = 1 To .FoundFiles.Count 'recherche de tous les fichiers correspondant aux critères
    Shell "explorer.exe " & (.FoundFiles(i1)) 'ouverture des fichier trouvés quelque soit le type de fichier
    Next i1
    End If

End With
End Sub

voici un code un peu plus abouti qui permet d'ouvrir tous les fichier quelque soit son type.
 
Re : recherche du contenu d'une cellule dans l'explorateur windows

Bonjour bravojr

Désolé, je pensais que tu voulais cherché du contenu dans des fichiers.

Merci pour ton code, je le testerai plus tard (je risque d'en avoir besoin bientôt).
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 Pb avec Windows
Réponses
47
Affichages
3 K
Retour