Aide pour code VBA

13forum.xlsm (29.69 Ko)

bonjour tout le monde,

le fichier joint me permet d'effectuer des recherches et modifications dans des fichier texte.

tout fonctionne très bien mais je voudrai le modifier pour que a chaque résultat trouvé cela me ressorte la ligne chercher + la ligne suivante suivante.

sans aucun critère. uniquement le fait qu'elle soit la suivante du résultat cherché.

je pense que la modification doit être apporté dans le: moduleImport et le code LIRECHEMIN

merci d'avance de votre aide.

bonjour à tous...

je me permet de vous relancez .. au cas ou ...

merci d'avance

Bonjour,

Euh j'ai peut -être pas compris ta demande mais dans ton programme tu initialises les lignes justement et tu les incrémentes à chaque lecture donc la ligne sur laquelle la phrase a été trouvée tu l'as; c'est "ligne" et la prochaine c'est ligne +1 il suffit après de les inscrire dans la cellule que tu souhaites

@ptitpanda,

je te remercie pour ton aide mais non, ta suggestion ne fonctionne pas.

je vais essayer d'expliquer différemment..

Sub lire(chemin As String)

Dim fso, SourceFolder, SubFolder
Dim fichier$, contenu$, ligne As Long, flag As Boolean, j%
Set fso = CreateObject("Scripting.FileSystemObject")
Set SourceFolder = fso.GetFolder(chemin)

fichier = Dir(chemin)
Do While fichier <> ""
    Open chemin & fichier For Input As #1
        ligne = 0
        Do While Not EOF(1)
            Line Input #1, contenu
            ligne = ligne + 1
            flag = False
            For j = 1 To UBound(tblin)
                If contenu Like "*" & tblin(j, 1) & "*" Then flag = True
            Next
            For j = 1 To UBound(tblout)
                If contenu Like "*" & tblout(j, 1) & "*" Then flag = False
            Next
            If flag Then
                Cells(i, 1) = fichier
                Cells(i, 2) = ligne
                Cells(i, 3) = contenu
                Cells(i, 7) = chemin
                i = Range("A" & Rows.Count).End(xlUp).Row + 1
            End If
        Loop
    Close #1
    fichier = Dir
Loop

For Each SubFolder In SourceFolder.subfolders
    lire SubFolder.Path & "\"
Next SubFolder

End Sub

ce code permet d'analyser des fichiers texte. en fonction de certains critères.

lorsque une ligne du texte correspond aux critères, elle est renvoyé dans un tableau .

jusque la tout va bien et fonctionne très bien.

ma demande est que, je souhaite que la ligne du texte qui suit, soit elle aussi remonte dans le tableau de résultat

Ah okkk effectivement je n'avais pas compris la demande

Tu pourrais faire de cette façon; avec le bout de code entre les **** :

Sub lire(chemin As String)

Dim fso, SourceFolder, SubFolder
Dim fichier$, contenu$, ligne As Long, flag As Boolean, j%
Set fso = CreateObject("Scripting.FileSystemObject")
Set SourceFolder = fso.GetFolder(chemin)

fichier = Dir(chemin)
Do While fichier <> ""
    Open chemin & fichier For Input As #1
        ligne = 0
        Do While Not EOF(1)
            Line Input #1, contenu
            ligne = ligne + 1

            '************************
            'tu insères ce bout de code ici et comme ton flag est toujours à "TRUE" car il vient de trouver la ligne
            If flag Then
                'recuperation de la ligne sans faire aucun test
                'là où tu le souhaites
                'ex: cells(i,2)=ligne
                ' cells(i,3)=contenu
                'et tu retrouveras la ligne suivante rapatriée sous la ligne qui a été cherchée dans ton tableau
            End If
            '************************

            flag = False
            For j = 1 To UBound(tblin)
                If contenu Like "*" & tblin(j, 1) & "*" Then flag = True
            Next
            For j = 1 To UBound(tblout)
                If contenu Like "*" & tblout(j, 1) & "*" Then flag = False
            Next
            If flag Then
                Cells(i, 1) = fichier
                Cells(i, 2) = ligne
                Cells(i, 3) = contenu
                Cells(i, 7) = chemin
                i = Range("A" & Rows.Count).End(xlUp).Row + 1
            End If
        Loop
    Close #1
    fichier = Dir
Loop

For Each SubFolder In SourceFolder.subfolders
    lire SubFolder.Path & "\"
Next SubFolder

End Sub

Cela devrait fonctionner ... bien que je n'ai pas fait de test

A+

@ptitpanda

j'essaye ca demain...

merci

Rechercher des sujets similaires à "aide code vba"