Récupération du n° de ligne après avoir fait une recherche

anne29

XLDnaute Nouveau
Bonjour,
Je voudrais automatiser une mise en forme de tableau. Lorsque je recherche une expression, dans une feuille, je voudrais supprimer la ligne sur laquelle l'expression a été trouvée, ainsi que les 3 lignes du dessous et les 3 lignes du dessus.
Merci
 

Pierrot93

XLDnaute Barbatruc
Re : Récupération du n° de ligne après avoir fait une recherche

Bonjour Anne

regarde le code ci-dessous, pour une recherche en colonne A :

Code:
Sub test()
Dim x As Range
Set x = Range("A:A").Find("test", , xlValues, xlWhole, , , False)
If Not x Is Nothing Then Rows(x.Row - 3 & ":" & x.Row + 3).Delete
End Sub

bon après midi
@+
 

anne29

XLDnaute Nouveau
Re : Récupération du n° de ligne après avoir fait une recherche

Merci Pierrot,
ça fonctionne correctement pour une expression trouvée mais il peut y avoir plusieurs fois la même expression dans la colonne, et à chaque fois que l'expression est trouvée, il faut supprimer les lignes.
Comment puis-je faire une boucle alors que des lignes vides existent ?
Merci
 

Pierrot93

XLDnaute Barbatruc
Re : Récupération du n° de ligne après avoir fait une recherche

Re,

regarde dans l'aide vba, du coté de la méthode "findnext", si tu rencontres des difficultés reviens avec un petit fichier montrant le modèle de donnée à traiter...

@+
 

anne29

XLDnaute Nouveau
Re : Récupération du n° de ligne après avoir fait une recherche

Bonsoir,
Je suis allée dans l'aide vba mais j'ai un message d'erreur
"Impossible de lire la propriété Findnext de la classe Range"
Je joins le fichier pour plus de clarté
Merci
 

Pierrot93

XLDnaute Barbatruc
Re : Récupération du n° de ligne après avoir fait une recherche

Bonjour Anne

essaye ainsi :

Code:
Option Explicit
Sub test()
Dim x As Range
With Worksheets(1).Range("A:A")
    Set x = .Find("autorite imputee", , xlValues, xlWhole, , , False)
    If Not x Is Nothing Then
        Do
            Rows(x.Row - 3 & ":" & x.Row + 8).Delete
            Set x = .FindNext()
        Loop While Not x Is Nothing
    End If
End With
End Sub

Au niveau du "findnext" j'ai enlevé l'argument précisant la cellule à partir de laquelle devait débuter la recherche(le x qui se trouvait entre parenthèses). En effet dans la ligne du dessus, tu supprimes cette cellule, ce qui provoque le message d'erreur...

Attention d'autre part, dans lefichier que tu as fourni, la première valeur trouvée est en ligne 3, ce qui provoque un message d'erreur lors de la suppression des lignes, puisque 3 - 3 = 0 et que la ligne 0 n'existe pas...

bonne journée
@+
 

anne29

XLDnaute Nouveau
Re : Récupération du n° de ligne après avoir fait une recherche

Bonjour Pierrot,
Merci ça fonctionne, en fait pour la première recherche, je renomme la chaine de caractère car je garde la première ligne d'entête de colonne.
Merci beaucoup et bonne journée
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 206
Messages
2 086 203
Membres
103 157
dernier inscrit
youma