Botón con Macro que al pulsar cambie los datos de una celda a otra pero que no los pase si está vacía.

Los datos que tengo en unas celdas son en formato fecha, lo que quiero conseguir es que al pulsar el botón me cambie los datos que hay en otro rango de celdas, pero si hay celdas vacías que deje el valor anterior, es decir el que hay en esa celda.

Ejemplo:

Celda C4 Celda G4

20/03/16           20/04/17

10/05/15           10/03/17

20/01/17          

Lo que quiero conseguir es el siguiente resultado:

Celda C4 Celda G4

20/04/17

10/03/17

20/01/17

Y tiene que permitir volver a insertar valores en la celda G4 y sucesivas, pero que al pulsar el botón, perimita hacer el cambio anterior.

Respuesta
1

Si he entendido bien, esta macro debería hacer lo que pides

Sub copia()
Range("C5").Select
Do
Celda = ActiveCell.Address
If Range(Celda).Offset(0, 1).Value = "" Then GoTo siguiente
ActiveCell.End(xlToRight).Select
Selection.Copy Range(Celda)
Range(Celda).Offset(0, 1).Select
Range(Range(Celda).Offset(0, 1).Address, Range(Celda).End(xlToRight)).Select
Selection.ClearContents
siguiente:
Range(Celda).Offset(1, 0).Select
Loop Until ActiveCell.Value = ""
End Sub

¡Gracias! 

No me funciona bien... Me mueve los valores de las celdas adyacentes a c5, por ejemplo D5 la pone en C5, E5 en D5, y así, pero no hace lo que yo deseo.

Como comentaba antes, seguramente no me expliqué bien, lo que necesito es que lo que hay en el rango desde C4 a C...., sea sustituido por el rango que hay en G4 a G....

Pero si en G4 a G.... el valor es vacío que no lo cambie, que deje el que hay en C...

Espero aclararlo un poco más.

Pues lo he hecho más difícil de lo que era, este es el que te valdrá

Un saludo

Sub copia()
i = 4
j = 3
k = 7
Do
If Cells(i, k).Value <> "" Then
Cells(i, j).Value = Cells(i, k).Value
i = i + 1
Else
i = i + 1
End If
Loop Until Cells(i, j).Value = ""
End Sub

¡Gracias! 

Este segundo que me has enviado, no hace nada...

He vuelto a probar el primero que me enviaste, pero ha dejado de funcionar en el momento que lo he probado en otra hoja con menos datos.

Si no hace nada debe ser porque en la celda C4 no tienes ningún valor.

¿Puedes poner un par de imágenes de ejemplo de como están los datos y como deberían quedar?

Como puedes ver en la imagen, lo que necesito es que si la fecha que hay en G4 y sucesivas es más reciente que la que hay en C4 y sucesivas, las cambie. Pero si está en blanco, tiene que dejar la misma fecha que hay en C4.

Comentarte que he hecho pruebas nuevas con la primera macro que me enviaste, y si como ves en la imagen en las columnas D, E, F hay datos, lo que hace es moverlas para la anterior, por lo que si no hay fechas, hay cualquier otro valor lo mueve.

He probado a cambiar los datos que tengo en G4 y ponerlos en D4, pero hace lo mismo, mueve todas las columnas que hay en la hoja.

Si, solo hubiera las columnas C y D, he probado que solo mueve esas. Espero haberme explicado lo mejor posible.

Saludos

El problema está en que tienes la información de forma discontinua en la columna C. La fila 7 no tiene datos ni en C ni en G. Eso es normal? ¿Solo puede haber una fila sin datos o pueden haber dos seguidas sin datos y luego continuar más datos?

No, eso es un error (lo borré sin darme cuenta), siempre tiene que haber en la columna C un valor, en la que puede no haber es en la columna G.

Saludos

Al utilizar el primer código que me enviaste, comentarte para que veas, que hace bien su trabajo, lo que pasa es que si hay valores en las columnas sucesivas, los mueve todos para la columna C. Como puedes ver en la imagen, lo que hace es mover los datos de la Columna E para la C, pero borrando los que hay en la columna D.

Espero que pueda aclararte alguna cosa más.

Saludos.

No se que como lo estas haciendo, pero a mi me funciona perfectamente. Asegurate que no tienes filas en la columna C vacías.

He subido el ejemplo a dropbox para que lo puedas comparar con lo que tienes. Te dejo el enlace

https://www.dropbox.com/s/uufjpj769yq5xom/copia%20pega%20fechas.xlsm?dl=0 

He puesto un botón para que puedas ejecutar la macro desde la misma hoja

Compara como lo has hecho tu con el libro de ejemplo en dropbox

¡Gracias! 

Estaba usando el otro código y me daba el error que te comentaba. Pero muchas gracias, por tú trabajo y esfuerzo.

Con este de momento, no he tenido problemas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas