David se pregunta si es posible usar Buscar y reemplazar para ubicar y modificar texto en cuadros de texto o en etiquetas en gráficos. La respuesta corta es que no es posible, pero hay varias soluciones que puede probar.

Primero, puede hacer que el texto en sus cuadros de texto o en las etiquetas de su gráfico sea dinámico, de manera que esté vinculado al contenido de algunas celdas de la hoja de trabajo. Por ejemplo, puede hacer lo siguiente para sus cuadros de texto:

  1. Copie su texto de cada uno de los cuadros de texto a un rango de celdas en su hoja de trabajo. (Para este ejemplo, suponga que ha copiado el contenido de diez cuadros de texto en el rango Z1: Z10.)

  2. Seleccione el primer cuadro de texto (el que corresponde a la celda Z1) y elimine el contenido del cuadro de texto.

  3. Con el cuadro de texto aún seleccionado, ingrese lo siguiente en la barra de fórmulas: = Z1. Cuando presiona Entrar, el cuadro de texto debe reflejar lo que esté en la celda Z1.

  4. Repita los pasos 2 y 3 para cada uno de sus otros cuadros de texto, usando la referencia de celda apropiada para cada uno en el paso 3.

Eso es. Puede utilizar la misma técnica con etiquetas de gráfico personalizadas; todo lo que necesita hacer es seleccionar la etiqueta del gráfico e ingresar una referencia de celda en la barra de fórmulas. Con los cuadros de texto y las etiquetas de los gráficos vinculados a las celdas de la hoja de trabajo, puede usar Buscar y reemplazar fácilmente para buscar y cambiar información en las celdas. Cuando se realizan los cambios, los cuadros de texto y las etiquetas del gráfico deberían reflejar automáticamente los cambios en las celdas.

La única forma de cambiar realmente el texto dentro de un cuadro de texto o etiqueta de gráfico es cambiarlo manualmente o cambiarlo con una macro. El código necesitaría recorrer cada cuadro de texto en la hoja de trabajo y luego realizar el cambio. La siguiente es una versión simple de una macro que puede hacer tal cambio.

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

Esta macro recorre todas las formas de la hoja de trabajo (los cuadros de texto son formas) y luego reemplaza lo que esté en la variable sOld con lo que esté en la variable sNew. Aplicar la misma técnica a las etiquetas de gráficos es solo un poco más complejo, como se muestra en la siguiente 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 recorre cada etiqueta de datos para cada serie de datos en cada gráfico y (nuevamente) reemplaza cualquier instancia de lo que esté en sOld con lo que esté en sNew.

_Nota: _

Si desea saber cómo usar las macros descritas en esta página (o en cualquier otra página de los sitios ExcelTips), he preparado una página especial que incluye información útil.

link: / excelribbon-ExcelTipsMacros [Haga clic aquí para abrir esa página especial en una nueva pestaña del navegador].

ExcelTips es su fuente de formación rentable en Microsoft Excel.

Este consejo (9262) se aplica a Microsoft Excel 97, 2000, 2002 y 2003. Puede encontrar una versión de este consejo para la interfaz de cinta de Excel (Excel 2007 y posterior) aquí:

link: / excelribbon-Finding_and_Replacing_in_Text_Boxes [Encontrar y reemplazar en cuadros de texto].