Lecture de fichier avec séparateur via un formatage excel

Contenu du snippet

Cette macro excel ouvre un fichier ascii limitée avec séparateur virgule (qui peut être changé) via une feuille excel.
Il créé automatiquement les colonnes avec les infos et fais un redimensionnement automatique.
Nb : le formatage du fichier texte doit être identique à chaque ligne ...
Ex : Ligne 1 : nom, adresse, Code postal.
Ligne 2 : iginse, 15 rue des champs, 54400.
Ligne 3 : jean,30rue de la bonne poire, 57000.
On retrouvera dans la feuille excel 3 colonnes avec nom, adresse, Code Postal en tête et le reste en info en dessous de chaque colonne.

Source / Exemple :


Private Sub Workbook_Open()

    '
    'Selection de la feuille
    Worksheets("Feuil1").Select
    
    '
    Dim sUser As String
    Dim sfile As String
    
    '
    sPath = ActiveWorkbook.Path
    
    '
    Cells.Select
    Selection.Delete Shift:=xlUp
     
    'Ouverture du fichier texte
    sfile = sPath + "\file_extract.txt" 'fichier txt à ouvrir...
                                        'sfile doit être codé selon l'utilité.
    Open sfile For Input As #1
    
    '
    Do While Not EOF(1)     ' Effectue la boucle jusqu'à la fin du fichier texte.
                            ' On lit le fichier ligne par ligne.
        '
        I = I + 1
        J = 0
        iCol = 0
        
        '
        Line Input #1, sTring1
        iLongueur = Len(sTring1)
        
        '
        Do 'Par ligne de texte dans le fichier, on sépare l'info à chaque virgule.
            J = J + 1
            sCaract = Mid(sTring1, J, 1)
            
            '
            If sCaract = "," Then ' le séparateur peut être changé.
                iCol = iCol + 1
                Cells(I, iCol).Value = sMot
                sMot = ""
            Else
                sMot = sMot + sCaract
            End If
        Loop Until J > iLongueur
    
    Loop
    
    '
    Cells.Select
    Selection.Columns.AutoFit

    '
    Close #1
End Sub

A voir également

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.