Mise en forme conditionnelle en VBA

sr94

XLDnaute Occasionnel
Bonjour

J'ai une erreur sur une macro de mise en forme conditionnelle (l'indice n'appartient pas à la sélection), j'ai mis un petit fichier en pièce jointe, savez vous comment corriger l'erreur ?

Code:
Sub MFC()

Range("A:AH").Select
Selection.FormatConditions.Delete

With Range("B5").Select
Set plage1 = Range("B5:B" & Range("B65536").End(xlUp).Row)
plage1.FormatConditions.Add Type:=xlExpression, Formula1:="=NB.SI($B$5:$B$15;B5)>1"
plage1.FormatConditions(1).Interior.ColorIndex = 6
plage1.FormatConditions(1).Font.ColorIndex = 1

End With


With Range("A5").Select
Set plage2 = Range("A5:AH" & Range("A65536").End(xlUp).Row)
plage2.FormatConditions.Add Type:=xlExpression, Formula1:="=$AD5<>0"
plage2.FormatConditions(2).Interior.ColorIndex = 35
plage2.FormatConditions(2).Font.ColorIndex = 1

End With


With Range("Y5").Select
Set plage3 = Range("Y5:Y" & Range("Y65536").End(xlUp).Row)

plage3.FormatConditions.Add Type:=xlExpression, Formula1:="=SI($O5<>"""";$Y5>=$O5;et($E5<>"""";$Y5>=$M5) )"
plage3.FormatConditions(3).Interior.ColorIndex = 6
plage3.FormatConditions(3).Font.ColorIndex = 2
plage3.FormatConditions(3).Font.Bold = True

plage4.FormatConditions.Add Type:=xlExpression, Formula1:="=ET($E5<>"";$AA5="";$Y5<AUJOURDHUI())"
plage4.FormatConditions(4).Interior.ColorIndex = 6
plage4.FormatConditions(4).Font.ColorIndex = 1

End With




End Sub

Merci
 

Pièces jointes

  • fichier-test.xlsm
    226.5 KB · Affichages: 17
  • fichier-test.xlsm
    226.5 KB · Affichages: 20
  • fichier-test.xlsm
    226.5 KB · Affichages: 22

pierrejean

XLDnaute Barbatruc
Re : Mise en forme conditionnelle en VBA

Bonjour sr94

Apres cela il te restera a definir plage4
Code:
Sub MFC()


Range("A:AH").Select
Selection.FormatConditions.Delete


With Range("B5").Select
Set plage1 = Range("B5:B" & Range("B65536").End(xlUp).Row)
plage1.FormatConditions.Add Type:=xlExpression, Formula1:="=NB.SI($B$5:$B$15;B5)>1"
plage1.FormatConditions(1).Interior.ColorIndex = 6
plage1.FormatConditions(1).Font.ColorIndex = 1


End With




With Range("A5").Select
Set plage2 = Range("A5:AH" & Range("A65536").End(xlUp).Row)
plage2.FormatConditions.Add Type:=xlExpression, Formula1:="=$AD5<>0"
plage2.FormatConditions(1).Interior.ColorIndex = 35
plage2.FormatConditions(1).Font.ColorIndex = 1


End With




With Range("Y5").Select
Set plage3 = Range("Y5:Y" & Range("Y65536").End(xlUp).Row)


plage3.FormatConditions.Add Type:=xlExpression, Formula1:="=SI($O5<>"""";$Y5>=$O5;et($E5<>"""";$Y5>=$M5) )"
plage3.FormatConditions(1).Interior.ColorIndex = 6
plage3.FormatConditions(1).Font.ColorIndex = 2
plage3.FormatConditions(1).Font.Bold = True


plage4.FormatConditions.Add Type:=xlExpression, Formula1:="=ET($E5<>"";$AA5="";$Y5<AUJOURDHUI())"
plage4.FormatConditions(1).Interior.ColorIndex = 6
plage4.FormatConditions(1).Font.ColorIndex = 1


End With








End Sub
 

sr94

XLDnaute Occasionnel
Re : Mise en forme conditionnelle en VBA

Exact, la plage 4 n'est pas définie (je l'ai enlevée pour l'instant je la remettrai après) mais l'erreur est à cet endroit :

Code:
plage3.FormatConditions(3).Interior.ColorIndex = 6

Je ne connais pas grand chose au vba, mais là je ne comprends vraiment pas d'où peux venir l'erreur

Merci
 

Pièces jointes

  • fichier-test.xlsm
    225.9 KB · Affichages: 15
  • fichier-test.xlsm
    225.9 KB · Affichages: 22
  • fichier-test.xlsm
    225.9 KB · Affichages: 21

sr94

XLDnaute Occasionnel
Re : Mise en forme conditionnelle en VBA

J'avance ...

J'ai mis formatconditions(1) sur les 3 mises en formes, je n'ai pas d'erreur, mais la mise en forme n'est pas bonne, la 3e condition est sans mise en forme, est ce qu'il manque quelque chose ?

Ci-joint le fichier corrigé.

Merci
 

Pièces jointes

  • fichier-test.xlsm
    226.8 KB · Affichages: 17
  • fichier-test.xlsm
    226.8 KB · Affichages: 20
  • fichier-test.xlsm
    226.8 KB · Affichages: 24

Statistiques des forums

Discussions
312 083
Messages
2 085 175
Membres
102 807
dernier inscrit
Routier78