Recherche dans un fichier LOG la dernière occurrence d'une phrase

Bonjour à tous,

j'ai encore besoin de votre aide.

Dans mon fichier Excel je génère un fichier de LOG des connexions et sortie du fichier. Pas de soucis j'ai trouvé le code sur le site.

En pièce joint un exemple du fichier de LOG

Maintenant j'aimerais trouver dans le fichier de LOG, la dernière ligne contenant exactement la phrase "Login - Ouverture du fichier en contrôle" dans le but de récupérer dans une variable, la date, l'heure et le nom de la personne utilisant le fichier.

J'avais trouvé un code mais il s'arrêtait à la première occurrence. Mais moi il me faut l’occurrence située le plus bas dans le fichier LOG.

En vous remerciant d'avance,

bonjour,

une proposition via VBA

Sub aargh()
    With Application.FileDialog(msoFileDialogFilePicker)
        .AllowMultiSelect = False
        .Filters.Clear
        .Filters.Add "fichier log", "*.txt*"
        If .Show = True Then
               fname = .SelectedItems(1)
        Else
            MsgBox "no files selected"
        End If
    End With
    Set fso = CreateObject("scripting.filesystemobject")
    Set ts = fso.OpenTextFile(fname)
    Do While ts.AtEndOfStream <> True
        r = ts.ReadLine
        If InStr(1, r, "Login", vbTextCompare) <> 0 Then lastlogin = r
    Loop
    ts.Close
    MsgBox lastlogin
End Sub

Niquel, ca à l'air si simple pour certain ;-)

Merci beaucoup pour ton aide

Bonjour,

Type Log
    Creer As Date
    A As String
    Par As String
End Type

Sub test()
Dim us As Log
us = DernierUser
MsgBox "Dernière utilisation de l'application" & vbCrLf & "Par : " & us.Par & vbCrLf & "Le : " & us.Creer & " a : " & us.A, vbInformation
End Sub
Function DernierUser() As Log
Dim F, i As Integer
F = OuvrirFichier(ThisWorkbook.Path & "\fichierlog-login.txt")
If TypeName(F) = "Boolean" Then MsgBox "pas trouvé": Exit Function
F = Split(F, vbCrLf)
For i = UBound(F) To LBound(F) Step -1
    If CBool(InStr(F(i), "Login - Ouverture")) Then
        DernierUser.Creer = CDate(Split(F(i), ";")(0))
        DernierUser.A = CStr(Split(F(i), ";")(1))
        DernierUser.Par = CStr(Split(F(i), ";")(2))
        Exit Function
    End If
Next

End Function
Public Function OuvrirFichier(Fichier)
Dim FSO As Object
Set FSO = CreateObject("Scripting.FileSystemObject")
If FSO.FileExists(Fichier) Then
Set File = FSO.OpenTextFile(Fichier)
OuvrirFichier = File.ReadAll
File.Close
Else
    OuvrirFichier = False
End If
End Function
Rechercher des sujets similaires à "recherche fichier log derniere occurrence phrase"