Macro permettant de mettre une ligne en rouge si "Non Conforme"

Bonjour à tous,

J'essaie actuellement de créer une macro permettant de mettre en évidence les non conformités sur un fichier. Cette macro servira pour différentes extraction d'une base de données, la simple mise en forme conditionnelle ne fonctionne pas sur le fichier lorsque je change d'extraction.

J'ai utilisé l'enregistrement de macro de sorte que celle-ci intègre une mise en forme conditionnelle sur toutes les lignes des colonnes A à U, selon la fonction suivante :

=OU($M1="Non Conforme";$N1="Non Conforme";$O1="Non Conforme")

La macro fonctionne pour le fichier sur lequel je l'ai enregistré, cependant lorsque j'effectue une nouvelle extraction de ma base de données, des lignes se colorent en rouge alors qu'aucune des colonnes M, N ou O ne contient le texte "Non Conforme".

J'ai essayé de trouver un sujet similaire sur le forum mais cela ne m'a pas vraiment aidé, je ne m'y connais pas suffisamment en macro Excel...

Merci d'avance, de bien vouloir m'expliquer comment m'y prendre,

Bonne journée.

Bonjour et

Tu nous dis qu'une "simple" MFC ne fonctionne pas ... mais tu enregistres une macro ... qui applique une MFC !?

Quelque chose doit m'échapper

Ta nouvelle extraction se fait chaque fois dans un nouveau classeur ? Mais où est stockée ta macro, alors ?

Bonjour et

Tu nous dis qu'une "simple" MFC ne fonctionne pas ... mais tu enregistres une macro ... qui applique une MFC !?

Quelque chose doit m'échapper

Ta nouvelle extraction se fait chaque fois dans un nouveau classeur ? Mais où est stockée ta macro, alors ?

Bonjour,

Pardon je me suis mal exprimée, la mise en forme conditionnelle fonctionne mais je voudrais éviter de devoir faire la manipulation pour l'appliquer lorsque je change d'extraction. En effet, ma macro intègre aussi un filtre que je n'ai pas cité dans mon message précédent.

Alors je stocke ma macro dans un fichier vierge que je copierais pour les nouvelles extractions...

Re-bonjour,

Alors je stocke ma macro dans un fichier vierge que je copierais pour les nouvelles extractions...

Vois si l'utilisation d'un modèle de classeur ne te faciliterait pas la tâche (extension .xltm)

Une nouvelle "extraction" représente combien de lignes, en moyenne ? Une fois ces données extraites, leur statut "Non-conforme" ne changera plus ?

Ce qui permettrait sans doute d'avancer, serait que tu déposes ici un classeur avec ta macro et, dans une feuille, les données telles qu'elles sont extraites (supprime les données qui seraient confidentielles et ne laisse qu'une cinquantaine de lignes)

Une nouvelle "extraction" représente combien de lignes, en moyenne ? Une fois ces données extraites, leur statut "Non-conforme" ne changera plus ?

Ce qui permettrait sans doute d'avancer, serait que tu déposes ici un classeur avec ta macro et, dans une feuille, les données telles qu'elles sont extraites (supprime les données qui seraient confidentielles et ne laisse qu'une cinquantaine de lignes)

L'extraction dont j'envoie l'extrait contenait 2013 lignes, mais le nombre de lignes peut-être plus élevées. Une fois extraites les données ne changeront plus sur le fichier de destination.

Voilà un exemple d'extraction de la base de données :

Et voici le fichier contenant ma macro :

11macro.xlsm (24.12 Ko)

Merci

Bon, alors j'ai ouvert tes 2 fichiers, copié dans le fichier stats, les valeurs de A2 à Uxx, collé ces données en A2 de ton classeur avec macro et ... ce sont bien les lignes avec -au moins- une mention "non conforme" qui sont colorées en rouge !? (la MFC y est même en double )

Qu'est-ce qui ne fonctionne pas chez toi ?

Bon, alors j'ai ouvert tes 2 fichiers, copié dans le fichier stats, les valeurs de A2 à Uxx, collé ces données en A2 de ton classeur avec macro et ... ce sont bien les lignes avec -au moins- une mention "non conforme" qui sont colorées en rouge !? (la MFC y est même en double )

Qu'est-ce qui ne fonctionne pas chez toi ?

Alors oui en effet, j'ai refait la macro sur un nouveau fichier pour vous le fournir en format vierge et après avoir lu votre message je l'ai donc testé et ça a l'air de fonctionner cette fois ci.... Désolée, mon problème était que lorsque je testais avec une extraction différente la mise en forme conditionnelle ne respectait pas les conditions choisies, des lignes apparaissaient en rouge alors que tout était conforme, mais là avec ce nouveau fichier ça a l'air de fonctionner correctement, je m'y suis pourtant prise la même manière

Tant mieux si tout fonctionne

Juste parce que j'y avais travaillé en attendant, le code suivant applique les couleurs sans MFC et filtre comme tu le souhaites.

Il peut remplacer le code de ton Module8 ... mais tu en feras ce que bon te semble ! (Attention tout de même au filtre dans ton code qui n'ira jamais au-delà de la ligne 2013)

Sub Emballages()
'
' Emballages Macro
'
Application.ScreenUpdating = False
With Sheets("Suivi Controles Qualité à Récep")
    For lig = 3 To .Cells(Rows.Count, 13).End(xlUp).Row 'si pas de cellules vides en fin de col M !?
    toto = .Cells(lig, 14)
        If .Cells(lig, 13) = "Non Conforme" Or .Cells(lig, 14) = "Non Conforme" Or .Cells(lig, 15) = "Non Conforme" Then _
            .Cells(lig, 1).Resize(1, 21).Interior.ColorIndex = 7
    Next lig
 .[A2].CurrentRegion.AutoFilter Field:=12, Criteria1:=Array( _
        "Autres Emballages", "Barquette / Bol", "Consommables / EPI", _
        "Emballages Imprimés", "Films Non Imprimés"), Operator:=xlFilterValues
End With
Application.ScreenUpdating = True

End Sub
Rechercher des sujets similaires à "macro permettant mettre ligne rouge conforme"