Reemplazo en hojas de trabajo y comentarios al mismo tiempo (Microsoft Excel)
Los estudiantes de Dorothy están personalizando un libro de trabajo de simulación de chequera, reemplazando el nombre predeterminado por el suyo. Por ejemplo, quiere que busquen «Jason Anderson» y reemplacen el nombre por «Sue Smith».
Hay 22 apariciones de «Jason Anderson» en los cuadros de texto de las ocho pestañas de la hoja de trabajo, y varias más en las hojas de trabajo.
Dorothy se pregunta cómo puede buscar y reemplazar todas las ocurrencias de la hoja de trabajo y todas las ocurrencias de comentarios a la vez.
No hay forma de hacer esto sin usar una macro. La macro debería revisar cada celda del libro de trabajo, cada comentario y cada cuadro de texto para ver si es necesario realizar cambios. El siguiente es un ejemplo de cómo se puede hacer esto:
Sub ReplaceNames() Dim sDefaultName As String Dim sNewName As String Dim sht As Worksheet Dim cmt As Comment Dim wks As Worksheet Dim sCmt As String Dim shp As Shape sDefaultName = "Jason Anderson" sNewName = InputBox("Enter your first and last name.", _ "Name Replacement") ' Replace cell text For Each sht In ActiveWorkbook.Worksheets sht.Cells.Replace what:=sDefaultName, _ Replacement:=sNewName, LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, _ SearchFormat:=False, ReplaceFormat:=False Next sht ' Replace comment text For Each wks In ActiveWorkbook.Worksheets For Each cmt In wks.Comments sCmt = cmt.Text If InStr(sCmt, sDefaultName) <> 0 Then sCmt = Application.WorksheetFunction. _ Substitute(sCmt, sDefaultName, sNewName) cmt.Text Text:=sCmt End If Next cmt Next wks Set wks = Nothing Set cmt = Nothing ' Replace text box text On Error Resume Next For Each wks In ActiveSheet.Parent.Worksheets For Each shp In wks.Shapes With shp.TextFrame.Characters .Text = Application.WorksheetFunction.Substitute( _ .Text, sDefaultName, sNewName) End With Next shp Next wks End Sub
La macro solicita al usuario que ingrese un nuevo nombre y luego busca en celdas, comentarios y cuadros de texto para ver si hay apariciones del nombre predeterminado («Jason Anderson»). Si es así, entonces se realiza el reemplazo apropiado.
Si no desea utilizar macros para realizar la búsqueda, tal vez sería útil una reestructuración del libro de trabajo. Por ejemplo, podría crear una «hoja de trabajo de ingreso de datos» en la que se ingrese información común, como el nombre de la persona. En las otras hojas de trabajo, se hace referencia al nombre de la hoja de trabajo de entrada de datos mediante fórmulas. Por lo tanto, un cambio en la hoja de trabajo de entrada de datos y el nombre se cambia en todas las demás hojas de trabajo.
El uso de este enfoque también puede funcionar con comentarios. Puede seleccionar el comentario o la forma y, en la barra de fórmulas, ingresar una fórmula de referencia como esta:
=MyName
Esto supone que el nombre del usuario, en la hoja de trabajo de entrada de datos, se ha asociado con el rango con nombre MyName. Si es necesario que haya información adicional en el comentario o la forma, entonces puede construir ese texto en una celda en la hoja de trabajo de entrada de datos y luego asignar el contenido de esa celda al comentario o forma, tal como se indica para el rango con nombre MyName.
_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 (2614) se aplica a Microsoft Excel 2007, 2010, 2013 y 2016.