Remplacer un mot dans des fichiers excels sans les ouvrir
cs_grab
Messages postés2Date d'inscriptionmercredi 18 septembre 2002StatutMembreDernière intervention18 septembre 2002
-
18 sept. 2002 à 11:15
cs_grab
Messages postés2Date d'inscriptionmercredi 18 septembre 2002StatutMembreDernière intervention18 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é??
cs_imer
Messages postés59Date d'inscriptionvendredi 26 juillet 2002StatutMembreDernière intervention29 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