Problème Macro et Mise en forme conditionnelle

Bonjour à tous,

J'ai fait la macro, ci dessous, qui permet de mettre en surbrillance la colonne et la ligne ou se trouve mon curseur, quand la CheckBox1 est coché (j'ai pas trouvé mieux):

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  Set champ = Range("A1:BZ7720")
  If Me.CheckBox1 Then
    If Not Intersect(champ, Target) Is Nothing Then
      champ.FormatConditions.Delete
      If Target.Count = 1 Then
        Union(Intersect(Target.EntireRow, champ), Intersect(Target.EntireColumn, champ)).FormatConditions.Add Type:=xlExpression, Formula1:="VRAI"
        Union(Intersect(Target.EntireRow, champ), Intersect(Target.EntireColumn, champ)).FormatConditions(1).Interior.ColorIndex = 8
        'Target.FormatConditions(1).Font.Bold = True
      End If
    End If
  Else
    champ.FormatConditions.Delete
  End If
End Sub

Même si celle ci fonctionne, elle créer un décalage de toutes mes autres mis en forme conditionnelle jusqu'à la ligne 7721.

Je n'arrive pas à trouver de solution à ce problème, et j'en appel donc à votre aide

Je vous remercie par avance

4classeur1.xlsm (50.91 Ko)

Bonjour,

vous définissez champ avec ceci :

Set champ = Range("A1:BZ7720")

Donc quand vous dite que la MFC est à appliquer sur la colonne de champ au niveau de la cellule sélectionnée, alors la MFC va descencdre jusqu'à la ligne 7720.

Il faut définir champ avec la taille du tableau :

Set champ = Range("A1:BZ"& Range("TableauDeBord").Rows.Count+1)

Pas essayé, mais c'est l'idée

@ bientôt

LouReeD

Merci beaucoup pour votre réponse.

La solution que vous me proposez fonctionne (en plus d'être plus propre) toujours pour mettre en surbrillance les cellules.

Mais le problème du fait que les MFC se retrouve déplacées en bas du tableau et ne s'applique plus au tableau, par conséquent, persiste

J'ai beau chercher, je ne trouve pas de solution!

C'est simplement du au fait que la zone de suppression ne prend pas tout en compte

Voir ce fichier :

@ bientôt

LouReeD

J'ai mis en "scène" mon problème dans ton fichier.

J'ai une MFC "basique" qui fait que si A1="" alors ma colonne C s'affiche en bleu. Si je clique sur une casque, ma mise en forme disparait et ne réapparait pas.

Cela viens clairement de la Macro. Mais je me demande si il faudrait pas que je passe par une autre macro pour que cela fonctionne.

En tout cas je te remercie grandement de l'aide apporté

Ok !

Je comprend mieux votre demande !

En fait avec cette ligne :

champ.FormatConditions.Delete

vous supprimez toutes les MFC, y compris celle de la colonne C.

Du coup, il vous faut la recréer à chaque fois que vous modifiez celle de la "croix bleue".

Voici un code :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Set champ = Range("A1:BZ" & Range("TableauDeBord").Rows.Count + 1)
    If Not Intersect(Target, champ) Is Nothing Then
        If Me.CheckBox1 Then
            champ.FormatConditions.Delete
            If Target.Count = 1 Then
            Union(Intersect(Target.EntireRow, champ), Intersect(Target.EntireColumn, champ)).FormatConditions.Add Type:=xlExpression, Formula1:="VRAI"
            Union(Intersect(Target.EntireRow, champ), Intersect(Target.EntireColumn, champ)).FormatConditions(1).Interior.ColorIndex = 8
            'Target.FormatConditions(1).Font.Bold = True
            End If
        End If
    Else
        champ.FormatConditions.Delete
    End If
    Range("TableauDeBord[NOM]").FormatConditions.Add Type:=xlExpression, Formula1:="=ET($A2="""")"
    champ.FormatConditions(2).Interior.Color = RGB(0, 120, 255)
End Sub

A vous de jouer sur les valeur de RGB pour trouver la couleur que vous souhaitez.

Cette mise en forme ne concernera que la colonne "Nom" du tableau, en s'adaptant aux nombre de ligne.

De même pour la "croix bleue". Donc s'il n'est pas besoin d'avoir autant de ligne dans le tableau, vous pouvez le réduire.

Un tableau "nommé" sous Excel par insertion tableau, s’agrandit automatiquement lors de saisie nouvelles sur la première ligne sous le tableau.

Ces lignes sont intégrées et font parties du tableau, que ce soit au niveau des mise en forme qu'au niveau des éventuelle formule contenues dans chaque colonnes...

@ bientôt

louReeD

Rechercher des sujets similaires à "probleme macro mise forme conditionnelle"