Macro VBA para copiar datos a primera fila vacía de un rango

Me gustaría saber qué código usar para un botón que al pulsarlo, copie los valores de A12:G12 y los copie a la primera fila vacía del rango de filas 17 en adelante.

La idea es introducir los valores siempr en la misma fila y que al pulsar el botón se vayan copiando abajo y se borren los valores de la fila donde se introducen los datos.

1 respuesta

Respuesta
1

Aquí la tienes:

Sub copiarpegar()

Range("A12:G12").Select
Selection.Copy
Range("A16").Select
Do
ActiveCell.Offset(1, 0).Select
Loop Until ActiveCell.Value = ""
Selection. PasteSpecial xlValues
Range("A12:G12"). ClearContents

End Sub

Muchas gracias. Casi está.

El problema es que al dejar los campos que no uso en cada entrada en blanco, me sobrescribe la fila entera cuando introduzco una entrada que tiene algun valor en blanco. No sé si me explico. Pongo un ejemplo.

Asigno un valor 1 a la C12 y dejo el resto en blanco. Pulso el botón y me copia en la fila 17 todo en blanco  y el 1 en la C17. Hasta aquí perfecto. Si ahora hago una nueva entrada poniendo valor 1 en A12 y dejando el resto en blanco, como A17 está vacío, me copia todos los valores de nuevo en la fila 17 sobrescribiendo lo que ya había en la C17.

Se me ocurre que el último comando, en vez de ClearContents, fuese que asignara valor cero a A12:G12. De esta forma copiaría siempre contenido en todas las columnas de cada fila.

¿Se puede hacer?

Muchas gracias de nuevo.

Bueno, creo que lo tengo. 

He creado una macro en la que asigno valor cero al rango A12:G12 y la ejecuto al final del código del botón.

Parece que funciona.

Muchísimas gracias.

Si, tu mismo has dado con una de las posibles soluciones :-)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas