Probleme avec un code VBA - modification de texte dans plusieurs fichiers

pouping

XLDnaute Nouveau
Bonjour à tous,

Je cherche à faire fonctionner le fichier joint afin de remplacer une chaine de caractère dans plusieurs fichiers Excel à la fois.
Malheureusement il me met une erreur que je ne comprends pas !

Pouvez vous m'aider ?
 

Pièces jointes

  • CheckExcelFiles.xls
    38.5 KB · Affichages: 33

tototiti2008

XLDnaute Barbatruc
Re : Probleme avec un code VBA - modification de texte dans plusieurs fichiers

Bonjour pouping,

essaye peut-être de remplacer

Code:
Application.Run "CheckExcelFiles!Liste"

par

Code:
Call Liste

Edit : Oups, j'avais pas vu que tu étais en Excel 2007
à partir des versions 2007 d'Office, la méthode filesearch pour rechercher des fichiers n'existe plus
tu as besoin de chercher aussi dans les fichiers des sous-dossiers ?
Comme tu parcours tous les fichiers, il me semble un peu bizarre que tu ne parcours pas toutes les feuilles des fichiers concernés
Est-ce normal ?
 
Dernière édition:

pouping

XLDnaute Nouveau
Re : Probleme avec un code VBA - modification de texte dans plusieurs fichiers

Bonjour et merci de ta réponse .

Je ne recherche pas dans les sous dossiers uniquement dans les fichiers d'un répertoire.

Et effectivement il faudrait que je puisse rechercher dans toutes les feuilles des fichiers.
 

tototiti2008

XLDnaute Barbatruc
Re : Probleme avec un code VBA - modification de texte dans plusieurs fichiers

Re,

Peut-être un truc comme ça

Code:
Sub Liste()
    Dim strMessage  As String
    Dim i           As Long
    Dim fic         As String
    Dim Wkb         As Workbook
    Dim ws          As Worksheet
    Dim nbfic       As Long
    Dim monchemin   As String
    Dim achanger    As String
    Dim par         As String
        monchemin = [Feuil1!B3]
        If Right(monchemin, 1) <> "\" Then monchemin = monchemin & "\"
        achanger = [Feuil1!B5]
        par = [Feuil1!B7]

        fic = Dir(monchemin & "*.xls")
        nbfic = 0
        Do Until fic = ""
            Set Wkb = Workbooks.Open(Filename:=monchemin & fic)
            For Each ws In Wkb.Worksheets
                ws.Cells.Replace What:=achanger, Replacement:=par, LookAt:=xlPart _
                    , SearchOrder:=xlByRows, MatchCase:=False
            Next ws
            Wkb.Close True
            fic = Dir
            nbfic = nbfic + 1
        Loop
        If nbfic = 0 Then
            MsgBox "Il n'y a aucun fichier."
        Else
            MsgBox "Il y a " & nbfic & _
                " fichier(s) trouvé(s)."
        End If

End Sub
 

Discussions similaires

Réponses
1
Affichages
134

Statistiques des forums

Discussions
312 387
Messages
2 087 858
Membres
103 671
dernier inscrit
rachid1983