Dividir datos de una hoja en Excel en varios libros

Dante, te escribo porque con base a tus respuestas he solucionado dudas y me he ayudado con Macros en VBA Excel, tengo un problema, tengo una base de 120mil registros toda en un hoja de Excel y requiero convertirla en 22mil archivos de Excel podrías ayudarme la base tiene estos campos

TipoId

NumeroId

NombreApo

TipoIdAfl

NumeroIdAfl

NombreAfl

Fecha

Valor

El campo por el que debo dividir es NumeroId y que así mismo ese sea el nombre del libro que crea en Excel

1 Respuesta

Respuesta
2

Te anexo la macro. Antes de ejecutar la macro crea una hoja y la nombras como "temp"

Actualiza en la macro estos datos "Hoja1", "B" y "F"

    Set h1 = Sheets("Hoja1")    'hoja con datos
    ucol = "F"                  'ultima columna de datos

En la parte inferior izquierda de excel aparecerá un contador para revisar el número de archivos a generar.

Sub Separar_Datos()
'----
'Por.Dante Amor
'----
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Application.StatusBar = False
    Set l1 = ThisWorkbook
    Set h1 = Sheets("Hoja1")    'hoja con datos
    Set h2 = Sheets("temp")     'hoja temporal
    col = "B"                   'columna clave
    ucol = "F"                  'ultima columna de datos
    n = Columns(col).Column
    h2.Cells.Clear
    If h1.AutoFilterMode Then h1.AutoFilterMode = False
    h1.Columns(col).Copy h2.[A1]
    u2 = h2.Range("A" & Rows.Count).End(xlUp).Row
    h2.Range("A1:A" & u2).RemoveDuplicates Columns:=1, Header:=xlYes
    '
    ruta = l1.Path & "\"
    u2 = h2.Range("A" & Rows.Count).End(xlUp).Row
    For i = 2 To u2
        Application.StatusBar = "Generando archivo " & i - 1 & " de " & u2 - 1
        clave = h2.Cells(i, "A")
        If h1.AutoFilterMode Then h1.AutoFilterMode = False
        u1 = h1.Range("A" & Rows.Count).End(xlUp).Row
        h1.Range("A1:" & ucol & u1).AutoFilter Field:=n, Criteria1:=clave
        Set l2 = Workbooks.Add
        Set h21 = l2.Sheets(1)
        h1.Range("A1:" & ucol & u1).Copy h21.[A1]
        l2.SaveAs ruta & clave
        l2.Close
    Next
    If h1.AutoFilterMode Then h1.AutoFilterMode = False
    Application.StatusBar = False
    MsgBox "Archivos creados"
End Sub

.

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

.

Avísame cualquier duda

.

¡Gracias! En serio que mil gracias es más que excelente Dante como todo tu trabajo, me salvas de unas increíbles,,, espero tener tu nivel algún día sigo trabajando para ello hasta una próxima oportunidad!!! 

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas