Récupérer le mot deux lignes en dessous celui cherché

LOlif

XLDnaute Nouveau
Bonjour,

Cela fait 4h que je cherche sans succès.

Mon VB doit rechercher un mot dans un fichier txt et je dois récupérer, non pas ce mot, mais un mot situé quatre lignes en dessous celui-ci et après une chaine de caractère spécifique.
J'arrive bien à rechercher le mot mais je ne sais pas comment récupérer le mot en dessous

Extrait du fichier TXT :


>SHOW OA INFO --> mot recherché

Onboard Administrator #1 information:

Product Name : BladeSystem c7000 DDR2 Onboard Administrator with KVM​

Part Number : 456204-B21 --> mot à extraire​



Pourriez-vous m'aider ?
 

LOlif

XLDnaute Nouveau
Re : Récupérer le mot deux lignes en dessous celui cherché

Oups pas de problèmes.

Par contre je n'arrive pas à joindre un fichier txt je met donc un bout ci-dessous

Code:
Fichier txt : E:\User\Bureau\TestVBA\putty_10.155.119.11.txt

FIPS Mode is Off

>SHOW OA INFO

Onboard Administrator #1 information:
	Product Name  : BladeSystem c7000 DDR2 Onboard Administrator with KVM
	Part Number   : 456204-B21
	Spare Part No.: 503826-001
	Serial Number : OB97BP6324    
	UUID          : 09OB97BP6324


Et le script écrit :

Code:
Sub Macro_Date_et_societe()

Dim renseignements_societe As String, renseignements_date As Date
    If Range("B2") = "" Then
        renseignements.SHOW 'pour demander le nom de la société en UserForm
    Else
        MsgBox "Audit de la société " & Range("B1") & " en date du " & Range("B2") 'Afficher la société + date de l'audit si déjà audité
    End If

Dim strLine As String
Open "E:\User\Bureau\TestVBA\putty_10.155.119.11.txt" For Input As #1 'ouvrir le fichier txt
 
Do While Not EOF(1)
 
    Line Input #1, strLine
    If InStr(1, strLine, "SHOW OA INFO") > 0 Then 'trouver la ligne SHOW OA INFO
    ' ?? se positionner 4 lignes après dernière "Part Number   :"
        Range("B3") = strLine 'Ecrire dans la cellule B3
        Close #1
        Exit Sub
    End If
 
Loop
 
Close #1


End Sub
 

gilbert_RGI

XLDnaute Barbatruc
Re : Récupérer le mot deux lignes en dessous celui cherché

un truc dans le genre
VB:
Sub extraittxt()
    Dim Id     As String
    Dim valeur As String
    Dim n      As Integer
    Dim i      As Long                                               'Integer Depassement de capacité à 37323
    n = FreeFile

    Open "C:\Users\######\Documents\test_texte.txt" For Input As #n
    Sheets(1).Cells.ClearContents
    Do While Not EOF(1)                                              'EOF = End Of File permet de lire le fichier jusqu'à la fin
        Input #n, Id
        i = i + 1
        With Sheets(1)

            .Cells(1, 1).Value = "Valeurs"
            If CStr(Left(Id, 15)) = "Part Number   :" Then
                .Cells(2, 1) = Right(Id, Len(Id) - Len("Part Number   :"))
            End If
        End With
    Loop
    'On ferme la connection au fichier
    Close #n
End Sub
pour les données du fichier txt ci dessous il faut adapter le répertoire où il se trouve dans le code :cool:
 

Pièces jointes

  • test_texte.zip
    354 bytes · Affichages: 13
Dernière édition:

Marc L

XLDnaute Occasionnel
Re : Récupérer le mot deux lignes en dessous celui cherché


Une des deux solutions proposées avant 18h sur un autre forum :

VB:
Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 25/05/2015 par The Noob Simulator
'
    Application.ScreenUpdating = False
    Workbooks.Open "D:\Tests4Noobs\putty_10.155.119.11.txt"
    Set V = ActiveSheet.Columns(1).Find(">SHOW OA INFO")
    If Not V Is Nothing Then V = Split(V(5, 2).Value, " : ")
    ActiveWorkbook.Close
    If IsArray(V) Then If UBound(V) Then MsgBox V(1)
End Sub
_______________________________________________________________________________
Merci de cliquer sur J'aime ce post en bas à gauche de chaque message ayant aidé …

_______________________________________________________________________________
Je suis Charlie - Je suis Bardo
 
Dernière édition:

LOlif

XLDnaute Nouveau
Re : Récupérer le mot deux lignes en dessous celui cherché

Bonsoir,

Effectivement j'ai posté dans un autre forum, cela m'a permis d'avoir différentes réponses.
Voici ce que j'ai retenu comme réponse :
Code:
Application.ScreenUpdating = False

    Workbooks.Open "X:\FautBienCommencerQlqPars\putty_10.155.119.11.txt"
    Set OA_SN = ActiveSheet.Columns(1).Find(">SHOW OA INFO")
    If Not OA_SN Is Nothing Then OA_SN = Split(OA_SN(5, 2), " : ")
    
    ActiveWorkbook.Close
    Range("B3") = OA_SN(1)

Merci et bonne soirée.
 

Statistiques des forums

Discussions
312 765
Messages
2 091 899
Membres
105 093
dernier inscrit
jeremxl