Listbox et fichier texte

Résolu
JLV1975 Messages postés 55 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 15 septembre 2006 - 11 oct. 2005 à 14:37
JLV1975 Messages postés 55 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 15 septembre 2006 - 12 oct. 2005 à 10:30
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

crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
11 oct. 2005 à 18:50
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
jpleroisse Messages postés 1788 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 11 mars 2006 27
11 oct. 2005 à 14:55
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
JLV1975 Messages postés 55 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 15 septembre 2006
11 oct. 2005 à 15:25
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
jpleroisse Messages postés 1788 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 11 mars 2006 27
11 oct. 2005 à 16:03
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
JLV1975 Messages postés 55 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 15 septembre 2006
12 oct. 2005 à 10:30
Cela marche parfaitement, merci.

J-L
0
Rejoignez-nous