Como importar un archivo con más de 1 millón de registros

para Dante Amor...

Se que el archivo a importar tiene más de 1 millón de registros.. Como puedo hacer para que al llegar al tope de filas de la hoja ... ¿continué en la siguiente hoja?

Respuesta
2

H o l a:

¿Qué tipo de archivo se va a cargar?

Puedes enviarme una muestra de 100 registros del archivo a cargar y en otro archivo de excel me muestras cómo quieres que esos 100 registros queden importados.

Mi correo [email protected]

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

¡Gracias! Muchas gracias por la respuesta tan rápida... el archivo pesa más de 1 GB... como te digo tiene más de 1 millón de registros... por correo no pasaría.

1 Gb no es mucho, además solamente te estoy pidiendo una muestra de cómo es el archivo.

No me has dicho qué tipo de archivo es.

Y también me envías un archivo de excel para ver cómo quieres la carga.

Entonces me envías 2 archivos

Un archivo con los registros a cargar

Otro archivo de excel con los registros cargados.

¡Gracias! 

Excelente ,... muchas gracias

Anexo la macro para cargar más de un millón de registros en diferentes hojas.

'
Sub principal()
'Por.Dante Amor
    '1 CARGAR EL ARCHIVO FUENTE
    Dim RutaArchivo As String
    Dim LineofText As Variant
    Dim archivo As Variant
    '
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    '
    ChDir ThisWorkbook.Path & "\"
    RutaArchivo = Application.GetOpenFilename(Title:="TRAER ARCHIVO", _
                            filefilter:="Todos los Archivos (*.*), *.*")
    If RutaArchivo = "Falso" Or RutaArchivo = "" Then End
    If Dir(RutaArchivo) = "" Then MsgBox "El archivo no existe": Exit Sub
    '
    'contar número de registros
    Set FSO = CreateObject("Scripting.FileSystemObject")
    Set file = FSO.OpenTextFile(RutaArchivo, 1)
    file.ReadAll
    fin = file.Line
    '
    Label1 = "Procesando Datos ..."
    con = 1
    rep = 10
    '
    Open RutaArchivo For Binary Access Read As #1
    j = 1
    Sheets.Add after:=Sheets(Sheets.Count)
    '
    Do While Not EOF(1)
        If j = 101 Then
            Procesar
            Sheets.Add after:=Sheets(Sheets.Count)
            j = 1
        End If
        Line Input #1, LineofText
        Cells(j, "A") = LineofText
        j = j + 1
        If (con * 100) / fin >= rep Then
            UpdateProgressBar rep
            rep = rep + 10
        End If
        con = con + 1
    Loop
    Close #1
    Procesar
    Label1 = "Proceso Terminado"
    Application.ScreenUpdating = True
End Sub

sal u dos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas