équivalent à FileSearch pour excel 2010
filesearch
-
michel_m Messages postés 18903 Statut Contributeur -
michel_m Messages postés 18903 Statut Contributeur -
Bonjour,
j'ai une macro excel (que je n'ai pas fait) qui ne marche plus , je me suis rendu compte que c'était à cause de l'objet filesearch qui ne marche pas sur excel 2010.
j'ai vu sur internet qu'il y avait une solution peut-être avec FilesSystemObject ?
Quelqu'un pourrait m'aider svp?
J'ai beaucoup de mal à coder
merci
PS: copie des fiches d'un dossier pour les inserer dans un autre dossiers
j'ai une macro excel (que je n'ai pas fait) qui ne marche plus , je me suis rendu compte que c'était à cause de l'objet filesearch qui ne marche pas sur excel 2010.
j'ai vu sur internet qu'il y avait une solution peut-être avec FilesSystemObject ?
Quelqu'un pourrait m'aider svp?
J'ai beaucoup de mal à coder
merci
With Application.FileSearch
.NewSearch
.LookIn = sDirSource
.SearchSubFolders = True
.FileName = "xls"
.MatchTextExactly = True
.Execute msoSortByFileName
For iligne = 1 To .FoundFiles.Count
sFileNameSource = .FoundFiles(iligne)
sFileNameCible = Replace(sFileNameSource, sSearchCar1, sSearchCar2)
sFileNameCible = Left(sFileNameCible, Len(sFileNameCible) - 4) & "_bis.xls"
'feuille1.Cells(iligne + 6, 1) = sFileNameSource
'feuille1.Cells(iligne + 6, 2) = sFileNameCible
If Dir(sFileNameCible) = "" Then
'Cas où il n'y pas de fiche resultat pour une fiche
feuille1.Cells(iligne + 6, 2) = Mid(sFileNameCible, InStrRev(sFileNameCible, sSearchCar2) + Len(sSearchCar2) + 1)
Else
'feuille1.Cells(iligne + 6, 1) = sFileNameSource
feuille1.Cells(iligne + 6, 1) = Mid(sFileNameSource, InStrRev(sFileNameSource, sSearchCar1) + Len(sSearchCar1) + 1)
'Application.StatusBar = " FIchier " & iligne & " " & sFileNameCible
End If ' fin du test sur l'existence du fichier
Next iligne ' Fichier suivant
End With
PS: copie des fiches d'un dossier pour les inserer dans un autre dossiers
2 réponses
Bonjour,
j'ai essayé comme vous me l'avait conseillé le lien, mais peut être que je m'y prend mal.
parce qu'il m'affiche "erreur de compilation type d'argument byRef imcompatible" et me surligne iligne (celui que j'ai mis entre les balises gras)
voici le code que j'ai adapté
pourriez vous m'aider svp?
merci
j'ai essayé comme vous me l'avait conseillé le lien, mais peut être que je m'y prend mal.
parce qu'il m'affiche "erreur de compilation type d'argument byRef imcompatible" et me surligne iligne (celui que j'ai mis entre les balises gras)
voici le code que j'ai adapté
pourriez vous m'aider svp?
merci
Dim Recherche As ClFileSearch.ClasseFileSearch
Dim Recherche As ClFileSearch.ClasseFileSearch
Set Recherche = ClFileSearch.Nouvelle_Recherche
With Recherche
'Définit le répertoire de recherche
.FolderPath = "sDirSource"
'Définit la recherche dans les sous dossiers ( / False)
.SubFolders = True
'Option de tri:
'(Sort_None, sort_Name, sort_Path, sort_Size, sort_DateCreated, sort_LastModified, sort_Type)
'Pas de tri si le paramètre n'est pas spécifié.
.SortBy = sort_Name
'Option pour rechercher un type de fichier
'(Renvoie tous les fichiers si non spécifié)
.Extension = "*.xls"
'Execute la recherche
.Execute
For iligne = 1 To .FoundFilesCount
sFileNameSource = .Files(<gras>iligne</gras>)
sFileNameCible = Replace(sFileNameSource, sSearchCar1, sSearchCar2)
sFileNameCible = Left(sFileNameCible, Len(sFileNameCible) - 4) & "_bis.xls"
'feuille1.Cells(iligne + 6, 1) = sFileNameSource
'feuille1.Cells(iligne + 6, 2) = sFileNameCible
If Dir(sFileNameCible) = "" Then
'Cas où il n'y pas de fiche resultat pour une fiche reflexe
feuille1.Cells(iligne + 6, 2) = Mid(sFileNameCible, InStrRev(sFileNameCible, sSearchCar2) + Len(sSearchCar2) + 1)
Else
'feuille1.Cells(iligne + 6, 1) = sFileNameSource
feuille1.Cells(iligne + 6, 1) = Mid(sFileNameSource, InStrRev(sFileNameSource, sSearchCar1) + Len(sSearchCar1) + 1)
'Application.StatusBar = " FIchier " & iligne & " " & sFileNameCible
End If ' fin du test sur l'existence du fichier
Next iligne ' Fichier suivant
End With
comme toi je suis bloqué, je suis sur 2010 et normalement il y a dans outils/références une références 'ClFileSearch' si elle n'existe pas tu dois la télécharger.
Toute l'info ici : https://silkyroad.developpez.com/vba/classefilesearch/#LVI
Toute l'info ici : https://silkyroad.developpez.com/vba/classefilesearch/#LVI