Saltar al contenido

Buscar valores en una hoja y devolver en otra


Recommended Posts

publicado

Buenas tardes,

 

¿Me podéis decir si esto lo puede hacer Excel? Tengo una hoja con datos en tres columnas, 2 numéricas y una de texto, el problema que tengo es que estos datos los cojo de una aplicación diferente y se van modificando diariamente, necesito actualizar los datos de estas columnas sin perder las que no se hayan modificado, solo cambiar los que coinciden con el texto y primera columna y añadir si no existe añadiendo los tres campos. 

Lo he intentado en otra hoja del mismo libro pero no soy capaz.

No se si me he explicado, bien.

Un saludo a todos,

Paco

publicado

Posible solución

Private Sub CommandButton1_Click(): Application.ScreenUpdating = False

    With Hoja1
        .Range("A2:C" & .Range("A" & Rows.Count).End(xlUp).Row).Copy _
        Destination:=Hoja2.Cells(.Range("A" & Rows.Count).End(xlUp).Row + 1, 1)
    End With
    
    With Hoja2
        .Cells.Sort Key1:=.Columns(1), Key2:=.Columns(2), Header:=xlYes
        .UsedRange.RemoveDuplicates Columns:=Array(1, 2, 3), Header:=xlYes
        For X = .Range("A1").End(xlDown).Row To 2 Step -1
            If .Range("A" & X) = .Range("A" & X - 1) And _
                .Range("B" & X) = .Range("B" & X - 1) Then
                .Range("C" & X - 1) = .Range("C" & X)
                .Rows(X).Delete
            End If
        Next X
    End With
End Sub

 

image.gif

publicado

Hola buenos días,

Muchas gracias, tengo un pequeño problemilla, no me había dado cuenta que hay alguna repetición  en la fila y es si se podría agrupar con la misma solución sumar los que tengan mismo código  y mismo nombre, el resto está perfecto, muchas gracias:

19 EUGENIO 1153,32
19 EUGENIO 947,17
22 ANGEL  708,13
22 ANGEL  2674,4
   
publicado

Cambia el código por este

Private Sub CommandButton1_Click(): Application.ScreenUpdating = False

    With Hoja1
        .Range("A2:C" & .Range("A" & Rows.Count).End(xlUp).Row).Copy _
        Destination:=Hoja2.Cells(.Range("A" & Rows.Count).End(xlUp).Row + 1, 1)
    End With
    
    With Hoja2
        .Cells.Sort Key1:=.Columns(1), Key2:=.Columns(2), Header:=xlYes
        .UsedRange.RemoveDuplicates Columns:=Array(1, 2, 3), Header:=xlYes
        For X = .Range("A1").End(xlDown).Row To 2 Step -1
            If .Range("A" & X) = .Range("A" & X - 1) And _
                .Range("B" & X) = .Range("B" & X - 1) Then
                .Range("C" & X - 1) = .Range("C" & X) + .Range("C" & X - 1)
                .Rows(X).Delete
            End If
        Next X
    End With
End Sub

 

publicado
hace 15 horas, JSDJSD dijo:

Cambia el código por este

Private Sub CommandButton1_Click(): Application.ScreenUpdating = False

    With Hoja1
        .Range("A2:C" & .Range("A" & Rows.Count).End(xlUp).Row).Copy _
        Destination:=Hoja2.Cells(.Range("A" & Rows.Count).End(xlUp).Row + 1, 1)
    End With
    
    With Hoja2
        .Cells.Sort Key1:=.Columns(1), Key2:=.Columns(2), Header:=xlYes
        .UsedRange.RemoveDuplicates Columns:=Array(1, 2, 3), Header:=xlYes
        For X = .Range("A1").End(xlDown).Row To 2 Step -1
            If .Range("A" & X) = .Range("A" & X - 1) And _
                .Range("B" & X) = .Range("B" & X - 1) Then
                .Range("C" & X - 1) = .Range("C" & X) + .Range("C" & X - 1)
                .Rows(X).Delete
            End If
        Next X
    End With
End Sub

 

Hola otra vez,

acabo de coger datos nuevos y veo que me pasa los datos sumando a los que hay y lo que necesito son los datos que trae de la aplicación ponerlos en la hoja actualizada, dejando los códigos, nombres y los importes.

Tabla datos externos, estos son los datos que deberían aparecer en la actualizada

 

 DOMINGO  256
1  ALVARO  500
1  LUIS  1167,98

 

Tabla actualizada

1  ALVARO  1000
1  DOMINGO  512
1  LUIS    2335,96

 

Así es como queda ahora

publicado

En tu última consulta lo entendí de esa manera su el archivo con el antes y el después para que no ocurra esto

publicado
hace 23 horas, JSDJSD dijo:

Es decir, en vez de sustituir una cantidad por la otra sumar las dos verdad ?

Pues no lo leí yo bien y está bien claro.  La respuesta correcta es, NO

Lo siento muchísimo...

publicado
Hace 1 hora, JSDJSD dijo:

Pues lo dicho sube tu archivo con el antes y el despues

Lo he dejado con la última actualización tuya, he modificado los importes,  en la hoja actualizada tienen repetidos códigos y nombres, esto lo hace correctamente, elimina uno y hace la suma y en los demás suma al pasar los datos, ahora la tabla actualizado tienen todos importe 1 y la de actualizar 10, al pasar los datos todos tienen 11

 

HOJA CALCULO.xlsm

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.