Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…