Macros: buscar dentro de una base de datos y copia

Bueno mi pregunta es la siguiente, estoy realizando una macros y ya voy bastante avanzado, pero no se me ocurre como hacer algo, les cuento:
En la hoja 1 de excel esta una planilla donde se ingresan los datos, en la 2da hoja hay una hoja donde se llevan los datos anteriores y se ordenan en una planilla. En la tercera hoja hay un historial, donde se guarda cada operación en una sola linea.
Mi pregunta es la siguiente.
Se suponde que cada operación se guarda en el historial, pero como puedo hacer para buscar esa linea y me vuelva a copiar los datos en la planilla,
Espero hacerme entender.
Soy usuario básico en esto de macros y me gustaría seguir aprendiendo, agradecería sus comentarios
Muchas gracias

1 Respuesta

Respuesta
1
Si te he entendido bien (piensa un poco si es así) tu quieres escribir datos en una hoja de excel, que a su vez se irán a una 3ª Hoja que tu llamas Historial y que al mismo tiempo realizar una Búsqueda en esa Hoja Historial para que vuelva a escribir en la 1ª Hoja lo que ya escribiste en su momento, que se volvería a ir a la Hoja Historial.
Explicate si es así y razona donde quieres que te firguren los datos, si se repetirán en la Hoja Historial, si tenddra que buscar la anterior entrada y corregirla. En fin aclara un poco tus pretensiones.
Ok. Me explico mejor.
La "hoja 1" es un formulario, ese formulario se llena y manda toda esa información a la "hoja 2" donde se llena en un formato más presentable con algunas fórmulas varias etc., con una orden. La información de la "hoja 1" pasa a la "hoja 3 (historial) " donde las distintas columnas del formulario se transponen en una sola linea, y ahí se va acumulando la información.
Mi idea es la siguiente.
Cuando yo necesite una información "x", me gustaría poder buscar esa información en el historial. Estuve pensando varias formas. Una era usando la fórmula buscarv, y que busque en el historial. Luego de eso que me copie toda la linea en otro lugar, yo pensé al final de la hoja historial, y una vez allí comenzar a ordenar la información en la "hoja 1", para poder formar la "hoja 2" otra vez.
Se supone que al yo poner una información por ( que debería ser la primera de la fila) por ejemplo en una casilla que se llame "buscar", me copie toda la linea al final de la hoja.
Pero no se como dar la orden de que copie la linea que busca buscarv.
Espero que hayan entendido la idea, es algo complicado explicarlo, y al parecer algo difícil hacerlo, como les comento soy muy novato en esto.
Se agradecería mucho la ayuda.
saludos.. Isaac Escobar
Esto que necesitas es fácil, te voy a explicar por si no lo entiendes, si crees que peco de pedante me disculpas, pero te lo pongo como si no supieses nada de esto.
1º Situate en tu Hoja 3
2º En una celda que este fuera de tus datos
3º Ver, Barra de herramientas, Cuadro de controles
4º Seleccionas un botón, y lo llevas a esa celda creándolo del tamaño que prefieras
5º Pinchas encima del botón con el botón derecho del ratón
6º Vas a la fila que pone Caption y el nombre de la derechz que pone Commandbutton1 lo borras y pones Buscar y copiar, cierras el cuadro de propiedades
7º Pincha encima del botón con el derecho del ratón y eliges ver código
Ahora copias este código y lo pegas donde esta el cursosr parpadeando
Dim n As Range
palabra_a_buscar = InputBox("Introduce la palabra a buscar", "BUSCADOR")
Set n = Cells.Find(What:=palabra_a_buscar)
If n Is Nothing Then
MsgBox "No he encontrado nada. Lo siento."
Else
Range(n.Address).Select
MsgBox "Aquí tienes la palabra " & UCase(palabra_a_buscar) & "."
End If
Set n = Nothing
'Nos situamos en la fila activa
x = ActiveCell.Row
'Nos situamos en la columna activa
y = ActiveCell.Column
'Marcamos en la celda y cuantas columas queremos copiar
z = Cells(x, y + 5).Address & ":" & Cells(x, y).Address
Range(z).Copy
'Seleccionamos toda la columna A
Range("A1").Select
'Buscamos la primera fila vacia en esa columna
Do While Not IsEmpty(ActiveCell)
'Nos situamos en ella
ActiveCell.Offset(1, 0).Select
'Esto repite la busqueda hasta que encuentra la fcelda vacía
Loop
'Pegamos la fila copiada anteriormente
ActiveCell.PasteSpecial
Al comienzo  debe aparecer esto
Private Sub CommandButton1_Click()
Al final de todo
End Sub
Guardas el excel con un nombre y lo cierrras, cuando lo abras pincha en el botón que has creado y te pedirá que pongas una palabra a buscar de la columna A, aceptas cuando lo haya encontrado, copiara toda la fila y la pegara en la primera fila que encuentre vacía
Espero te lo solucione si tienes alguna duda me lo comentas.
Julio:
Se paso tu comentario
Enserio muchísimas gracias me soluciono mi problema 100% aunque igual hice unos ajuste lógicos de información que tu desconocías, ademas le asigne una linea especifica para que copiara la información pero sin tu ayuda no hubiese hecho nada, enserio muchísimas gracias te puntuare al máximo porque considero tu respuesta 10000% acertada... muchas gracias
:D

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas