Excel VBA - Renvoyer le numéro de ligne d'une cellule contenant un texte

Bonjour à tous,

J'ai un problème sur une macro, j'édite un fichier journalier et je souhaiterai qu'une ligne comprenant le mot "exploitation" soit surligné en rouge de la colonne A à la colonne E.

Voici le code actuel en place :

Cells.Find(What:="exploitation", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
Range("A2949:F2949").Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 255
.TintAndShade = 0
.PatternTintAndShade = 0
End With

Mon problème est que le mot "exploitation" peut être en ligne 2949 un jour, comme en ligne 3050 le lendemain,....

Avec ce code, seul la ligne 2949 sera surligné en rouge malgré le changement de position....

Est-ce que vous auriez une solution pour connaître la position variante de cette cellule et que cette position variante soit surlignée ?

Merci par avance de votre aide,

Belle fin de journée à tous,

Rylaugone

Bonjour

je ferais de la manière suivante : dans un premier temps tester si la bonne ligne a été trouvée :

Set adresse = [A:A].Find(What:="exploitation", LookAt:=xlPart)
ligne = adresse.Row
MsgBox ligne

Puis pour la mettre en évidence :

with Range(cells(ligne,"A"),cells(ligne,"F").Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 255
.TintAndShade = 0
.PatternTintAndShade = 0
End With

Mais pas testé

si besoin de plus d'aide pour que l'on puisse travaillé sur du concret, sans avoir de données confidentielles dedans

Fred

bonjour le fil,

et une MFC ?

Bonjour,
Une proposition VBA.
Il faudra peut-être envisager de supprimer le format couleur !
Cdlt.

Public Sub test()
Dim rw
    With ActiveSheet
        rw = Application.Match("exploitation", .Columns(5), 0)
        If Not IsError(rw) Then
            .Cells(rw, 1).Resize(, 6).Interior.Color = 255
        End If
    End With
End Sub

Bonjour à tous et merci pour vos réponses rapides !!

J'ai essayé la réponse de FRED2406 en premier, j'ai un peu adapté ton code, le rendu donne ça et tout fonctionne !! Merci beaucoup :) (c'était en colonne B que le mot exploitation se trouvait mais je ne l'ai pas précisé ;) )

Sheets("Feuill1").Select
Set adresse = [B:B].Find(What:="exploitation", LookAt:=xlPart)
Dim ligneexploitation As String
ligneexploitation = adresse.Row
With Range(Cells(ligneexploitation, "A"), Cells(ligneexploitation, "F")).Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 255
.TintAndShade = 0
.PatternTintAndShade = 0
End With

Merci BsAlv pour ta réponse, en effet je n'avais pas pensé à faire une MFC, mais ça aurait pu très bien fonctionné :)

Jean-Eric, je n'ai pas encore essayé ta réponse mais je la garde sous le coude pour une prochaine occasion !

Merci encore,

Bon appétit, bonne journée et bon week-end !!

Rylaugone

Rechercher des sujets similaires à "vba renvoyer numero ligne contenant texte"