Saltar al contenido

¿Cómo copio los datos de una hoja a otra hoja mediante una condición?

publicado

Hola buenas tardes.

Quisiera y me pudieran orientar como puedo copiar datos de una hoja a otra del mismo libro con una macro tomando como condición códigos iguales que están en ambas hojas en la columna A, es decir que revise ambas hojas y si hay códigos iguales tome el valor de la columna F de la hoja2 y la sume al valor que tiene la columna G de la hoja1.

Gracias por su atención

.

Comparar.xls

Featured Replies

publicado

@jose lopez contreras, usa el siguiente código

Sub comparar_copiar()
Dim uFo&, uFd&
Dim celda As Range
Dim cod As String, cod1 As Range

uFo = Range("A" & Rows.Count).End(xlUp).Row

For Each celda In Range("A2:A" & uFo)
    cod = celda
    With Sheets("Hoja2")
        uFd = .Range("A" & Rows.Count).End(xlUp).Row
        Set cod1 = .Range("A2:A" & uFd).Find(cod, lookat:=xlWhole)
            If Not cod1 Is Nothing Then
                .Cells(cod1.Row, "F") = .Cells(cod1.Row, "F") + celda.Offset(, 6)
            End If
    End With
Next celda

End Sub

 

publicado
  • Autor

@Haplox

Hola buenos días, te comento no jalo la macro, no efectúa ningún trabajo pero Observo que en ninguna linea se menciona la hoja1 ya que es ahí donde se pegara la información tomada de la hoja2. ¿sera por eso o estoy realizando algo mal?

publicado
En 4/11/2018 at 11:39 , Haplox dijo:

.Cells(cod1.Row, "F") = .Cells(cod1.Row, "F") + celda.Offset(, 6)

@jose lopez contreras, solo tienes que modificar esa línea, porque entendí al reves (añadir en Hoja2)

publicado
Hace 3 horas, jose lopez contreras dijo:

modifique asi pero no pasa nada.

Te dejo el código
 

Sub comparar_copiar()
Dim uFo&, uFd&
Dim celda As Range
Dim cod As String, cod1 As Range

uFd = Range("A" & Rows.Count).End(xlUp).Row
uFo = Sheets("Hoja2").Range("A" & Rows.Count).End(xlUp).Row

With Sheets("Hoja2")
    For Each celda In .Range("A2:A" & uFo)
        cod = celda
        Set cod1 = Sheets("Hoja1").Range("A2:A" & uFd).Find(cod, lookat:=xlWhole)
            If Not cod1 Is Nothing Then
                Sheets("Hoja1").Cells(cod1.Row, "G") = Sheets("Hoja1").Cells(cod1.Row, "G") + celda.Offset(, 5)
            End If
    Next celda
End With

End Sub

 

  • Silvia bloqueó este tema

Archivado

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