Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

  • Initiateur de la discussion Initiateur de la discussion LOlif
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

L

LOlif

Guest
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 ?
 
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
 
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 😎
 

Pièces jointes

Dernière édition:
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:
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.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…