Macro Mise en forme conditionnelle

Bonjour,

J'ai un fichier qui sort d'une analyse d'un logiciel "***.xlsx" (il change de nom chaque fois que je l'exporte)

Ce fichier est très grand 6000 lignes environ.

Je dois analyser des réponses sur la colonne "M" ("OK" , "NO OK" "ECHEC")

J'ai créé un fichier principal qui se nomme "Verifier.xlsm"

Dans celui ci j'ai fait une macro:

1) Un bouton qui me permet d'importer un des fichiers "résultat" choisi par moi même. pour l'exemple on va dire "Result01.xlsx"

2) Il importe la Feuil1 "Result01.xlsx" dans mon fichier macro "Verifier.xlsm".

Résultat dans mon fichier "Verifier.xlsm" j'ai deux onglets celui de ma macro et la Feuille de résultat.

Je voudrais dans ma macro lui mettre des conditions de manière à mettre une couleur différente suivant les résultats .

Je pensais faire un truc du genre

Select Case rechercher

Case "OK": Color = RGB(200, 0, 0)

Case "NO OK" : Color = RGB(100, 0, 0)

Case "ECHEC" : Color = RGB(50, 0, 0)

End Select

Mais voilà je n'ai aucune idée sur comment faire .

Pourriez vous m'aider ?

Cordialement

Eric

Bonsoir,

sans grosse conception, ceci devrait marcher :

Sub LouReeD()
    Dim LigneM As Long
    LigneM = 1 ' ici le numéro de ligne de la première cellule testée
    With Sheets(2) ' avec la deuxième feuille du classeur où se trouve la macro
        Do Until .Cells(LigneM, 13).Value = "" ' on entre dans une boucle jusqu'à ce que la valeur de la cellule soit égale à rien
            If .Cells(LigneM, 13).Value = "OK" Then
                .Cells(LigneM, 13).Color.Interior = RGB(0, 256, 0) ' couleur si OK
            ElseIf .Cells(LigneM, 13).Value = "NON OK" Then
                .Cells(LigneM, 13).Color.Interior = RGB(0, 256, 0) ' couleur si NON OK
            ElseIf .Cells(LigneM, 13).Value = "ECHEC" Then
                .Cells(LigneM, 13).Color.Interior = RGB(0, 256, 0) ' couleur si ECHEC
            Else
                .Cells(LigneM, 13).Color.Interior = RGB(0, 256, 0) ' couleur si rien de tout ça
            End If
            LigneM = LigneM + 1 ' on change de ligne
        Loop ' on boucle
    End With ' on a fini de travailler avec la deuxième feuille du classeur
End Sub

@ bientôt

LouReeD

Bonsoir,

ci-dessous exemple de code pour un format conditionnel

    Dim formatcond As FormatCondition

    With ActiveSheet.Columns("M").SpecialCells(xlCellTypeConstants)
        Set formatcond = .FormatConditions.Add(Type:=xlCellValue, Operator:=xlEqual, Formula1:="=""OK""")
        formatcond.Interior.Color = RGB(200, 0, 0)
        Set formatcond = .FormatConditions.Add(Type:=xlCellValue, Operator:=xlEqual, Formula1:="=""NO OK""")
        formatcond.Interior.Color = RGB(100, 0, 0)
        Set formatcond = .FormatConditions.Add(Type:=xlCellValue, Operator:=xlEqual, Formula1:="=""ECHEC""")
        formatcond.Interior.Color = RGB(50, 0, 0)
    End With

Merci LouReeD pour ton aide,

Je viens de tester, ca ne marche pas peut être à cause du nom de l'onglet ? dans ma macro je le renomme

num = nbfeuille + 1

Sheets(nbfeuille).Name = "Fiche n° " & (num)

Mais pas grave je vais analyser ta formule , elle n'est pas mauvaise à mes yeux

Encore merci

Merci aussi à thev Ton script fonctionne parfaitement

Un grand merci à vous deux

Bonsoir,

en fait plusieurs erreurs dans mon code :

inversion Color et Interior !

Non en fait c'est la seule ! Ha non ! 256 dans RGB, il y a bien 256 "nuances" pour chaque couleur mais ils vont de 0 à 255 !

Ensuite le problème du nom de la feuille n'a pas lieu car j'utilise son index, il suffit de vérifier qu'elle est bien en deuxième place, mais vu que votre classeur avant l'importation n'a qu'une feuille, elle devrait être en deuxième place, non ?

Ci joint le fichier avec le code corrigé et un bouton pour le lancer qui lui est sur la première feuille ainsi que son code :

18mfc.xlsm (16.34 Ko)

@bientôt

LouReeD

Merci à toi, je n'ai pas eu le temps d'y regarder plus que ça mais à priori il ne fonctionne pas chez moi. Enfin dans mon fichier

Rechercher des sujets similaires à "macro mise forme conditionnelle"