Hola sergio si tengo un rango por ejemplo de 7 columnas y en las filas varian en numero quiero encontrar on texto especifico y seleccionar las 7 columnas y ese texto encontrado quiero moverlo 3 o 4 columnas abajo despues de la ultima fila que funcion podria utilizar o como podria hacerlo muchas gracias
Prueba con este código y nos dejas saber si es lo que buscas:
Sub Buscar_Mover_Fila_Dinamico() Dim ws As Worksheet Dim RangoBuscar As Range Dim celdaEncontrada As Range Dim ultimaFila As Long Dim ultimaColumna As Long
Set ws = ThisWorkbook.Sheets("Hoja1") ' Ajusta el nombre de la hoja
' Detectar automáticamente el rango utilizado en la hoja. En caso de que no quieras limitarlo solo a 7 columnas ultimaFila = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row ' Última fila con datos ultimaColumna = ws.Cells.Find("*", LookIn:=xlFormulas, SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column ' Última columna con datos
Set RangoBuscar = ws.Range(ws.Cells(1, 1), ws.Cells(ultimaFila, ultimaColumna)) ' Rango dinámico
' Buscar el texto específico Set celdaEncontrada = RangoBuscar.Find(What:="TextoEjemplo", LookAt:=xlWhole) ' Reemplaza el texto buscado o usa una celda para tomar el dato
If Not celdaEncontrada Is Nothing Then ' Encontramos el texto, seleccionamos la fila completa ultimaFila = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row ' Detecta la última fila con datos celdaEncontrada.EntireRow.Copy ws.Cells(ultimaFila + 3, 1).PasteSpecial xlPasteValues ' Mueve la fila 3 filas abajo MsgBox "Texto encontrado y movido correctamente" Else MsgBox "Texto no encontrado" End If
Application.CutCopyMode = False End Sub
Será un gusto saber si esto te ayuda. Adapta el código según tu necesidad.
¡Ánimo, Javier! Al principio puede parecer complicado, pero con la práctica todo empieza a hacer clic. Repásalo con calma y prueba con pequeños ejemplos. Seguro que en poco tiempo lo dominas.
Inicia sesión para dejar tu duda, comentario y/o respuesta