Remplacer un mot dans des fichiers excels sans les ouvrir

cs_grab Messages postés 2 Date d'inscription mercredi 18 septembre 2002 Statut Membre Dernière intervention 18 septembre 2002 - 18 sept. 2002 à 11:15
cs_grab Messages postés 2 Date d'inscription mercredi 18 septembre 2002 Statut Membre Dernière intervention 18 septembre 2002 - 18 sept. 2002 à 16:06
est-t-il possible de rechercher un mot dans plusieurs fichiers excel d'un dossier, sans les ouvrir
et ensuite de remplacer ce mot par un autre, puis de sauvegarder le fichier modifié??

merci

2 réponses

cs_imer Messages postés 59 Date d'inscription vendredi 26 juillet 2002 Statut Membre Dernière intervention 29 janvier 2004
18 sept. 2002 à 14:40
Oui:
'Pour le parcours de répertoires cf exemple de la fonction Dir dans MSDN

'Voici une fonction pour traiter un fichier:
'cocher Microsoft Excel X.X Object Library dans le menu Outils/Références...

Private Sub RemplacerMot (FichierSource As String, FichierCible As String, MotSource As String, MotCible As String)
'FichierSource est le chemin du fichier excel source
'FichierCible est le chemin du fichier excel cible
'MotSource est le mot à remplacer
'MotCible est le nouveau mot

'S'il y a plusieurs fichiers à traiter, pour éviter de ouvrir et refermer excel à chaque fois, il faut déclarer l'objet XlApp au niveau module et faire l'ouverture et la fermeture de XlApp en début et fin de lecture de répertoire

Dim XlApp As Excel.Application
Dim XlFeuille As Excel.WorkSheet

'Création de l'application excel
Set XlApp = New Excel.Application

'Ouverture du fichier source
XlApp.WorkBooks.Open FichierSource

'Parcours de toutes les feuilles du classeur
For Each XlFeuille in XlApp.WorkBooks(1).WorkSheets

'Remplacement du mot (mettre xlPart à la place de xlWhole si tu veux remplacer les mots qui sont uniques dans la cellule)
Cells.Replace What:=MotSource, Replacement:=MotCible, LookAt:=xlWhole, SearchOrder:=xlByRows, MatchCase:=False

Next XlFeuille

'Suppression de la cible si elle existe
If Dir(FichierCible)<>"" Then
Kill FichierCible
End If

'Sauvegarde du fichier
XlApp.WorkBooks(1).SaveAs FichierCible

'Fermeture du classeur de l'appli
XlApp.WorkBooks(1).Close
XlApp.Quit
Set XlApp = Nothing

End Sub
0
cs_grab Messages postés 2 Date d'inscription mercredi 18 septembre 2002 Statut Membre Dernière intervention 18 septembre 2002
18 sept. 2002 à 16:06
merci, je vais voir si je m'en sors avec ca.
0
Rejoignez-nous