Macro para buscar dato moverlo de columna y buscar en la siguiente fila

Necesito que me ayuden con algo que un novato aun no domina; tengo en la columna "A "unas "palabras" y requiero buscar una de esas palabra que introduzco mediante textbox, cuando la encuentre quiero q la pase a la columna de la derecha "B" (sin que quede en la celda donde estaba "A"), y que repita este procedimiento (BÚSQUEDA Y TRASPASO) en la columna inicial hasta que ya no quede ninguna coincidencia. PD: Aun lucho con los bucles.

2 respuestas

Respuesta
1

Prueba esta macro, tecleas la palabra en el inputbox, la macro la busca en la columna A y si la encuentra pasa todas las coincidencias a la columna B

Sub copiar_datos()
Dim funcion As WorksheetFunction
Set funcion = WorksheetFunction
Set datos = Range("a1").CurrentRegion
With datos
    .Sort key1:=Range(.Columns(1).Address), order1:=xlAscending
End With
otro:
palabra = InputBox("palabra a mover? (Salir dejando el espacio en blanco y dando Enter)")
vacio = palabra = vbNullString
If vacio = True Then GoTo sal
With datos
    cuenta = funcion.CountIf(.Columns(1), palabra)
    If cuenta = 0 Then MsgBox ("no se encontro esta palabra"): GoTo preg
    fila = funcion.Match(palabra, .Columns(1), 0)
    .Cells(fila, 2).Resize(cuenta, 1).Value = .Cells(fila, 1).Resize(cuenta, 1).Value
    .Cells(fila, 1).Resize(cuenta, 1).ClearContents
End With
preg:
ask = MsgBox("buscas otra palabra", vbYesNo)
If ask = 6 Then GoTo otro
sal:
Set datos = Nothing
End Sub
Respuesta
1

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas