Lecture de fichier avec séparateur via un formatage excel

Soyez le premier à donner votre avis sur cette source.

Snippet vu 10 187 fois - Téléchargée 37 fois

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

Ajouter un commentaire

Commentaires

macropolo
Messages postés
1
Date d'inscription
lundi 4 février 2008
Statut
Membre
Dernière intervention
19 février 2010
-
changer simplement .txt en csv et ouvrir en excel
Jujufouq
Messages postés
254
Date d'inscription
jeudi 27 décembre 2001
Statut
Membre
Dernière intervention
5 mars 2006
-
Oui, comme l'a dit Renfield... mais c'est bien.
Renfield
Messages postés
17280
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
21 juillet 2019
57 -
oui, tu pourrais utiliser la fonction Split, plutôt que de parcourir la chaine caractere par caractere, ce qui peut être assez long.......

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.