Bonjour,
Je transferre des macros VBA depuis Excel 2003 vers 2007. Globalement le
résultat est concluant, mis à part certaines applications telles que
File.search qui permet de remonter un fichier depuis un sous-répertoire en
fonction des premières lettres de son nom.
Exemple de code sous 2003 :
******************************************
'Lance une recherche de Tous les fichiers nommé PIC dans le repertoire des
Programmes
With Application.FileSearch
.NewSearch
.LookIn = vp_Chemin_PIC 'va chercher dans le répertoire et
sous répertoire de programme du Chemin
.SearchSubFolders = True 'permet de chercher dans les sous
répertoire
.Filename = "PIC_" 'le nom du fichier a chercher
.MatchTextExactly = True 'cherche les fichiers dont le corps
de texte ou les propriétés contiennent exactement le mot spécifié.
.FileType = msoFileTypeExcelWorkbooks 'Recherche que les fichiers
.xls
.Execute
If .Execute() = 0 Then
MsgBox "Attention, il n'y a aucun fihier PIC trouvé"
Exit Sub
End If
End With
******************************************
Nous avons trouvé sous 2007 un substitu de fonction qui s'appelle
ClFileSearch.xlam
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
isabelle
bonjour Jean-Noel,
FileSearch n'est plus disponible pour Office2007. suis ce lien pour plus d'info http://silkyroad.developpez.com/vba/classefilesearch/
isabelle
Le 2010-07-21 09:55, Jean-Noel Robert a écrit :
Bonjour, Je transferre des macros VBA depuis Excel 2003 vers 2007. Globalement le résultat est concluant, mis à part certaines applications telles que File.search qui permet de remonter un fichier depuis un sous-répertoire en fonction des premières lettres de son nom.
Jean-Noël
bonjour Jean-Noel,
FileSearch n'est plus disponible pour Office2007.
suis ce lien pour plus d'info
http://silkyroad.developpez.com/vba/classefilesearch/
isabelle
Le 2010-07-21 09:55, Jean-Noel Robert a écrit :
Bonjour,
Je transferre des macros VBA depuis Excel 2003 vers 2007. Globalement le
résultat est concluant, mis à part certaines applications telles que
File.search qui permet de remonter un fichier depuis un sous-répertoire en
fonction des premières lettres de son nom.
FileSearch n'est plus disponible pour Office2007. suis ce lien pour plus d'info http://silkyroad.developpez.com/vba/classefilesearch/
isabelle
Le 2010-07-21 09:55, Jean-Noel Robert a écrit :
Bonjour, Je transferre des macros VBA depuis Excel 2003 vers 2007. Globalement le résultat est concluant, mis à part certaines applications telles que File.search qui permet de remonter un fichier depuis un sous-répertoire en fonction des premières lettres de son nom.
Jean-Noël
DanielCo
Bonjour. Il y a des addins sur internet qui remplacent cette méthode plus ou moins fiable. Sinon, voici un exemple de code pour trouver et lister sur la feuille active tous les fichiers xlsx dans un dossier et tous les sous-dossiers dépendants :
Public Ctr As Long, f As Object, d As Object Sub test() Dim DossierRacine As String, FSO As Object, Dossier As Object Application.ScreenUpdating = False DossierRacine = "d:donneesdaniel" 'Dossier ou se fait la recherche Set FSO = CreateObject("Scripting.FileSystemObject") Set Dossier = FSO.getfolder(DossierRacine) ChercheDossier Dossier Application.ScreenUpdating = True End Sub Sub ChercheDossier(Dossier) For Each f In Dossier.Files If LCase(Right(f, 4)) = "xlsx" Then Ctr = Ctr + 1 Cells(Ctr, 1) = f.Path End If Next For Each d In Dossier.subfolders ChercheDossier d Next d End Sub
Cordialement. Daniel
Bonjour.
Il y a des addins sur internet qui remplacent cette méthode plus ou
moins fiable. Sinon, voici un exemple de code pour trouver et lister
sur la feuille active tous les fichiers xlsx dans un dossier et tous
les sous-dossiers dépendants :
Public Ctr As Long, f As Object, d As Object
Sub test()
Dim DossierRacine As String, FSO As Object, Dossier As Object
Application.ScreenUpdating = False
DossierRacine = "d:donneesdaniel" 'Dossier ou se fait la recherche
Set FSO = CreateObject("Scripting.FileSystemObject")
Set Dossier = FSO.getfolder(DossierRacine)
ChercheDossier Dossier
Application.ScreenUpdating = True
End Sub
Sub ChercheDossier(Dossier)
For Each f In Dossier.Files
If LCase(Right(f, 4)) = "xlsx" Then
Ctr = Ctr + 1
Cells(Ctr, 1) = f.Path
End If
Next
For Each d In Dossier.subfolders
ChercheDossier d
Next d
End Sub
Bonjour. Il y a des addins sur internet qui remplacent cette méthode plus ou moins fiable. Sinon, voici un exemple de code pour trouver et lister sur la feuille active tous les fichiers xlsx dans un dossier et tous les sous-dossiers dépendants :
Public Ctr As Long, f As Object, d As Object Sub test() Dim DossierRacine As String, FSO As Object, Dossier As Object Application.ScreenUpdating = False DossierRacine = "d:donneesdaniel" 'Dossier ou se fait la recherche Set FSO = CreateObject("Scripting.FileSystemObject") Set Dossier = FSO.getfolder(DossierRacine) ChercheDossier Dossier Application.ScreenUpdating = True End Sub Sub ChercheDossier(Dossier) For Each f In Dossier.Files If LCase(Right(f, 4)) = "xlsx" Then Ctr = Ctr + 1 Cells(Ctr, 1) = f.Path End If Next For Each d In Dossier.subfolders ChercheDossier d Next d End Sub