David si chiede se sia possibile utilizzare Trova e sostituisci per individuare e modificare il testo nelle caselle di testo o nelle etichette nei grafici. La risposta breve è che non è possibile, ma ci sono diverse soluzioni alternative che puoi provare.

Innanzitutto, puoi facilmente rendere dinamico il testo nelle caselle di testo o nelle etichette del grafico, in modo che sia legato al contenuto di alcune celle del foglio di lavoro. Ad esempio, potresti fare quanto segue per le tue caselle di testo:

  1. Copia il testo da ciascuna delle caselle di testo a un intervallo di celle nel foglio di lavoro. (Per questo esempio, supponi di aver copiato il contenuto di dieci caselle di testo nell’intervallo Z1: Z10.)

  2. Seleziona la prima casella di testo (quella che corrisponde alla cella Z1) e elimina il contenuto della casella di testo.

  3. Con la casella di testo ancora selezionata, immettere quanto segue nella barra della formula: = Z1. Quando premi Invio, la casella di testo dovrebbe riflettere tutto ciò che è nella cella Z1.

  4. Ripetere i passaggi 2 e 3 per ciascuna delle altre caselle di testo, utilizzando il riferimento di cella appropriato per ciascuna al passaggio 3.

Questo è tutto. Puoi utilizzare la stessa tecnica con le etichette del grafico personalizzate: tutto ciò che devi fare è selezionare l’etichetta del grafico e inserire un riferimento di cella nella barra della formula. Con le caselle di testo e le etichette del grafico legate alle celle del foglio di lavoro, puoi facilmente usare Trova e sostituisci per cercare e modificare le informazioni nelle celle. Quando vengono apportate le modifiche, le caselle di testo e le etichette del grafico dovrebbero riflettere automaticamente le modifiche nelle celle.

L’unico modo per modificare effettivamente il testo all’interno di una casella di testo o di un’etichetta del grafico è modificarlo manualmente o modificarlo utilizzando una macro. Il codice dovrà scorrere ogni casella di testo nel foglio di lavoro e quindi apportare la modifica. Quella che segue è una versione semplice di una macro che può apportare tale modifica.

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

Questa macro passa attraverso tutte le forme nel foglio di lavoro (le caselle di testo sono forme) e quindi sostituisce tutto ciò che è nella variabile sOld con ciò che è nella variabile sNew. Applicare la stessa tecnica alle etichette del grafico è solo un po ‘più complesso, come mostrato nella seguente macro:

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 passa attraverso ogni etichetta di dati per ogni serie di dati su ogni grafico e (ancora) sostituisce qualsiasi istanza di ciò che è in sOld con ciò che è in nuovo.

_Nota: _

Se desideri sapere come utilizzare le macro descritte in questa pagina (o in qualsiasi altra pagina dei siti ExcelTips), ho preparato una pagina speciale che include informazioni utili.

ExcelTips è la tua fonte di formazione economica su Microsoft Excel.

Questo suggerimento (9264) si applica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 ed Excel in Office 365. Puoi trovare una versione di questo suggerimento per l’interfaccia di menu precedente di Excel qui: