[Résolu] Disfonctionnement Application.filesearch

Grandchefus

XLDnaute Nouveau
Bonjour,

Pour des besoin de traitement global, un ami m'avait réalisé la macro ci-dessous sous une ancienne version d'excel.
Son but est simple : je déclare un dossier, un type de fichier, et la macro ouvrait un à un l'ensemble des fichiers présents dans ce dossiers (par exemple, des .DBF) et les enregistrait en .xls

Depuis passage en Excel 2010, la fonction Application.Filesearch est déclarée non reconnue.
1) Existe-t-il une alternative ?
2) Sachant que je ne suis pas 'programmeur VB' à la base, la mise en oeuvre de cette alternative (si elle existe) est elle complexe ou facilement accessible ?

J'ai bien évidemment exploré un peu le forum, et fait des 'tests' avec des info glanées à droite à gauche sur ce forum, mais sans résultat (surement lié à mon inexpérience en programmation).

Merci d'avance.


Sub Outil_Converstion()

Application.ScreenUpdating = True

Application.DisplayAlerts = True

'LA on conditionne l'ouverture du DIR.
SearchDir = InputBox("Chemin d'accès des fichiers")
FileExt = InputBox("Quel type de fichiers (*.dbf - *.txt) ?")
SaveDir = InputBox("Chemin cible sans le \ à la fin")
SearchSubs = MsgBox(prompt:="Inclure les sous-dossiers ?", Buttons:=vbYesNo)

'Initializes the search.
With Application.FileSearch
.NewSearch
.LookIn = SearchDir

'Determines whether to search subdirectories.
If SearchSubs = 6 Then
.SearchSubFolders = True
Else
.SearchSubFolders = False
End If

'Determines file type to convert.
.Filename = FileExt
.MatchTextExactly = True

'Si la recherche est fructueuse on compte les fichiers traités
If .Execute > 0 Then
counter = 0
For i = 1 To .FoundFiles.Count
counter = counter + 1
Workbooks.Open Filename:=.FoundFiles(i)

'On enregistre au format Excel en utilisant le nom du fichier ouvert
ActiveWorkbook.SaveAs Filename:=SaveDir & "\" & _
Left(ActiveWorkbook.Name, Len(ActiveWorkbook.Name) - 4), _
FileFormat:=xlWorkbookNormal
ActiveWorkbook.Close savechanges:=False
Next i

'Récap des fichier traités
MsgBox prompt:=counter & "Fichier(s) convertis"
ElseIf .Execute = 0 Then
MsgBox "Pas de fichiers a traiter"
End If

End With
End Sub




[Edit] - Passage en Résolu.
 
Dernière édition:

Grandchefus

XLDnaute Nouveau
Re : Disfonctionnement Application.filesearch

Bonjour,

J'ai effectivement croisé cette page dans mes recherches.
Le premier lien indiqué dans un des post est pour Excel, 2007 - Donc Hors sujet pour mon cas.
J'ai donc tenté avec une partie du code indiqué par Pierrejean, mais sans trop savoir si c'était ma solution, et surtout sans savoir ou l'insérer dans mon code. J'ai donc fait plusieurs tests... à m'en énerver sur la souris, mais je suis chaque fois envoyer en déboguage !

Edit : Je suis également tombé sur les forums MS qui évoque FileSystemObject, mais sans réussir à le mettre en oeuvre.
 

Misange

XLDnaute Barbatruc
Re : Disfonctionnement Application.filesearch

Bonjour

Si les liens indiqués ne te conviennent pas regarde ici
Ce lien n'existe plus
et un classeur à télécharger mettant la méthode en oeuvre ici
Ce lien n'existe plus

Ce qui vaut pour 2007 vaut également pour 2010 et suivantes.
 

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 899
Membres
101 834
dernier inscrit
Jeremy06510