Copiar celdas a otra hoja en la primera fila libre

Primero felicitarles por la página que me parece estupenda. Voy con mi pregunta:
Tengo un libro con las hojas: externo, interno y base de datos, la utilizo para ingresar datos de personal autorizado a fin de realizar trabajos en la empresa, en las dos primeras he colocado ventanas desplegables para elegir el nombre de la persona y devuelve una serie de datos y una fecha limite de autorización previamente ingresados en la hoja base de datos, lo que busco es introducir los datos en otra hoja llamada "ingreso de datos" y me los copie en su lugar correspondiente a continuación del ultimo ingresado. Los datos que necesito son: "Apellidos y nombre"-"DNI"-"Empresa"-"Motivo"-"Fecha autorización".

2 respuestas

Respuesta
1
La instrucción para obtener la primer fila libre para agregar tus datos es esta, que busca en la col A:
libre = Sheets("ingreso de datos").Range("A65536").End(xlup).Row + 1
Luego para pasar tus datos, podes utilizar alguna de estas:
Sheets("ingreso de datos"). Cells(fila,1) = Sheets("base de datos"). Range("A5")
Sheets("base de datos"). Range("A5").copy destination:=Sheets("ingreso de datos"). Cells(fila, 1)
Si la rutina se ejecuta desde la hoja BASE podes reemplazar su nombre por
ActiveSheet.Range(...)
La instrucción Cells(fila, 1) hace referencia a la col A, será 2 para col B y así con el resto de los datos
Espero te sirvan los ejemplos para continuar con tu tarea. Encontrarás más ejemplos en mi página de macros
Sdos
Elsa
Elsa, primero te agradezco tu pronta respuesta y creo que no explique bien mi caso, yo quiero introducir los datos desde la hoja "Ingreso de datos", pero la hoja esta vacía, solo tengo en la celda B4 "Apellidos y nombre", en la C4"DNI", D4"Empresa", E4"Motivo" y F4"Fecha Autorización" y quiero escribir en las celdas de la B5 hasta la F5 y asignar una macro a un botón que copie esos datos a la hoja "Base de datos" que en la columna "A" tiene un numero indice y los datos van desde la columna "B" hasta la "F", mediante fórmulas consigo copiar los datos pero no logro que luego pase a la siguiente fila libre para seguir introduciendolos.
Gracias de nuevo y visitare tu página que me ha parecido interesante..
Bien, entonces tendrás un botón o atajo de teclado en hoja "ingreso...", con una rutina de este tipo:
Sub paseDatos()
'busca primer fila libre en hoja Base, revisando la col B
libre = Sheets("Base de datos").Range("B65536").End(xlup).Row + 1
'copio a partir de col B
Sheets("ingreso de datos").Range("A5:F5").copy destination:=Sheets("Base de datos").Cells(libre,2)
'opcional: borrar rango de datos en hoja ingreso
Sheets("ingreso de datos").Range("A5:F5") = ""
End Sub
PD) En respuesta anterior equivoqué el nbre de variable. Las 2 debieran haber sido 'libre'
Muchísimas gracias Elsa, entre tu solución y los ejemplos de tu página adaptados a lo que necesitaba he conseguido que me funcione incluso mejor de lo que esperaba, ademas ha hecho que me interese por el Visual Basic.
Gracias otra vez y enhorabuena por la página.
Respuesta

Disculpa si pudieras aclararme un pequeño detalle, ¿si quisiera un tipo de pegado especial de valores como modificaría el copydestination?

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas