Bonjour,
Je suis totalement novice en VBA, cependant, je cherche à importer la fin d'un fichier txt à partir d'une expression spécifique et comme le fichier txt est régulièrement mis à jour, il faudrait que l'importation se mette à jour à chaque clic ou à intervalle régulier.
En pratique, mon fichier txt ressemble à :
"22/02/2011
G1
blabla
blabla
G2
blabla
G3
blabla
blabla
23/02/2011
blabla
G1
blabla
blabla
G2
blabla
G3
blabla
blabla
25/02/2011
blabla
blabla
25/02/2011
blabla
blabla
G1
blabla
G2
blabla
G3
blabla
28/02/2011
blabla
blabla"
Je cherche à importer le texte à partir de la dernière occurrence de G3. Au final, dans ma feuille excel, je cherche à n'importer dans ce cas que le 5 dernières lignes, soit
"G3
blabla
28/02/2011
blabla
blabla"
Si quelqun à la solution, je suis preneur. En attendant, en parcourant le forum et quelques autres sites, j'ai trouvé une solution qui pourrait me convenir consistant à importer les X derniers caractères du fichier txt :
Dim file_name As String
Dim file_length As Long
Dim fnum As Integer
Dim bytes() As Byte
Dim txt As String
Dim i As Integer
file_name = ThisWorkbook.Path & "C:\fichier.txt"
file_length = FileLen(file_name)
f2 = 150 'nb de caractères à lire en fin de fichier
f1 = file_length - f2
fnum = FreeFile
Open file_name For Binary As #fnum
ReDim bytes(1 To f2)
Get #fnum, f1 + 1, bytes
Close fnum
' Transfert dans un tableau
For i = 1 To f2
txt = txt & Chr(Format$(bytes(i)))
Next i
a = Split(txt, Chr(10))
For i = 1 To UBound(a)
MsgBox a(i)
Mais je suis incapable d'adapter cet exemple pour afficher les lignes dans ma feuille excel au lieu de la message box. Je pense que cela ne doit pas être trop compliqué mais pour moi c'est mission impossible
Merci, pour votre aide
-panpan
EXCEL 2002 XP
Je suis totalement novice en VBA, cependant, je cherche à importer la fin d'un fichier txt à partir d'une expression spécifique et comme le fichier txt est régulièrement mis à jour, il faudrait que l'importation se mette à jour à chaque clic ou à intervalle régulier.
En pratique, mon fichier txt ressemble à :
"22/02/2011
G1
blabla
blabla
G2
blabla
G3
blabla
blabla
23/02/2011
blabla
G1
blabla
blabla
G2
blabla
G3
blabla
blabla
25/02/2011
blabla
blabla
25/02/2011
blabla
blabla
G1
blabla
G2
blabla
G3
blabla
28/02/2011
blabla
blabla"
Je cherche à importer le texte à partir de la dernière occurrence de G3. Au final, dans ma feuille excel, je cherche à n'importer dans ce cas que le 5 dernières lignes, soit
"G3
blabla
28/02/2011
blabla
blabla"
Si quelqun à la solution, je suis preneur. En attendant, en parcourant le forum et quelques autres sites, j'ai trouvé une solution qui pourrait me convenir consistant à importer les X derniers caractères du fichier txt :
Dim file_name As String
Dim file_length As Long
Dim fnum As Integer
Dim bytes() As Byte
Dim txt As String
Dim i As Integer
file_name = ThisWorkbook.Path & "C:\fichier.txt"
file_length = FileLen(file_name)
f2 = 150 'nb de caractères à lire en fin de fichier
f1 = file_length - f2
fnum = FreeFile
Open file_name For Binary As #fnum
ReDim bytes(1 To f2)
Get #fnum, f1 + 1, bytes
Close fnum
' Transfert dans un tableau
For i = 1 To f2
txt = txt & Chr(Format$(bytes(i)))
Next i
a = Split(txt, Chr(10))
For i = 1 To UBound(a)
MsgBox a(i)
Mais je suis incapable d'adapter cet exemple pour afficher les lignes dans ma feuille excel au lieu de la message box. Je pense que cela ne doit pas être trop compliqué mais pour moi c'est mission impossible
Merci, pour votre aide
-panpan
EXCEL 2002 XP