XL 2016 [Résolu] VBA pour mise en forme conditionnelle

  • Initiateur de la discussion Initiateur de la discussion Hynnuh
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Hynnuh

XLDnaute Junior
Bonjour à vous,

je souhaite mettre en place une mise en forme conditionnelle via VBA
voici le cheminement:
on rentre des informations de date via des input boxes, et on voit apparaitre sur le calendrier les dates correspondantes.



là ou je bloque c'est que je voudrais qu'a chaque ajout de ligne la visualisation se complète
pour le moment la mise en forme conditionnelle ne prend pas en compte le remplissage de la cellule et me modifie ou supprime les mises en formes conditionnelles existantes.
voici le fichier et le code en question.
VB:
Sub etuves()
Dim jour As String
Dim heure As String
Dim fin As String
Dim fin2 As String


jour = Application.InputBox(prompt:="jour", Type:=1)
heure = Application.InputBox(prompt:="Heure", Type:=1)
fin = Range("AJ65536").End(xlUp).Row + 1
fin2 = fin - 1
Feuil1.Range("AJ" & fin) = jour
Feuil1.Range("AK" & fin) = heure
Feuil1.Range("AJ" & fin).NumberFormat = "m/d/yyyy"
Feuil1.Range("AK" & fin).NumberFormat = "h:mm;@"
Feuil1.Range("AL" & fin2, "AP" & fin2).Copy Destination:=Range("AL" & fin, "AP" & fin)


'Création de l'objet Range
Dim MaPlage As Range
Set MaPlage = Feuil1.Range("B10:H15,J10:P15,R10:X15,Z10:AF15,B19:H24,J19:P24,R19:X24,Z19:AF24,B28:H33,J28:P33,R28:X33,Z28:AF33")



With MaPlage        'Sélection des plages où doit s'appliquer la MeF
    'Supprime les MFC existantes


    'Ajoute une condition (Vrai lorsque la cellule est non vide)
    MaPlage.FormatConditions.Add Type:=xlCellValue, Operator:=xlBetween, _
        Formula1:="=$AJ$" & fin, Formula2:="=$AN$" & fin
    MaPlage.FormatConditions(1).StopIfTrue = False
    MaPlage.FormatConditions(1).Interior.Color = RGB(255, 150, 139)

End With


End Sub

en vous remerciant d'avance pour votre aide.
 

Pièces jointes

Solution
Bonjour,

Le problème, c'est que vous pointez sur la première MFC à chaque fois, alors que vous voulez en réalité pointer sur la dernière MFC. Changez ça :
VB:
MaPlage.FormatConditions(1).StopIfTrue = False
MaPlage.FormatConditions(1).Interior.Color = RGB(255, 150, 139)

Par ça :
VB:
MaPlage.FormatConditions(MaPlage.FormatConditions.Count).StopIfTrue = False
MaPlage.FormatConditions(MaPlage.FormatConditions.Count).Interior.Color = RGB(255, 150, 139)

Bonne journée,
Bonjour,

Le problème, c'est que vous pointez sur la première MFC à chaque fois, alors que vous voulez en réalité pointer sur la dernière MFC. Changez ça :
VB:
MaPlage.FormatConditions(1).StopIfTrue = False
MaPlage.FormatConditions(1).Interior.Color = RGB(255, 150, 139)

Par ça :
VB:
MaPlage.FormatConditions(MaPlage.FormatConditions.Count).StopIfTrue = False
MaPlage.FormatConditions(MaPlage.FormatConditions.Count).Interior.Color = RGB(255, 150, 139)

Bonne journée,
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
6
Affichages
104
Retour