équivalent à FileSearch pour excel 2010

filesearch -  
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   -
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

 
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

michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
0
filesearch
 
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

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
        
0
paz59 Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
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
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314 > paz59 Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
info déjà donnée post1... 29/7/14
0