Guardar datos de una casilla a otra

Soy nuevo en esto quisiera ves la forma si me pudieran ayudar quiero guardar los datos de una casilla de excel en otra sin que tenga que activar ningún botón ejemplo al momento de que cambien los datos del la casilla A1 guardarlos en la casilla B2 Y que se vayan almacenando abajo es que quiero guardar los datos de un escáner

1 respuesta

Respuesta
2

H o l a:

¿Tienes una fórmula en la celda A1?

Si no tienes una fórmula utiliza la siguiente macro

Después de capturar datos en A1 y presionar Enter, automáticamente el dato que hayas puesto en A1 se copiará en la columna B

Private Sub Worksheet_Change(ByVal Target As Range)
'Por.Dante Amor
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("A1")) Is Nothing Then
        u = Range("B" & Rows.Count).End(xlUp).Row + 1
        Cells(u, "B") = [A1]
    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. Del lado derecho copia la macro

Avísame cualquier duda que tengas.


':)
':)

Muchas gracias dante si me jalo pero lo que quiero es que sea automáticamente

Osea que cuando cambien los datos de la celda se guarden solos quiero mandar datos de un plc cada ves que escanee un código de barras por plc mandarlo a excel cada ves que mande un dato nuevo que se guarde si me pudieras ayudar se los agradecería mucho

Hola dante otro favor también quiero guardar la fecha y la hora a un lado y si se podría que el dato de arriba que sea el más actual no al revés ahorita le doy enter se guarda abajo pero el dato siguiente se pasa ala tercer fila y le doy enter al dato siguiente y se va ala cuarta fila no se si me esplique gracias

H o l a:

Te anexo la macro actualizada. En la columna C te va a poner la fecha y la hora.

También te va a poner el más actual hasta arriba.

No sé a qué te refieres con "auotmáticamente".

Actualmente escribes un dato en la celda A1 y automáticamente en la columna B te escribe el dato.

Tienes que configurar tu escáner para que después de hacer la lectura también envíe el enter, pero previamente tienes que tener abierto excel y seleccionar la celda A1, entonces empiezas a escanear.

Sal u dos

Ahí va la macro:

Private Sub Worksheet_Change(ByVal Target As Range)
'Por.Dante Amor
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("A1")) Is Nothing Then
        Range("B2:D2").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
        Cells(2, "B") = [A1]
        Cells(2, "C") = Now
        [A1].Select
    End If
End Sub

sal u dos

Mil gracias dante jala genial es lo que estaba buscando pero alo que me refería con automáticamente es que el escáner lo tengo conectado a un plc y no puedo configurar el enter mando los datos por un programa que se llama rslingx por medio de un string y lo que quiero es que cuando mande los datos ala celda A1 ejemplo los datos de la celda A1 es un valor digamos 122 después mando 123 el 122 se guarde cuando mande el dato del 123 no se si me esplique lo que quiero es que cuando canbien el dato de la celda A1 por otro dato se guarde te lo agradecería mucho

Hola dante perdón pero encontré un página que puedes ver para que compares lo que quiero hacer http://joautomation.com/plc-allen-bradley/enviar-datos-excel-desde-un-plc-allen-bradley/ esta es la pagina el codigo q viene es este pero no se por q no jala me sale error en laa sub de calculte es es codigo

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.adress = "$B$2" Then Workshee_Calculate

End Sub

Private Sub Workshee_Calculate()
ActiveSheet.[D5000].End(x1Up).Offset(1).Resize(1, 1) = [B2].Value ----------Aqui  me sale error 

si me pudieras ayudar de verda q te lo agradeceria mucho gracias

End Sub

Regresando a la manera en cómo envías la información a la celda A1.

Dices que la envías con un programa que se llama rslingx. ¿Correcto?

Cuando llega la información a la celda A1, ¿el cursor de excel está dentro de la celda A1 o la celda A1 ya se actualizó y el cursos está fuera de la celda A1?

Buenas tardes dante si el programa se llama rslinx y si pongo el mauss adentro y afuera y es lo mismo mira un ejemplo as de cuenta que tengo un contador programado en mi plc mando la info por rslinx ala celda A2 y si veo que el contador aumenta en la celda pero lo que quiero es que cuando el contador sea 1 y cambie a 2 el 1 se guarde cuando cambie a dos y así sucesivamente no se si me esplique t agradecería tu ayuda la otra si me funciona pero pongo el maus en la casilla y tengo que darle enter y lo que quiero es lo otro gracias espero tu respuesta

H o l a:

Como te comenté desde un principio, tu programa rslinx es el que debe enviar el enter, es decir, tu programa debe enviar el dato y además el enter.

La macro funciona si se envía el enter.

Te anexo la macro para que haga esto:

"

A1 ejemplo los datos de la celda A1 es un valor digamos 122 después mando 123 el 122 se guarde

"

Private Sub Worksheet_Change(ByVal Target As Range)
'Por.Dante Amor
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("A1")) Is Nothing Then
        If [A2] <> "" Then
            Range("B2:D2").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
            Cells(2, "B") = [A2]
            Cells(2, "C") = Now
        End If
        [A2] = [A1]
        [A1].Select
    End If
End Sub

Si no puedes hacer que envíe el enter, entonces quita la macro anterior y prueba con esta macro:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Por.Dante Amor
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("A1")) Is Nothing Then
        If [A2] <> "" Then
            Range("B2:D2").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
            Cells(2, "B") = [A2]
            Cells(2, "C") = Now
        End If
        [A2] = [A1]
        [A2].Select
    End If
End Sub

Sal u dos

Hola dante buenas tardes perdon pero sali fuera por eso no pude contestarte mira si jala tu programa perfecto pero no puedo enviar el enter por rslinx nomas puros datos no se si se pueda aser esto mira as de cuenta que mando el dato ejemplo al A1 un valor x del plc y yo puedo mandarle un cero o un uno a otra celda cualquiera cuando escane mi orden q en A1se mire el numero escaneado pero le puedo enviar un bit a otra celda ejemplo no se si se pueda conparar q cuando le mande a celda A3 =1 corra el programita y grabe cuando sea 0 no grabe nada no se si me esplique pero no puedo enviar el enter directamente no se si me esplico de verda q me as ayudado mucho t lo agradeceria mucho geacias dante

H o l a:

Haber si entiendo bien, ¿puedes enviar el dato A1 y después enviar un número a la celda A3?

Si puedes hacer lo anterior, es como si le dieras enter a la celda A1, una vez que te sales de la celda A1 para actualizar la celda A3, excel reconoce el evento change en la celda A1 y entonces se ejecuta la macro.

Simplemente prueba eso que me comentas y debe funcionar.

Buenas noches dante si mira así es si puedo mandar los datos a la celda A1 veo los datos que llegan a la celda A1 y después le puedo mandar un un cero o un uno 0/1 ala celda A3 o ala que yo quiera pero no se como aserle para que me grabe los datos cuando yo le mande ya sea un 1 ala celda A3 lo que te comentaba es que en la página que te mande en uno de los mensaje es para que te dieras una idea de lo que quiero si no es mucha molestia claro allí viene más o menos lo que quiero viene el código pero lo escribo igual pero no me jala no se porque gracias espero tu respuesta suerte

Vamos con algo más sencillo, porque no entiendo qué es lo que sí puedes hacer y qué es lo que no puedes hacer.

En un archivo nuevo pon esta macro en los eventos de la hoja1:

Private Sub Worksheet_Change(ByVal Target As Range)
    MsgBox "Modifiqué la celda " & Target.Address
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

Ahora haz la secuencia con tu scaner, pon tu dato en la celda A1 y luego envía un 1 a la celda A3 y dime qué es lo que pasa.

También dime paso a paso qué haces:

1. Selecciono la celda A1

2. Presiono el botón del scaner

3. ¿Luego?

4 y después?

Podrías ser detallada explicando cada uno de los pasos que realizas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas