Ouvrir fichier 2Go via Excel ?

Fermé
Fivel51 Messages postés 462 Date d'inscription dimanche 21 mai 2017 Statut Membre Dernière intervention 20 août 2023 - 10 mai 2020 à 19:28
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 - 10 mai 2020 à 20:42
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
A voir également:

2 réponses

M-12 Messages postés 1331 Date d'inscription lundi 22 septembre 2008 Statut Membre Dernière intervention 8 avril 2023 284
10 mai 2020 à 20:23
Bonjour,

A mon avis, ton fichier est corrompu
Un CSV de 2Go ???
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 778
Modifié le 10 mai 2020 à 20:53
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