Macro que copie un dato a otra celda

Disculpa la molestia, por favor no seas malito ayudame con una macro (botón click) que copie un dato a otra celda de la misma hoja, pero depende de dos condiciones.
copia celda C11 hacer comparacion si C5="DEPOSITO"  y  C13="NORMAL"  ir a la celda "B27". Desplazarse a la ultima celda libre y pegar el contenido de C11
copia celda C11 hacer comparación si C5="RETIRO" y C13="NORMAL" ir a la celda "C27". Desplazarse a la ultima celda libre y pegar el contenido de C11
copia celda C11 hacer comparación si C5="DEPOSITO" y C13="OPCIONAL" ir a la celda "J27". Desplazarse a la ultima celda libre y pegar el contenido de C11
copia celda C11 hacer comparación si C5="RETIRO" y C13="OPCIONAL" ir a la celda "K27". Desplazarse a la ultima celda libre y pegar el contenido de C11
De antemano te agradezco tu tiempo y tu buen espíritu por ayudar.
Saludos.

1 respuesta

Respuesta
1
Aclarame algo que significa ir a la celda B27 que quieres decir, ¿qué contenido pegaras en C11?
¿Cuándo dices Copia celda C11 hacer comparación? Y luego dices ir a celda b27 quedo en un vacío... no tengo idea de lo que necesitas explicarlo lo mejor posible, necesito más claridad para ayudarte
En C11 tengo un dato numérico y ese dato se va a pasar a la B27 o C27, o también se puede pasar en J27 o K27.
Lo que dije hacer comparación es que dependiendo si C5 es "DEPOSITO" y C13 es "NORMAL" el contenido de la celda C11 se almacena en la ultima celda vacía después de "B27" por eso dije ir a la celda "b27"
Si C5 es "RETIRO" y C13 es "NORMAL" se almacena en la ultima celda vacía después de "C27"
Si C5 es "DEPOSITO" y C13 es "OPCIONAL" se almacena en la ultima celda vacía después de "J27"
Si C5 es "RETIRO" y C13 es "OPCIONAL" se almacena en la ultima celda vacía después de "K27"
y disculpa también, por no saber explicar bien. Espero que ahora si. O te mando el archivo no seas malo dame tu correo el mio es [email protected]
Listo de todas formas mi correo es [email protected], por cualquier detalle que necesites, si estas conforme por favor finaliza la pregunta gracias
el código es:
Sub Botón2_Haga_clic_en()
'
' Botón2_Haga_clic_en Macro
'
If Range("c5").Value = "deposito" And Range("c13").Value = "normal" Then
Range("B:B").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Value = Range("c11").Value
End If
If Range("c5").Value = "retiro" And Range("c13").Value = "normal" Then
Range("C:C").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Value = Range("c11").Value
End If
If Range("c5").Value = "deposito" And Range("c13").Value = "opcional" Then
Range("J:J").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Value = Range("c11").Value
End If
If Range("c5").Value = "retiro" And Range("c13").Value = "opcional" Then
Range("K:K").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Value = Range("c11").Value
End If
'
End Sub
Sub Botón2_Haga_clic_en()'' Botón2_Haga_clic_en Macro'
If Range("c5").Value = "deposito" And Range("c13").Value = "normal" ThenRange("B:B").SelectSelection.End(xlDown).SelectActiveCell.Offset(1, 0).Value = Range("c11").ValueEnd IfIf Range("c5").Value = "retiro" And Range("c13").Value = "normal" ThenRange("C:C").SelectSelection.End(xlDown).SelectActiveCell.Offset(1, 0).Value = Range("c11").ValueEnd IfIf Range("c5").Value = "deposito" And Range("c13").Value = "opcional" ThenRange("J:J").SelectSelection.End(xlDown).SelectActiveCell.Offset(1, 0).Value = Range("c11").ValueEnd IfIf Range("c5").Value = "retiro" And Range("c13").Value = "opcional" ThenRange("K:K").SelectSelection.End(xlDown).SelectActiveCell.Offset(1, 0).Value = Range("c11").ValueEnd If'End Sub
Nuevamente mis agradecimientos por tu atención, ya puse los códigos en el botón, pero el contenido de C11 no se pone donde se indica que es en la columna B o C o J o QUE pero después de la fila 27, ya que antes tengo otros datos como el encabezado. Por favor checalo con mi formato, te mandé el archivo a tu correo. Disculpa que siga ocupando de tu valioso tiempo.
Saluditos.
Ya te comente por correo
Pero te explico tienes que cambiar varias cosas al código que te envíe por ejemplo deposito, normal, retiro y opcional van en mayúsculas. El rango no es c13 te equivocaste al decirme es b13
y luego tienes que inicializar esas celdas con valor 1 en cada una para que el nuevo código funcione
If Range("C5").Value = "DEPOSITO" And Range("B13").Value = "NORMAL" Then
Range("B27:B400").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Value = Range("c11").Value
End If
If Range("c5").Value = "RETIRO" And Range("B13").Value = "NORMAL" Then
Range("C27:C400").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Value = Range("c11").Value
End If
If Range("c5").Value = "DEPOSITO" And Range("B13").Value = "OPCIONAL" Then
Range("J27:J400").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Value = Range("c11").Value
End If
If Range("c5").Value = "RETIRO" And Range("B13").Value = "OPCIONAL" Then
Range("K27:K400").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Value = Range("c11").Value
End If
If Range("C5").Value = "DEPOSITO" And Range("B13").Value = "NORMAL" ThenRange("B27:B400").SelectSelection.End(xlDown).SelectActiveCell.Offset(1, 0).Value = Range("c11").ValueEnd IfIf Range("c5").Value = "RETIRO" And Range("B13").Value = "NORMAL" ThenRange("C27:C400").SelectSelection.End(xlDown).SelectActiveCell.Offset(1, 0).Value = Range("c11").ValueEnd IfIf Range("c5").Value = "DEPOSITO" And Range("B13").Value = "OPCIONAL" ThenRange("J27:J400").SelectSelection.End(xlDown).SelectActiveCell.Offset(1, 0).Value = Range("c11").ValueEnd IfIf Range("c5").Value = "RETIRO" And Range("B13").Value = "OPCIONAL" ThenRange("K27:K400").SelectSelection.End(xlDown).SelectActiveCell.Offset(1, 0).Value = Range("c11").ValueEnd If
Si el error fue mio al decir C13, pero ya los modifique y te hice una contestación a tu correo,
El rango inicia en B26 y no en B27 para que lo ponga en primer celda vacía.
Pero cuando se inicia con el primer movimiento no hay fecha, el valor de C11 se va a la columna de fecha, tanto en NORMAL como OPCIONAL y es lo que no entiendo.
Cuidate un saludo.
Efectivamente lo que comentas es cierto, para solucionarlo el rango empieza en b26, C26, J26, K26 así ya funciona.
El otro detalle que lo que AHORRA si es consecutivo si lo pone donde debe, pero si RETIRA lo coloca en la celda vacía de retiros, y ahí ya no cuadra, no debe ir ahí. Para solucionarlo, la celda adyacente al movimiento debe ser igual a CERO. Osea que si ahorra no retira y si retira no ahorra.
solo le agregué otra linea con ActiveCell.Offset(0, 1).Value = 0    o    ActiveCell.Offset(0, -1).Value = 0 y ya con eso ya quedó. 
Así que muchas gracias, muchas gracias. Problema resuelto.
Finaliza la pregunta

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas