Mettre un fichier CSV dans une variable tableau [Résolu]

quantum59 7 Messages postés mercredi 26 novembre 2008Date d'inscription 11 décembre 2008 Dernière intervention - 4 déc. 2008 à 19:27 - Dernière réponse : PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention
- 4 déc. 2008 à 20:06
Bonjour,

j'ai cherché sur le net et je n'ai pas trouvé de réponse à mon problème.

Je cherche le moyen de mettre un fichier CSV en mémoire dans un tableau a 2 dimensions (une variable).

Le but est de pouvoir faire appel à cette fonction en appelant sa colonne et sa ligne de cette manière valeur = tableau_CSV(x,y)

merci beaucoup pour votre aide
Afficher la suite 

Votre réponse

1 réponse

Meilleure réponse
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 4 déc. 2008 à 20:06
3
Merci
<hr />
'    RÉCUPÉRER LE CONTENU D'UN FICHIER SOUS FORME D'UN TABLEAU
MULTIDIMENSIONNEL D'APRÈS DES COLONNES STRUCTURÉES
'    http://www.codyx.org/snippet_recuperer-contenu-fichier-sous-forme-tableau-multidimensionnel-apres_508.aspx#1598
'    Posté par [ PCPT ] le 04/12/2007
<hr />




Function 
GetColumnsFromFile(sPath 
As String
,
Optional
sSepar
As String
=
";"

As String
()

    Dim FF As Integer, sBuffer As String, aLines() As String, aCols() As String, i As Long, j As Long, aRes() As String
    FF = FreeFile: i = 0: j = 0
    
    On Error Resume Next
    Open sPath For Input As #FF
        sBuffer = Input(LOF(FF), #FF)
    Close #FF
    If Not (Err.Number = 0) Then Exit Function
    
    aLines = Split(sBuffer, vbNewLine)
    For i = 0 To UBound(aLines)
        aCols = Split(aLines(i), sSepar)
        If i = 0 Then ReDim aRes(UBound(aLines), UBound(aCols))
        For j = 0 To UBound(aCols)
            aRes(i, j) = aCols(j)
        Next j
    Next i
    
    GetColumnsFromFile = aRes
    Erase aLines: Erase aCols: Erase aRes
End Function
'
'   EXEMPLE
Private Sub Form_Load()
    Dim aFile() As String
    Dim i%, j%
    aFile = GetColumnsFromFile("C:\aaa.txt", "[MYSEP]")
    For i = 0 To UBound(aFile)
        For j = 0 To UBound(aFile, 2)
            Debug.Print aFile(i, j)
        Next j
        Debug.Print "===================" & vbCrLf
    Next i
End Sub

Merci PCPT 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 126 internautes ce mois-ci

Commenter la réponse de PCPT

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.