Saltar al contenido

Recommended Posts

publicado

Buena tardes. Tengo una duda, se podrá separar los datos de una hoja en varias hojas siguiendo un criterio. Por ejemplo, tengo una base de datos de miles de trabajadores (filas), con muchísimos datos (columnas) y que son de diferentes empresas, lo que quiero saber es si se puede separar todos esos trabajadores dependiendo de la empresa a la que pertenecen de manera automatizada sin tener que estar filtrando y copiando los datos que necesito. Aquí subo un ejemplo de lo que necesito, gracias de antemano por su respuesta.

Modelo 1.xlsx

publicado

Preguntas:

  • ¿Las hojas ya existen o hay que crearlas?
  • Si ya existen, ¿Hay que sustituir la información o hay que añadirla a la existente?

Quedo a la espera.

publicado
hace 16 minutos , Antoni dijo:

Preguntas:

  • ¿Las hojas ya existen o hay que crearlas?
  • Si ya existen, ¿Hay que sustituir la información o hay que añadirla a la existente?

Quedo a la espera.

Buenas tardes, gracias por la respuesta. Las hojas no existen, de preferencia que se creen automáticamente.

publicado
Private Sub CommandButton1_Click(): Application.ScreenUpdating = False
    With Hoja1
        .Range("G:G").AdvancedFilter 2, , .Range("A3"), 1
        For x = 4 To .Range("A" & Rows.Count).End(xlUp).Row
            empresa = Cells(x, 1)
            With Hoja1.Range("C2").CurrentRegion
                .AutoFilter 5, empresa
                ActiveWorkbook.Sheets.Add After:=Worksheets(Worksheets.Count)
                ActiveSheet.Name = empresa
                .SpecialCells(12).Copy Sheets(empresa).Range("A1")
                .AutoFilter
            End With
        Next x
        .Columns(1).Clear
    End With
End Sub

 

Modelo 1.xlsm

publicado
hace 4 minutos , JSDJSD dijo:
Private Sub CommandButton1_Click(): Application.ScreenUpdating = False
    With Hoja1
        .Range("G:G").AdvancedFilter 2, , .Range("A3"), 1
        For x = 4 To .Range("A" & Rows.Count).End(xlUp).Row
            empresa = Cells(x, 1)
            With Hoja1.Range("C2").CurrentRegion
                .AutoFilter 5, empresa
                ActiveWorkbook.Sheets.Add After:=Worksheets(Worksheets.Count)
                ActiveSheet.Name = empresa
                .SpecialCells(12).Copy Sheets(empresa).Range("A1")
                .AutoFilter
            End With
        Next x
        .Columns(1).Clear
    End With
End Sub

 

Modelo 1.xlsm 64.49 kB · 0 descargas

¡Perfecto!, con esto me ahorro la solución. 😀

Conéctate para comentar

Podrás dejar un comentario después de conectarte



Conéctate ahora
×
×
  • 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.