Listbox et fichier texte

Résolu
Signaler
Messages postés
55
Date d'inscription
jeudi 16 octobre 2003
Statut
Membre
Dernière intervention
15 septembre 2006
-
Messages postés
55
Date d'inscription
jeudi 16 octobre 2003
Statut
Membre
Dernière intervention
15 septembre 2006
-
Salut,

je souhaite inserer dans une listbox, du texte provenant d'un fichier .txt dont les données sont séparées par des ";" .
Comment puis je faire?

J-L

5 réponses

Messages postés
4172
Date d'inscription
mercredi 30 juillet 2003
Statut
Membre
Dernière intervention
9 juin 2006
28
Le code fourni par jpleroisse est OK pour Excel. Si tu es en VB6, je te proposes ceci :

Dim Buffer as string,fn as long, V() as string, i as long

' Cherche 1er numéro de ficheir dispo
fn = freefile
' Ouvre le fichier en lecture
Open "Fichier.txt" for input as #fn
' Récupère le contenu du fichier dans le buffer
buffer = input(lof(fn),fn)
' Ferme le fichier
close #fn
' Eclate le buffer dans le tableau V() avec ";" comme séparateur
v = split(buffer,";")
' Vide la listbox
listbox1.clear
' Pour chaque item du tableau V
for i = lbound(v) to ubound(v)
' Ajoute cet item à la listbox
listbox1.Additem v(i)
next

Christophe
3
Messages postés
1788
Date d'inscription
mardi 7 novembre 2000
Statut
Membre
Dernière intervention
11 mars 2006
27
Bonjour,

Tu places sur Ton UserForm un contrôle CommandButton et une ListBox et tu remplaces MonFichier.txt par ton fichier.



Private Sub CommandButton1_Click()

Dim ImpRng As Range

Dim FileName As String

Dim r As Long, c As Integer

Dim txt As String, Char As String * 1

Dim Data

Dim i As Integer

Set ImpRng = ActiveCell

On Error Resume Next

FileName = "C:\MonFichier.txt"

Open FileName For Input As #1

If Err <> 0 Then

MsgBox "Introuvable : " & FileName, vbCritical, "ERREUR"

Exit Sub

End If

r = 0

c = 0

txt = ""

Application.ScreenUpdating = False

Do Until EOF(1)

Line Input #1, Data

For i = 1 To Len(Data)

Char = Mid(Data, i, 1)

If Char = "," Then

ActiveCell.Offset(r, c) = txt

c = c + 1

txt = ""

ElseIf i = Len(Data) Then

If Char <> Chr(34) Then txt = txt & Char

ListBox1.AddItem txt

txt = ""

ElseIf Char <> Chr(34) Then

txt = txt & Char

End If

Next i

c = 0

r = r + 1

Loop

Close #1

Application.ScreenUpdating = True



End Sub



jpleroisse



Si une réponse vous convient, cliquez Réponse Acceptée.
0
Messages postés
55
Date d'inscription
jeudi 16 octobre 2003
Statut
Membre
Dernière intervention
15 septembre 2006

J'ai un problème avec "Dim ImpRng As Range"
message d'erreur :"Type défini par l'utilisateur non défini"
J-L
0
Messages postés
1788
Date d'inscription
mardi 7 novembre 2000
Statut
Membre
Dernière intervention
11 mars 2006
27
Re bonjour,

Si tu as retappés le code regarde bien si tu n'as fais d'erreurs, car je viens de réessayer chez moi et celà marche très bien.

jpleroisse
0
Messages postés
55
Date d'inscription
jeudi 16 octobre 2003
Statut
Membre
Dernière intervention
15 septembre 2006

Cela marche parfaitement, merci.

J-L
0