VBA_ Mise en forme conditionnelle

Bonjour à tous ,

Je reviens vers vous , car j'ai une macro qui doit mettre en forme un tableau en fonction de conditions. Mon soucis est que ces conditions s'appliquent qu'à certaines lignes ( ici lignes 12,31,50,69 et 88). Or , je n'arrive pas à faire fonctionner mon code avec union Range qui ne fonctionne pas ( ou que j'utilise certainement très mal ... ) et seule la ligne 31 est modifiée.

La difficulté supplémentaire est que le nombre de colonne n'est pas fixe , et que celui ci peut être défini par l'entête en ligne 10.

Vous trouverez ci dessous mon code ainsi que mon fichier si besoin .

Sub Formatage2()

'Création de l'objet Range
Dim MaPlage As Range
Set MaPlage = Union(Range("D31:N31"), Range("D12:N12"))

'Supprime le formatage conditionnel existant dans cette plage
MaPlage.FormatConditions.Delete

'Création de la première règle
MaPlage.FormatConditions.Add Type:=xlExpression, Formula1:= _
        "=NBCAR(SUPPRESPACE(d12))=0"
MaPlage.FormatConditions(1).Interior.Pattern = xlNone

'Création de la deuxième règle
MaPlage.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreater, _
        Formula1:="=160"
MaPlage.FormatConditions(2).Interior.Color = RGB(10, 255, 0)

End Sub
7test-formule.xlsm (26.88 Ko)

Si quelqu'un a une piste je suis preneuse !

Merci de m'avoir lue !

Bonne soirée à tous!

A

re,

est si vous mettez le 12 avant l'autre

Set MaPlage = Range("D12:N12,D31:N31")
Set MaPlage = Union(Range("D12:N12"), Range("D31:N31"))

Bonjour Bsalv,

Ca fonctionne si je met dans l'ordre ! j'ai tenté 100 combinaisons mais pas ca quelle quiche ! merci :)

Bonjour à tous,

je tenterai bien un :

Dim ar As Range
For Each ar In MaPlage.Areas
    ' traitement
    ' ...
Next ar

eric

Rechercher des sujets similaires à "vba mise forme conditionnelle"