Buscando todo (Microsoft Excel)
Jack se pregunta cómo puede buscar una determinada palabra o frase y, en un solo paso, resaltar todas las celdas que la contienen para poder cortarlas o copiarlas y pegarlas en otro lugar.
Seleccionar las celdas que contienen el texto que desea utilizar es bastante fácil; puede utilizar la función estándar Buscar y reemplazar para hacerlo. Siga estos pasos:
-
Presione Ctrl + F. Excel muestra la pestaña Buscar del cuadro de diálogo Buscar y reemplazar.
-
Expanda el cuadro de diálogo haciendo clic en el botón Opciones. (Ver figura 1)
-
En el cuadro Buscar, ingrese el texto que desea buscar.
-
Utilice los controles del cuadro de diálogo para limitar las coincidencias, según desee.
-
Haga clic en Buscar todo. El cuadro de diálogo se expande para mostrar todas las coincidencias que se localizaron.
-
Presione Ctrl + A. Esto selecciona todas las celdas que se encontraron.
-
Haga clic en Cerrar para cerrar el cuadro de diálogo.
Eso es. Siempre que no haya hecho clic en Coincidir con todo el contenido de la celda en el paso 4, Excel selecciona todas las celdas que contienen el texto que especificó en el paso 3. En ese momento, puede aplicar formato a las celdas, si lo desea.
Por supuesto, podría usar formato condicional para formatear dinámicamente las celdas que contienen el texto que desea resaltar. Todo lo que necesita hacer es configurar una condición que use una fórmula que pruebe la presencia del texto que desea. Esto, por supuesto, no seleccionará todas las celdas que contienen el texto, pero las resaltará para que pueda elegir dónde están.
También puede usar una macro para seleccionar todas las celdas que contienen el texto deseado. El siguiente es uno bastante simple que logra la tarea:
Sub selCellbasedonValue() Dim c As Object Dim u As Range Dim v As Range Dim sInpt As String Set u = ActiveSheet.UsedRange sInpt = InputBox("Enter the search text") If sInpt > "" Then For Each c In u If Instr(LCase(sInpt),LCase(c.Value)) > 0 Then If v Is Nothing Then Set v = Range(c.Address) Else Set v = Union(v, Range(c.Address)) End If End If Next v.Select Set v = Nothing End If Set u = Nothing End Sub
Sin embargo, existe un problema con la selección de celdas que necesita reconocer; si las celdas no son contiguas, no puede cortar ni copiar las celdas. Si lo intenta, obtendrá un mensaje de error que indica que el comando no se puede utilizar en varias selecciones. La forma más fácil de copiar el contenido de la celda a una ubicación diferente es, nuevamente, usar una macro:
Sub CopyFinds() Dim sSrch As String Dim sFirst As String Dim rPaste As Range Dim i As Integer Dim iLeftC As Integer Dim lTopR As Long Dim c As Object If Selection.Cells.Count = 1 Then MsgBox "Select the range to be searched." Exit Sub End If 'Specify search string sSrch = InputBox(Prompt:="Enter the search text") ' Set the paste address On Error Resume Next Set rPaste = Application.InputBox(Prompt:="Enter the upper-left " & _ "cell address for the paste range", Type:=8) On Error GoTo 0 ' Exit if canceled If TypeName(rPaste) <> "Range" Then Exit Sub ' Upper left cell to be used Set rPaste = rPaste.Range("A1") 'Set where paste will start and headings Application.ScreenUpdating = False lTopR = rPaste.Row iLeftC = rPaste.Column Cells(lTopR, iLeftC) = "Address" Cells(lTopR, iLeftC + 1) = "Cell Value" lTopR = lTopR + 1 'Start copying cell values With Selection Set c = .Find(What:=sSrch, LookAt:=xlPart, MatchCase:=True) If Not c Is Nothing Then sFirst = c.Address Do Cells(lTopR, iLeftC) = c.Address Cells(lTopR, iLeftC + 1) = c.Value Set c = .FindNext(c) lTopR = lTopR + 1 Loop While Not c Is Nothing And c.Address <> sFirst End If End With Application.ScreenUpdating = True Cells(rPaste.Row, rPaste.Column).Select End Sub
Cuando selecciona un rango de celdas y ejecuta esta macro, se le pide que especifique lo que está buscando (el caso es importante) y una dirección de dónde desea copiarlo. Luego, la macro busca todas las celdas que contienen ese valor y copia tanto su dirección como el valor de celda en la dirección inicial que especificó. La macro no realiza muchas comprobaciones de errores; sobrescribirá la información si especifica una dirección de destino que ya tiene información. Además, si especifica una dirección de destino que está dentro del rango que está buscando, la macro puede ejecutarse infinitamente. Definitivamente debe especificar un objetivo que esté fuera del rango que se busca.
_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 (8963) 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 posteriores) aquí:
link: / excelribbon-Searching_for_All [Buscando todo]
.