Ouvrir fichier 2Go via Excel ?

Bonjour,
je cherche à ouvrir un fichier .csv sur Excel.
A l'heure actuel, ça ouvre Excel quand je double clique dessus, mais ça n'ouvre pas les données du fichier. Le fond est gris, aucune cellule visible.
Sinon j'ai essayé de l'ouvrir avec NotePad++ mais j'ai le msg d'erreur : "file is too big to be opened".
J'ai essayé de l'ouvrir avec OpenOffice mais il me dit qu'il n'a chargé qu'une partie des données.

SVP, comment puis-je ouvrir ce fichier ?
Je vous remercie
Bonne soirée

2 réponses

  1. Bonjour,

    A mon avis, ton fichier est corrompu
    Un CSV de 2Go ???
    0
    1. Bonjour,

      J'ouvre sans problème des csv jusqu'à 11 Go (380 000 lignes et 4 colonnes) grâce à une lecture ligne à ligne via un stream ADODB, par exemple pour un fichier encodé en utf8 :
      ' Établir la référence à ADODB :  Microsoft ActiveX Data Objects 6.1 Library
      Option Explicit
      Option Private Module
      Public Const sepV$ = ","     'séparateur de valeurs
      Public Const sepL$ = vbCrLf  'séparateur de lignes
      Public Const idTxt$ = """"   'identificateur de texte chr(34)
      
      Sub Lire_fichier_csv_UTF8()
      ' Exemple
      Dim wbk As Workbook
      Dim nomComplet As Variant
        nomComplet = Application.GetOpenFilename("Fichiers csv, *.csv")
        If nomComplet = False Then Exit Sub
        Set wbk = mImportCsv.Lire_csv_UTF8_avec_ou_sans_BOM(nomComplet)
      End Sub
      
      Public Function Lire_csv_UTF8_avec_ou_sans_BOM(ByVal nomCompletFichier As String) As Workbook
      ' 16/01/19  Patrice33740 V1-0-00
      ' Pour les valeurs de Stream.Charset, voir dans le registre : HKEY_CLASSES_ROOT\MIME\Database\Charset
      Dim fUtf8 As ADODB.Stream
      Dim wbk As Excel.Workbook
      Dim cel As Range
      Dim txt As String
      Dim lgn As String
      Dim lgr As Long
        Application.ScreenUpdating = False
        Application.Calculation = xlCalculationManual
        Set wbk = Application.Workbooks.Add(xlWBATWorksheet)
        Set cel = wbk.Worksheets(1).Range("A1")
        Set fUtf8 = New Stream
        With fUtf8
          .Charset = "utf-8"                   ' ou pour windows = "ISO-8859-1"
          .Mode = adModeReadWrite
          .Type = adTypeText
          .LineSeparator = adCRLF
          .Open
          .LoadFromFile nomCompletFichier
          Do Until .EOS
            txt = .ReadText(-2)         '-2 = une ligne
            lgn = lgn & txt
            lgr = Len(lgn) - Len(Replace(lgn, idTxt, ""))
            If (lgr Mod 2) = 0 Then
              Call EcrireLigneCSV(lgn, cel)
              Set cel = cel.Offset(1)
              txt = "": lgn = ""
            Else
              lgn = lgn & sepL
            End If
          Loop
          .Close
        End With
        Set fUtf8 = Nothing
        wbk.Worksheets(1).Columns.AutoFit
        wbk.Worksheets(1).Rows.AutoFit
        Application.Calculation = xlCalculationAutomatic
        Application.ScreenUpdating = True
        Set Lire_csv_UTF8_avec_ou_sans_BOM = wbk
      End Function
      
      Private Sub EcrireLigneCSV(lgn As String, cel As Range)
      ' Ecriture d'une ligne d'un fichier au format csv sur une feuille Excel
      ' 06/04/20 Patrice33740 V1-2-01
      Dim txt As String
      Dim frm As String
      Dim lgr As Long
      Dim nbC As Long
      Dim t As Variant
      Dim i As Long
        If lgn = "" Then Exit Sub
        t = Split(lgn, sepV)
        For i = LBound(t) To UBound(t)
          frm = txt & t(i)
          lgr = Len(frm) - Len(Replace(frm, idTxt, ""))
          If (lgr Mod 2) = 0 Then
            If Mid(frm, 1, 1) = idTxt Then
              frm = Mid(frm, 2, Len(frm) - 2)
              frm = Replace(frm, idTxt & idTxt, idTxt)
            End If
            cel.Offset(0, nbC).FormulaLocal = frm
            txt = "": nbC = nbC + 1
          Else
            txt = frm & sepV
          End If
        Next i
      End Sub
       


      J'ai pas de fichier plus gros mais ça devrait fonctionner jusqu'à 1 million de lignes.

      0