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 ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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.
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" <saunier@paris7.jussieu.fr> a écrit dans le message de
news: e62azKAeFHA.2128@TK2MSFTNGP14.phx.gbl...
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 ?
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 ?