Como llevar datos de una planilla que se actualiza a otra hoja.

Necesito llevar datos de una planilla base que se llena automáticamente según código que se introduzca a otra hoja del mismo libro.

Lo que requiero es que desde una hoja, "Ant", se tome un código, se lleve a la hoja "Base" a la celda f4, con esto se llenará la planilla. Una vez llena la planilla tome los datos de algunas celdas y los lleve a la hoja “Validar” en las posiciones indicadas. Posteriormente vuelva a la hoja "Ant" y si existe otro código lo tome, vuelva a la hoja Base, lo ingrese y vuelva a llevarse los datos a la hoja “Validar” y así sucesivamente hasta que no encuentre más códigos en la hoja "Ant".

En la hoja "Ant" a partir de la celda A2 se ingresarán los códigos que se desean calcular para posteriormente llevar a la hoja “Validar”. (Desde la celda A2 hacia abajo).

En la hoja “Validar” se llevarán los valores de la hoja “Ant” calculados en las posiciones que se indican a partir de la celda A2:

Hoja Ant

Se llevan las siguientes celdas a la hoja Validar en el orden indicado:

1 J57

2 O20

3 K37

4 L37+M37

5 I54

6 N54

Hoja Validar

En la hoja validar quedarán según orden tomado y siempre con el código del dato que se lleva a la hoja.

La solución debiera ser con una macro.

Cada vez que se inicie una consulta se deben borrar los datos ya ingresados a la hoja "Validar" para ingresar los nuevos datos.

1 Respuesta

Respuesta
1

H o l a:

Según veo en la imagen en la hoja "validar" en la columna "A" va el código, en la columna "B" va el valor que se toma de la hoja "Ant", pero en la columna "C" no sé de dónde se toma.

Te anexo la macro para que la pruebes.

Sub LlevarDatos()
'Por.Dante Amor
    Set h1 = Sheets("Ant")
    Set h2 = Sheets("Base")
    Set h3 = Sheets("Validar")
    '
    u3 = h3.Range("A" & Rows.Count).End(xlUp).Row + 1
    h3.Range("A2:D" & u3).ClearContents
    '
    j = 2
    For i = 2 To h1.Range("A" & Rows.Count).End(xlUp).Row
        h2.[F4] = h1.Cells(i, "A")
        h3.Cells(j, "A") = h1.Cells(i, "A")
        h3.Cells(j, "B") = h1.[J57]
        j = j + 1
        h3.Cells(j, "A") = h1.Cells(i, "A")
        h3.Cells(j, "B") = h1.[O20]
        j = j + 1
        h3.Cells(j, "A") = h1.Cells(i, "A")
        h3.Cells(j, "B") = h1.[K37]
        j = j + 1
        h3.Cells(j, "A") = h1.Cells(i, "A")
        h3.Cells(j, "B") = h1.[L37] - h1.[M37]
        j = j + 1
        h3.Cells(j, "A") = h1.Cells(i, "A")
        h3.Cells(j, "B") = h1.[I54]
        j = j + 1
        h3.Cells(j, "A") = h1.Cells(i, "A")
        h3.Cells(j, "B") = h1.[N54]
        j = j + 1
    Next
    MsgBox "Fin"
End Sub

':)
S a l u d o s . D a n t e   A m o r
':) Si es lo que necesitas. Recuerda valorar la respuesta. G r a c i a s.

Estimado

Los datos que se llevan a la hoja "Validar" están en la hoja "Base". La hoja "Ant" sólo se utiliza para llevar el código a la hoja "Base", donde se calculan los valores que deben llevarse a la hoja "Validar".

La columna C de la hoja "Validar" son nombres que debe llevar para identificar el dato que dejo ahí. Si el dato que traigo de la hoja "Base" es el j57, entonces en la columna C2 va una "A", si el dato que traigo de la hoja "Base" es el o20, entonces en la columna C3 va una "B" y así sucesivamente.

Asumo que me equivoqué en el pantallazo que puse en la descripción.

Donde dice: "Viene de la hoja Ant celda j57" 

Debe decir: "Viene de la hoja Base celda j57"-----> La descripción es información, no va en la macro.

 H o   l a:

Mejor envíame tu archivo y ahí me explicas con ejemplos dónde están los datos y a dónde los quieres poner. Utiliza colores y comentarios para las explicaciones.

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “Mario Ruiz” y el título de esta pregunta.

Dante

Le envié el archivo a su correo.

Agradecido.

Te anexo la macro actualizada

Sub LlevarDatos()
'Por.Dante Amor
    Set h1 = Sheets("Ant")
    Set h2 = Sheets("Base")
    Set h3 = Sheets("Validar")
    '
    u3 = h3.Range("A" & Rows.Count).End(xlUp).Row + 1
    h3.Range("A2:D" & u3).ClearContents
    '
    j = 2
    For i = 2 To h1.Range("A" & Rows.Count).End(xlUp).Row
        codigo = h1.Cells(i, "A")
        h2.[F4] = codigo
        h3.Cells(j, "A") = codigo
        h3.Cells(j, "B") = h2.[J57]
        h3.Cells(j, "C") = "A"
        j = j + 1
        h3.Cells(j, "A") = codigo
        h3.Cells(j, "B") = h2.[O20]
        h3.Cells(j, "C") = "B"
        j = j + 1
        h3.Cells(j, "A") = codigo
        h3.Cells(j, "B") = h2.[K37]
        h3.Cells(j, "C") = "C"
        j = j + 1
        h3.Cells(j, "A") = codigo
        h3.Cells(j, "B") = h2.[L37] + h2.[M37]
        h3.Cells(j, "C") = "D"
        j = j + 1
        h3.Cells(j, "A") = codigo
        h3.Cells(j, "B") = h2.[I54]
        h3.Cells(j, "C") = "E"
        j = j + 1
        h3.Cells(j, "A") = codigo
        h3.Cells(j, "B") = h2.[N54]
        h3.Cells(j, "C") = "F"
        j = j + 1
    Next
    MsgBox "Fin"
End Sub

' : )
'S aludos. Dante Amor. R ecuerda valorar la respuesta. G racias
' : )

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas