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 in un intervallo di celle del 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 si preme Invio, la casella di testo dovrebbe riflettere ciò che si trova 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 dovrebbe passare attraverso 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 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 (di nuovo) 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 (9262) si applica a Microsoft Excel 97, 2000, 2002 e 2003. Puoi trovare una versione di questo suggerimento per l’interfaccia a nastro di Excel (Excel 2007 e versioni successive) qui: