Bonjour à tous.

J'ai trouvé un code qui m'intéresse beaucoup. (Voir en fin de post pour l'exemple.)
Cependant la fonction .filesearch n'est plus disponible dans excel 2007.

La réponse est peut-être déjà sur le forum mais quelque soit les mots clef rentrés, je ne trouve rien.
Les seuls exemples que je trouve sont des " listage" de fichiers présents dans un répertoire.
( http://silkyroad.developpez.com/vba/classefilesearch/)


Y a-t-il une possibilité d'ouvrir directement le fichier ?

Sachant que la version d'excel est installée sur un serveur d'entreprise en multi-licence et que les droits administrateur sont verrouillés. Donc impossibilité de rajouter le fichier ClasseFileSearch.xla dans le dossier Addins.

Dans le même répertoire, il y a environ 700 fichiers du même type.
1 code alphanumérique à 5 chiffres - Nom client.xls

03252 - Machin.xls etc...


Plutôt que de perdre du temps à ouvrir le répertoire et à chercher (La manipulation peut être faite jusqu'à 80 fois voire plus par jour), je souhaiterais juste taper le code client dans la fenêtre de dialogue et valider pour ouvrir.

Est-ce définitivement infaisable dans Excel 2007 ?

Merci d'avance pour vos réponses.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Sub test()
Dim nom As String 'déclare la variable nom
dim noncomplet as string 'déclare la variable nomcomplet
Dim chem As String 'déclare la variable chem
nom = InputBox("Nom du classeur") 'définit la variable nom (début du nom du fichier)
chem = ActiveWorkbook.Path 'définit la variable chem (chemin d'accès du classeur actuel, à adapter)
With Application.FileSearch 'recherche de fichier
.LookIn = chem 'dans le même répertoire que le fichier actuel
.SearchSubFolders = True 'dans les sous-répertoires
.Filename = nom & "*.xls" 'tous les fichiers Excel commençant par le nom de la boite
If .Execute > 0 Then 'si au moins un fichier est trouvé
nomcomplet = .FoundFiles(1) 'définit le nom complet du fichier trouvé
Workbooks.Open (nomcomplet) 'ouvre le fichier
End If
End With
End Sub