Entrada de datos en hoja de cálculo

Buenos días,
Tengo una hoja de cálculo que utilizo como formulario para imprimir y ahora mismo guardo cada libro por separado creándome un archivo cada vez, he creado un libro con una base de datos donde los datos introducidos en la hoja anterior los introduzco manualmente en esta base datos, me gustaría crear una macro o algo donde al introducir los datos en la hoja de cálculo se me introduzcan también en la base de datos que está en este otro libro.
He probado con el asistente de plantillas, pero el formulario son muchos datos y se queda a mitad.
Muchas gracias de antemano por vuestra respuesta, para cualquier aclaración puedo enviaros los archivos.

1 respuesta

Respuesta
1
Este script trabaja con 2 libros diferentes "Libro1 y Libro2", el primero es el origen de datos y el segundo el repositorio en donde pegaremos los datos seleccionados del libro 1
Sub Macro1()
'
' Macro1 Macro  copia datos de un libro a otro libro abierto
Windows("Libro1.xls").Activate
Range("A10").Select
    Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
    Selection.Copy
    On Error GoTo 1
    Windows("Libro2.xls").Activate
    Range("A1").Select
    ActiveSheet.Paste
    Range("A1").Select
    Windows("Libro1.xls").Activate
1: If Err.Number = 9 Then MsgBox "El libro de destino esta cerrado", vbCritical: Err.Clear
End Sub
Pues bien, lo primero es tener abiertos ambos libros, correr la macro desde el Libro1 (debes copias la macro en el Libro1), en este ejemplo la macro se posiciona en la celda A1, selecciona todo el rango de datos visible, luego Activa ( no habré) el Libro2, se ubica en A1 y copia los datos, si el libro 2 esta cerrado, pues la macro te lo dice.
Bueno, esto lo puedes adaptar a tus necesidades, ya tienes la mecánica básica, prueba correr el macro en la opción "paso a paso ", para que sigas su evolución y puedas realizar tus modificaciones.
Bye
Muchas gracias por tu respuesta me es muy útil.
Pero... ¿y si solo quiero copiar algunas celdas?, como he comentado en el libro 1 uso una hoja de cálculo como formulario, ¿entonces qué tengo que poner en la macro cada celda a copiar del libro 1 donde quiero pegarla del libro 2?
Muchas gracias
Mmmm... mira respecto a copiar algunas celdas Excel si bien es cierto eprmite la selección múltiple de celdas es decir A1 C4 G55 etc, no admite el comando Copy para esa referencia ( al menos hasta donde yo se), cada vez que copias (internamente estas aplicando el comando copy), Excel te pide un rango (cuadradito), entonces lo que se me ocurre para esto seria tomar una a una cada celda que deseas copiar, tomarlas como si fueran variables y pasarlas a la Hoja 2, ya que si entiendo lo que deseas necesitas copiar celdas en selección múltiple y no un rango de datos, así que podrías hacerlo de esa forma, selecinar las celdas y pagarlas en hoja 2, ya sea como una fila o respectando la misma estructira de las celdas de la hoja1, es decir
Libro1 celdas A1 B23 G4 etc, ¿copiar y pegar en Libro2 celdas A1 B23 G4
es mas o menos lo que necesitas?
Para saber si te he entendido bien, realizo un copia pega de la hoja formulario a otra hoja del mismo libro de forma que queden las celdas que contienen la información a copiar una tras otra, y después creo la macro para que dicha información pase al libro 2 creándome el registro, ¿es así?
Muchas gracias.
Casi
Es decir cuando a través de tu formulario terminas un registro ( cargaste las celdas en la hoja1), tomas los valores directamente de los textbox que te interesan y los pegas en forma de fila ( si es así como necesitas la salida) en otra hoja para que te vayan quedando ordenados en forma secuencial
por ejemplo si tu formulario tiene 7 textbox y esos cargan tu hoja1 en 7 diferentes celdas, pero a ti te interesa que solo pasen 5 celdas (que no son un rango) a otra hoja (hoja2), pues al momento en que generas el registro a través de esos 7 textbox, pues mediante código tomas solo los 5 textbox que necesitas, y con ellos haces un arreglo en función de las celdas de la hoja 2. es decir
desde tu form:
Text1 debe cargar A1 en hoja2
Text2 debe cargar B1 en hoja2
Text6 debe cargar C1 en hoja2
Text4 debe cargar D1 en hoja2
De esta manera haces dos en uno, cargas normalmente los datos en tu hoja1 como hasta ahora y a la vez estas cargando solo los datos que te interesan en hoja2 en forma de filas.
¿Me equivoco? ¿O ando cerca de lo que necesitas?. Me avisas ya para el Lunes
bye
Muchas gracias, eso es lo que necesito más o menos, pero con la información que me has dado creo que podré hacerlo.
Muchas gracias de nuevo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas