OVH Cloud OVH Cloud

Visual B et lecture de fichiers textes

1 réponse
Avatar
Georges Saunier
Bonjour,

J'essaie de créer une macro Excel. Bien que je comprenne les principes de
base de la programmation, je butte sur deux problèmes (qui n'en forme qu'un
seul), ignorant en réalité les instructions à utiliser :
- dans un fichier texte ouvert via une macro excel, comment retourner le
numéro de la ligne dans laquelle on a trouvé une chaîne de caractères ?
- comment rechercher une autre chaîne de caractères dans les X lignes qui
suivent ou précèdent ?

Vos conseils me seraient très utiles.

Cordialement,

G. Saunier.

1 réponse

Avatar
Kamel
Bonjour Georges,

La macro ci dessous te permet de lire un fichier text et de "splitter" son
contenu dans un tableau de chaine de caracteres que tu peux par la suite
parcourir et donc connaître la ligne où se trouve ce que tu recherches ...

Private Sub test()
Dim k As Integer, strBuffer As String, tblLine() As String

k = FreeFile
Open "C:MONFICHIER.TXT" For Binary As #k
strBuffer = String$(LOF(k), vbNullChar)
Get #k, , strBuffer
Close #k

tblLine = Split(strBuffer, vbCrLf): strBuffer = ""
For k = 0 To UBound(tblLine)
MsgBox tblLine(k)
'//traitement de la ligne : tblLine(k)
Next

Erase tblLine
End Sub

Bien sûr c'est une solution parmis d'autres ... en jetant un oeil dans la
fonction Open tu peux aussi lire dans un fichier text ligne par ligne (ce
qui est mieux quand la taille du fichier est enorme).

Quand à savoir si une fonction VB le fait directement, attendons la réponse
des gourous ;)

Kamel


"Georges Saunier" a écrit dans le message de
news:
Bonjour,

J'essaie de créer une macro Excel. Bien que je comprenne les principes de
base de la programmation, je butte sur deux problèmes (qui n'en forme
qu'un seul), ignorant en réalité les instructions à utiliser :
- dans un fichier texte ouvert via une macro excel, comment retourner le
numéro de la ligne dans laquelle on a trouvé une chaîne de caractères ?
- comment rechercher une autre chaîne de caractères dans les X lignes qui
suivent ou précèdent ?

Vos conseils me seraient très utiles.

Cordialement,

G. Saunier.