David se demande s’il est possible d’utiliser Rechercher et remplacer pour localiser et modifier du texte dans des zones de texte ou dans des étiquettes dans des graphiques. La réponse courte est que ce n’est pas possible, mais il existe plusieurs solutions de contournement que vous pouvez essayer.

Tout d’abord, vous pouvez facilement rendre le texte de vos zones de texte ou de vos étiquettes de graphique dynamique, de sorte qu’il soit lié au contenu de certaines cellules de feuille de calcul. Par exemple, vous pouvez effectuer les opérations suivantes pour vos zones de texte:

  1. Copiez votre texte de chacune des zones de texte dans une plage de cellules de votre feuille de calcul. (Pour cet exemple, supposons que vous ayez copié le contenu de dix zones de texte dans la plage Z1: Z10.)

  2. Sélectionnez la première zone de texte (celle qui correspond à la cellule Z1) et supprimez le contenu de la zone de texte.

  3. Avec la zone de texte toujours sélectionnée, entrez ce qui suit dans la barre de formule: = Z1. Lorsque vous appuyez sur Entrée, la zone de texte doit refléter ce qui se trouve dans la cellule Z1.

  4. Répétez les étapes 2 et 3 pour chacune de vos autres zones de texte, en utilisant la référence de cellule appropriée pour chacune à l’étape 3.

C’est ça. Vous pouvez utiliser la même technique avec les étiquettes de graphique personnalisées. Il vous suffit de sélectionner l’étiquette de graphique et de saisir une référence de cellule dans la barre de formule. Les zones de texte et les étiquettes de graphique étant liées aux cellules de la feuille de calcul, vous pouvez facilement utiliser Rechercher et remplacer pour rechercher et modifier des informations dans les cellules. Lorsque les modifications sont apportées, les zones de texte et les étiquettes de graphique doivent automatiquement refléter les modifications dans les cellules.

La seule façon de modifier réellement le texte dans une zone de texte ou une étiquette de graphique consiste à le modifier manuellement ou à le modifier à l’aide d’une macro. Le code doit parcourir chaque zone de texte de la feuille de calcul, puis effectuer votre modification. Ce qui suit est une version simple d’une macro qui peut apporter une telle modification.

Sub TextBoxReplace()

Dim shp As Shape     Dim sOld As String     Dim sNew As String

'Change as desired     sOld = "Old string"

sNew = "New string"

On Error Resume Next     For Each shp In ActiveSheet.Shapes         With shp.TextFrame.Characters             .Text = Application.WorksheetFunction.Substitute( _               .Text, sOld, sNew)

End With     Next End Sub

Cette macro parcourt toutes les formes de la feuille de calcul (les zones de texte sont des formes), puis remplace tout ce qui se trouve dans la variable sOld par ce qui se trouve dans la variable sNew. L’application de la même technique aux étiquettes des graphiques n’est qu’un peu plus complexe, comme le montre la macro suivante:

Sub ChartLabelReplace()

Dim Cht As ChartObject     Dim Ser As Series     Dim scPt As Point     Dim sOld As String     Dim sNew As String

'Change as desired     sOld = "Old String"

sNew = "New String"

On Error Resume Next     For Each Cht In ActiveSheet.ChartObjects         For Each Ser In Cht.Chart.SeriesCollection             For Each scPt In Ser.Points                 With scPt.DataLabel                     .Text = Application.WorksheetFunction.Substitute( _                       .Text, sOld, sNew)

End With             Next         Next     Next End Sub

La macro parcourt chaque étiquette de données pour chaque série de données sur chaque graphique et remplace (à nouveau) toutes les instances de ce qui se trouve dans sOld par ce qui se trouve dans sNew.

_Note: _

Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites ExcelTips), j’ai préparé une page spéciale qui comprend des informations utiles.

lien: / excelribbon-ExcelTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur].

ExcelTips est votre source pour une formation Microsoft Excel rentable.

Cette astuce (9264) s’applique à Microsoft Excel 2007, 2010, 2013, 2016, 2019 et Excel dans Office 365. Vous pouvez trouver une version de cette astuce pour l’ancienne interface de menu d’Excel ici:

link: / excel-Finding_and_Replacing_in_Text_Boxes [Recherche et remplacement dans les zones de texte].