Como hacer para que cada vez q agregue un valor a A1 se copie en celdas distintas (ejm,C1,D1,E1,...)en excel.

Quiero usar una celda para llenar ciertas descripciones de una hoja, usando como punto de partida y referencia la celda A1, para que cada vez que introduzca un valos numerico se copie en otras celdas especificas ejemplo un primer valor en A1=123 se copie en C1. Al cambiar el valor de A1, se copie en otra celda como D1. Y asi sucesivamente.

2 Respuestas

Respuesta
2

Pon la siguiente macro en los eventos de tu hoja

Private Sub Worksheet_Change(ByVal Target As Range)
'Por.Dante Amor
    If Not Intersect(Target, Range("A1")) Is Nothing Then
        uc = Cells(1, Columns.Count).End(xlToLeft).Column + 1
        If uc < 3 Then uc = 3
        Cells(1, uc) = Target
    End If
End Sub

Sigue las Instrucciones para poner la macro en los eventos de worksheet

  1. Abre tu libro de excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. Del lado izquierdo dice: VBAProject, abajo dale doble click a worksheet(tu hoja)
  4. En el panel del lado derecho copia la macro
'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias
Respuesta
1

Para ir pegando el valor que pongas en la celda A1 en C1, D1, E1... etc debes pegar la siguiente macro en la Hoja correpsondiente del editor de proyectos:

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Address = "$A$1" Then
Call Macro
End If

End Sub

Sub Macro()

Dim valor As Integer
valor = Range("A1").Value
Range("C1").Select
If Range("C1").Value = "" Then
Range("C1").Value = valor
GoTo fin
Else
Do While ActiveCell.Value <> ""
ActiveCell.Offset(0, 1).Select
Loop
ActiveCell.Value = valor
End If
fin:
Range("A1").Select

End Sub

excelente muchas gracias, me sirve de mucho.

tengo otra preguntilla por si me puedes ayudar,?

usando casi la misma macro puedo hacer que me copie una celda a otras, pero un momento especifico cuando yo lo decida? y que al hacerlo las pegue de la misma forma que la pregunta anterior ejm, copiar G3   a H2,I2....pero cuando yo decida con un Activex?

gracias de antemano. agradecido con su colaboración.

No entiendo muy bien la finalidad de tu pregunta

Si quieres que se copien, utiliza la celda A1, si no quieres que se copien utiliza cualquier otra celda

¿Es así?

antes que nada muchas gracias por responder.

me explico mejor, la macro anterior me funciona muy bien, para como venia trabajando. ya que usaba la hoja de excel de forma muy manual. 

ahora quiero darle la misma funcion a otra celda pero en vez de que funcione de forma automática quisiera saber si puedo hacer que funcione cuando yo decida? con un botón o mejor aun al cambiar el valor de A1.. la finalidad es porque esa hoja esta en constante modificación de valores. y con ello dejo un correlativo. anteriormente era demasiado manual. ahora he ido mejorando con la ayuda de este foro.

Más información o ejm. si A1= 159 y en B8 el ultimo valor fue 1023. Que al cambiar el valor de A1 nuevamente, se copie el ultimo valor de B8 en otras celdas como C2, D2, E2... espero haberme explicado.

Gracias por su ayuda.

Creo que la mejor solución para ti es copiar-pegar valores de la fila A en otra hoja cuando lo necesites.

Si quieres que cada vez que cambie el valor de A te pregunte si quieres o no copiar el valor, tienes que añadir un texbox a la anterior Macro, pero no se si te será demasiado cómodo.

Un saludo

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Address = "$A$1" Then

yesno = MsgBox("Copiar?", vbYesNo)

If yesno = vbYes Then

Call Macro

Else
End If

End Sub

Sub Macro()

Dim valor As Integer
valor = Range("A1").Value
Range("C1").Select
If Range("C1").Value = "" Then
Range("C1").Value = valor
GoTo fin
Else
Do While ActiveCell.Value <> ""
ActiveCell.Offset(0, 1).Select
Loop
ActiveCell.Value = valor
End If
fin:
Range("A1").Select

End Sub

¡Gracias!

Me sirvió de mucho tus respuestas gregori.

Para plantear mejor lo que quiero creare una nueva pregunta. Agradecido

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas