Hola, respecto a lo que publiqué en ese foro que comentas decir que con 12000 celdas es para que se entienda, que no tengo 3 o 4 cables como para estar copiando y pegando formulas ya que como se puede entender da lugar a colarte y pegar una en la celda que no es sobre todo cuando llevas ya un buen rato con ello.
Respecto a utilizar una hoja auxiliar es tal y como lo planteé. De hecho el código de Leopoldo Blancas me funcionó perfecto, quedando ese desafío resuelto. Donde estaba el problema?Que cuando ejecutaba la macro me pegaba en las celdas en blanco la fórmula en inglés, que es como tengo el excel en un ordenador de trabajo, y no reconoce las funciones en este otro ordenador también de trabajo y que está en español (que por politicas de empresa no tengo permitido cambiar, capado) Por tanto aunque el código estaba genial no puedo utilizar la hoja excel en el ordenador de teletrabajo. Es por eso por lo que en este foro he planteado el problema desde otro punto de vista, quitando las fórmulas de la hoja auxiliar, ya que por eso método no me valió. Dejo captura de lo que me pasaba (que no es el caso en este tema), aunque pusiera ESFORMULA como comentas no me iba a valer, porque las funciones que contienen están en ingles,, Puedo buscar la traducción?Si, pero me va a dejar de valer para uno de los ordenadores igual. Es por eso que no conviene mezclar lo de un foro con este porque lo he planteado de otra forma aquí. Un saludo!
Por
MANTONIOPM, · publicado
buenas tardes como puedo modificar esta macro para que busque en varias columnas y copie las filas que contenga el dato buscado
Sub copiar_y_borrar()
columna = Range("bz1").End(xlToLeft).Column
quebusco = InputBox("que dato quieres buscar")
If quebusco = "" Then Exit Sub
ActiveSheet.Range("a1").CurrentRegion.Sort key1:=Range("a1"), order1:=xlAscending, Header:=xlYes, ordercustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Set busca = ActiveSheet.Range("a2:a" & Range("a10000").End(xlUp).Row).Find(quebusco, LookIn:=xlValues, lookat:=xlWhole)
If Not busca Is Nothing Then
ubica = busca.Address
Range(ubica).Select
valor = ActiveCell.Value
fila = ActiveCell.Row
contarsi = Application.WorksheetFunction.CountIf(Columns(1), valor)
Range(Cells(fila, 1), Cells(fila + contarsi - 1, columna)).Copy
Sheets("copiados").Select
Cells(Range("copiados!a10000").End(xlUp).Row + 1, 1).PasteSpecial Paste:=xlValues
Do While ActiveCell.Value <> ""
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell. Value = "******************"
Sheets("hoja1").Select
Range(Cells(fila, 1), Cells(fila + contarsi - 1, columna)).EntireRow.Delete
Application.CutCopyMode = False
End If
End Sub
gracias