Fórmula copiar fila según condición.

He encontrado un articulo de otro usuario de la página todo expertos pidiendo ayuda para un macro y usted ha respondido con su email.

¿Me preguntaba si me podría ayudar?

Tengo un documento de pedidos con 6 hojas.

Hoja 1 - mediciones

Hoja 2 - presupuestos

Hoja 3 - pendientes

Hoja 4 - termnados

Hoja 5 - sin cobrar y

hoja 6 - 

Pagados

Quiero :

- Si en meidiciones! C2 me aparezca "si" - me copie toda la fila en hoja presupuestos!

- Si en presupuestos! D2 me aparece "si" - me copie la fila en pendientes!

- Si en presupuestos! G2 me aparece "terminado" - me copie la fila en terminados!

- Si presupuestos! O2 es diferente de "pagado" - me copie la fila en sin cobrar!

- Si en presupuestos! O2 me aparece "pagado" - me copie la fila en pagados!

¿Cómo puedo hacerlo?

1 Respuesta

Respuesta
1

H o l a 

te paso la macro 

Sub copiar()
Set h1 = Sheets("Mediciones")
Set h2 = Sheets("Presupuestos")
Set h3 = Sheets("Pendientes")
Set h4 = Sheets("Terminados")
Set h5 = Sheets("Sin cobrar")
Set h6 = Sheets("Pagados")
For i = 2 To h1.Range("C" & Rows.Count).End(xlUp).Row
    If h1.Cells(i, "C") = "SI" Then
        u2 = h2.Range("A" & Rows.Count).End(xlUp).Row + 1
        h1.Rows(i).Copy h2.Range("A" & u2)
    End If
Next i
For i = 2 To h2.Range("D" & Rows.Count).End(xlUp).Row
    If h2.Cells(i, "D") = "SI" Then
            u3 = h3.Range("A" & Rows.Count).End(xlUp).Row + 1
            h2.Rows(i).Copy h3.Range("A" & u3)
            u3 = u3 + 1
        ElseIf h2.Cells(i, "G") = "terminado" Then
            u4 = h4.Range("A" & Rows.Count).End(xlUp).Row + 1
            h2.Rows(i).Copy h4.Range("A" & u4)
            u4 = u4 + 1
        ElseIf h2.Cells(i, "O") <> "pagado" Then
            u5 = h5.Range("A" & Rows.Count).End(xlUp).Row + 1
            h2.Rows(i).Copy h5.Range("A" & u5)
            u5 = u5 + 1
        ElseIf h2.Cells(i, "O") = "pagado" Then
            u6 = h6.Range("A" & Rows.Count).End(xlUp).Row + 1
            h2.Rows(i).Copy h6.Range("A" & u6)
            u6 = u6 + 1
    End If
Next i
MsgBox "fin"
End Sub

Para finalizar eliges 2 opciones Excelente o bueno saludos! 

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas