Com puedo copiar datos a otra hoja según una categoría

Tengo un excel con la primera hoja donde aparecen gastos con un tipo de glosa, lo que hice fue dividir las glosas por hoja, quisiera saber como puedo hacer que al filtrar la información general por glosa, se copie a las hojas de "detalle".

Mi idea era crear un botón que las vaya copiando pero tiene que hacerse un filtro que sea dependiendo del tipo de gasto que sea

1 respuesta

Respuesta
1

Envíame un nuevo archivo y me explicas lo siguiente

1. En cuál hoja está la información.

2. Con 3 ejemplos me dices qué datos (celdas) hay que copiar y exactamente en qué hoja y en qué celdas se va a pegar.

3. La información después de pasarla a la hoja detalle hay que borrarla

4. Si la información NO se borra, entonces hay que verificar si ya fue pasada a la hoja detalle, ¿cómo verifico si ya se pasó?

5. La información que se pega, dónde va, ¿al final de la información que ya existe en la hoja?

Envíame tus comentarios en ese orden.

Mi correo [email protected]

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

He respondido las preguntas en un mail, muchas gracias!

Te anexo la macro

Sub Copiar_Datos()
'Por.Dante Amor
    Set h1 = Sheets("Catv Electronica")
    For i = 2 To h1.Range("B" & Rows.Count).End(xlUp).Row
        If h1.Cells(i, "B") <> "" Then
            If h1.Cells(i, "Z") <> "copiado" Then
                hoja = h1.Cells(i, "E")
                Fact = h1.Cells(i, "B")
                existe = False
                For Each h In Sheets
                    If LCase(h.Name) = LCase(hoja) Then
                        existe = True
                    End If
                Next
                If existe = False Then
                    h1.Cells(i, "Z") = "no existe hoja"
                Else
                    Set b = Sheets(hoja).Columns("B").Find(Fact, lookat:=xlWhole)
                    If Not b Is Nothing Then
                        h1.Cells(i, "Z") = "ya existe la factura"
                    Else
                        u = Sheets(hoja).Range("B" & Rows.Count).End(xlUp).Row + 1
                        h1.Range("A" & i & ":I" & i).Copy Sheets(hoja).Range("A" & u)
                        h1.Cells(i, "Z") = "copiado"
                    End If
                End If
            End If
        Else
            h1.Cells(i, "Z") = "falta factura"
        End If
    Next
    MsgBox "Datos copiados"
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas