VIVEZ LE
FOOTBALL !

Excel - Mises en forme conditionnelles illimitées


Mises en Forme Conditionnelles Illimitées





Introduction


La Mise en Forme Conditionelle (ou MFC) permet d'appliquer, à une cellule ou à plusieurs cellules sélectionnées, différents formats qui changeront automatiquement en fonction de la valeur (ou du résultat obtenu par la formule) qu'elles contiennent.

Pour les versions d'Excel antérieures à 2007, le nombre de MFC est limité à 3. Ce qui est peu. Ayant vu beaucoup de demandes pour repousser cette limite, je me suis amusé à écrire une Macro qui permet de le faire, sans avoir besoin de la modifier. Elle Fonctionne donc à la demande selon les besoins.

Principe


La macro va récupérer les formats à appliquer dans une Feuille nommée MFC, la cellule A1 de cette même feuille est utilisée pour appliquer le format par défaut.
La macro est déclenchée par la saisie d'une cellule, elle applique la MFC sur cette cellule. Mais pour qu'elle applique les formats sur les cellules voulues et, pour ne pas à avoir à modifier la macro pour définir les différentes plages, on programme une MFC dans la cellule avec une Formule : =Ma_MFC.
Cette macro permet aussi d'effectuer des Formats selon des paliers de valeurs.

Code


Voici le code à placer dans le module ThisWorkbook.
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    Dim i As Integer, j As Long, Mfc As FormatCondition, c As Range, Ws1 As Worksheet
    On Error GoTo fin ' en cas de mauvaise manipulation, ça plante sur l'ordre suivant
    Application.EnableEvents = False
    Set Ws1 = Sheets("MFC")
    For i = 1 To Target.FormatConditions.Count
        Set Mfc = Target.FormatConditions(i)
        If UCase(Left(Mfc.Formula1, 7)) = "=MA_MFC" Then
            Ws1.Range("A1").Value = Target.Value
            Set c = Nothing
            For j = 2 To Ws1.Range("A65536").End(xlUp).Row
                If Ws1.Range("A" & j) = True Then
                    Set c = Ws1.Range("A" & j)
                    Exit For
                End If
            Next j
            If c Is Nothing Then Set c = Ws1.Range("A1")
            c.Copy
            Target.PasteSpecial (xlPasteFormats)
            Application.CutCopyMode = False
        End If
    Next i
    Application.EnableEvents = True
fin:
    On Error GoTo 0
End Sub

Fichier joint


Il est beaucoup plus simple de voir son utilisation avec un fichier exemple : Télécharger le fichier
Publié par wilfried_42 - Dernière mise à jour le 3 novembre 2009 à 14:48 par marlalapocket
Ce document intitulé « Excel - Mises en forme conditionnelles illimitées » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Suggestions
  •  Excel - Mises en forme conditionnelles illimitées
  •  Excel mise en forme conditionnelle (Résolu) » Bonjour, Je sais que cette question a été maintes fois posée. Mais je bloque sur une mise en forme conditionnelle. Je voudrais mettre en gras les lignes contenant un mot précis dans une cellule qui peut contenir d'autres mots. Exemple si dans ma...
  •  Excel - Mise en forme conditionnelle » Articles : Mise en forme conditionnelle La mise en forme conditionnelle est une puissante fonction proposée par Excel. Comme son nom l'indique, elle consiste à appliquer une mise en forme particulière à une sélection en fonction d'une ou plusieurs...
  •  Excel mise en forme conditionnelle avec OU ! (Résolu) » Bonjour, J'ai essayer plusieurs façon mais je n'ai pas trouvé la bonne ! La valeur de la cellule est ; égale à ; OU(="option1";="option2";="option3") La valeur de la cellule est ; égale à ; "option1";"option2";"option3" La valeur de la cellule est ;...
  •  [Excel] format conditionné par autre cellule » Salut! je galère beaucoup en fait sur une fonction que je cherche à réaliser dans excel 2002. Je vous serais vraiment tres reconnaissant d'acceder à ma requete.voilà j'aimerais appliquer à une cellule un format spécifique (rouge, gras, etc...) en...
  •  Excel mise en forme conditionnelle (Résolu) » Meilleure réponse: Salut, Format/mise en forme conditionnelle si tu ni arrives pas reviens vers nous A+
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?
Excel - Convertir fichier(s) CSV / XLS
VBA - Supprimer un mot dans une plage de cellule