Problème macro avec conditions

Bonjour à tous,

Je suis nouveau dans le langage VBA et je fais face à un petit problème.

Voici la situation :

J'ai une feuille excel qui va reprendre dans une colonne (la colonne D) un ensemble de phrase reprenant un descriptif (exemple : Fenêtre carrée 1, Fenêtre carrée 2, Fenêtre ronde 1, etc...). J'aimerais créer une macro qui me permet de remplir la ligne entière (pas uniquement la cellule) en gris lorsque apparaît le mot "carrée" dans cette colonne D qu'elle que soit le modèle de fenêtre carrée (1, 2, 3 etc...) et ça jusque la fin de la colonne qui va à peu près jusque D200.

Je ne sais pas si c'est possible mais ça me permettrait de gagner du temps lorsque je dois faire un tri dans ma feuille Excel.

Merci d'avance,

Vincool.

Bonjour et bienvenue sur le forum,

Un simple "Mise en forme conditionnelle" ne suffit-elle pas pour ce faire ? Il te faut obligatoirement une macro ?

Si la MFC suffit, voici la formule de la Mise en forme conditionnelle suivante :

=NB.SI($D1;"*carrée*")

Sélectionne toutes les colonnes concernées (de 1 à 200 par exemple) et met cette formule dans la Mise en forme conditionnelle et un remplissage de couleur que tu veux.

Merci pour ta réponse,

Le problème c'est que je remet déjà tout en forme grâce à une macro et j'aurai voulu intégrer cette étape de remplissage des lignes dans la macro que j'utilise pour la mise en forme de ma feuille. Aussi, la mise en forme conditionnelle va me permettre de remplir uniquement la cellule (si je ne me trompe pas) alors que je voudrai que toute la ligne de la cellule de la colonne D soit remplie en gris si le mot "carrée" apparaît.

Je ne sais pas si je suis clair dans mes explications ?

Re,

As-tu testé la solution ? La formule couvre bien toutes les colonnes sélectionnées si tu les sélectionnes avant de faire la MFC. Si tu tiens absolument une solution par macro, voici une des solutions, mais adapte-la par rapport à la réalité de ton cas, car je ne connais pas la disposition de ton tableau.

Sub MFC()
    Dim plage As Range
    'colonne 1 à 200 à adpater selon le cas réel
    Set plage = Columns("A:GR")
    With plage
        .FormatConditions.Add Type:=xlExpression, Formula1:="=NB.SI($D1;""*carrée*"")"
        .FormatConditions(1).Interior.ColorIndex = 15
    End With
End Sub

C'est exactement ce que je voulais ! J'ai juste fais quelques modifications mais ça fonctionne

Encore un grand merci !

Rechercher des sujets similaires à "probleme macro conditions"