Accéder au contenu principal

Comment rechercher et remplacer du texte tout en préservant le formatage dans Excel ?

Author: Sun Last Modified: 2025-05-27
A screenshot showing Excel cells with partial formatting changes after find and replace
A screenshot showing desired result where formatting is preserved in Excel cells
La fonction Rechercher et Remplacer est puissante et utile lorsque nous devons trouver une valeur spécifique et la remplacer par une autre. Cependant, s'il y a une plage de cellules et que certaines d'entre elles incluent des valeurs avec différents formats, utiliser la fonction Rechercher et Remplacer pour modifier les valeurs risque de briser le formatage des valeurs dans les cellules, comme le montre la capture d'écran ci-dessous. Alors, comment pouvons-nous préserver le formatage des valeurs dans chaque cellule tout en effectuant une recherche et un remplacement dans Excel ?

Rechercher et remplacer tout en préservant le formatage avec un code Macro

arrow blue right bubble Rechercher et remplacer tout en préservant le formatage avec un code Macro

Il n'y a pas d'autres méthodes disponibles à part le code macro qui puisse vous aider à rechercher et remplacer du texte tout en préservant le formatage.

1. Appuyez sur les touches Alt + F11 pour ouvrir la fenêtre Microsoft Visual Basic for Application.

2. Cliquez sur Insérer > Module, puis collez le code ci-dessous dans le script.

VBA : Rechercher et remplacer tout en préservant le formatage

Sub CharactersReplace(Rng As Range, FindText As String, ReplaceText As String, Optional MatchCase As Boolean = False)
  'UpdatebyExtendoffice20160711
    Dim I As Long
    Dim xLenFind As Long
    Dim xLenRep As Long
    Dim K As Long
    Dim xValue As String
    Dim M As Long
    Dim xCell As Range
    xLenFind = Len(FindText)
    xLenRep = Len(ReplaceText)
    If Not MatchCase Then M = 1
    For Each xCell In Rng
        If VarType(xCell) = vbString Then
            xValue = xCell.Value
            K = 0
            For I = 1 To Len(xValue)
              If StrComp(Mid$(xValue, I, xLenFind), FindText, M) = 0 Then
                xCell.Characters(I + K, xLenFind).Insert ReplaceText
                K = K + xLenRep - xLenFind
              End If
            Next
        End If
    Next
End Sub

Sub Test_CharactersReplace()
    Dim xRg As Range
    Dim xTxt As String
    Dim xCell As Range
    On Error Resume Next
    If ActiveWindow.RangeSelection.Count > 1 Then
      xTxt = ActiveWindow.RangeSelection.AddressLocal
    Else
      xTxt = ActiveSheet.UsedRange.AddressLocal
    End If
    Set xRg = Application.InputBox("Select a range:", "Kutools for Excel", xTxt, , , , , 8)
    If xRg Is Nothing Then Exit Sub
    Call CharactersReplace(xRg, "KK", "Kutools", True)
End Sub

A screenshot of the VBA module window with code to find and replace

Astuce : Dans le code, KK est la chaîne de caractères que vous souhaitez rechercher, et Kutools est la chaîne de caractères avec laquelle vous voulez la remplacer. Vous pouvez les modifier selon vos besoins.

3. Appuyez sur F5 une boîte de dialogue apparaît pour vous permettre de sélectionner une plage où effectuer la recherche et le remplacement, voir capture d'écran :
A screenshot showing the input box for selecting range

4. Cliquez sur OK, et la chaîne de caractères spécifique dans les cellules sélectionnées sera remplacée tout en conservant le formatage.
A screenshot of cells after find and replace, preserving formatting

Meilleurs outils de productivité pour Office

🤖 Kutools AI Aide : Révolutionner l'analyse des données basée sur : Exécution intelligente   |  Générer du code  |  Créer des formules personnalisées  |  Analyser les données et générer des graphiques  |  Invoquer les Fonctions améliorées
Fonctionnalités populaires : Trouver, mise en évidence ou marquer les doublons   |  Supprimer les lignes vides   |  Consolider les colonnes ou les cellules sans perdre de données   |   Arrondir sans formule ...
Super RECHERCHEV : RECHERCHEV avec critères multiples    RECHERCHEV avec valeurs multiples  |   Recherche multi-feuilles   |   Correspondance floue ....
Liste déroulante avancée : Créer rapidement une liste déroulante   |  Liste déroulante dépendante   |  Liste déroulante multi-sélection ....
Gestionnaire de colonnes : Ajouter un nombre spécifique de colonnes  |  Déplacer les colonnes  |  Basculer l'état de visibilité des colonnes masquées  |  Comparer les plages & colonnes ...
Fonctionnalités en vedette : Mise au point de la grille   |  Affichage de conception   |   Barre de formule améliorée    Gestionnaire de classeur & feuille de calcul   |  Bibliothèque dAutoTexte (Auto Text)   |  Sélecteur de date   |  Fusionner les données   |  Crypter/Déchiffrer les cellules    Envoyer un e-mail par liste   |  Super Filtre   |   Filtre spécial (filtrer les cellules avec une police en gras/italique/barré...) ...
Top15 ensembles d'outils12 outils de texte (Ajouter du texte, Supprimer des caractères spécifiques, ...)   |   50+ types de graphiques (Diagramme de Gantt, ...)   |   40+ formules pratiques (Calculer lâge en fonction de la date de naissance, ...)   |   19 outils d'insertion (Insérer un code QR, Insérer une image depuis le chemin, ...)   |  12 outils de conversion (Convertir en mots, Conversion de devises, ...)   |  7 outils de fusion & division (Fusion avancée des lignes, Diviser les cellules, ...)   |   ... et plus

Boostez vos compétences Excel avec Kutools pour Excel, et découvrez une efficacité sans précédent. Kutools pour Excel propose plus de300 fonctionnalités avancées pour augmenter la productivité et gagner du temps.  Cliquez ici pour obtenir la fonctionnalité dont vous avez le plus besoin...


Office Tab apporte une interface à onglets à Office, et facilite grandement votre travail

  • Activez la modification et la lecture par onglets dans Word, Excel, PowerPoint, Publisher, Access, Visio et Project.
  • Ouvrez et créez plusieurs documents dans de nouveaux onglets de la même fenêtre, plutôt que dans de nouvelles fenêtres.
  • Augmente votre productivité de50 %, et réduit des centaines de clics de souris pour vous chaque jour !