Mise en forme conditionnelle

  • Initiateur de la discussion Initiateur de la discussion Dartagnan
  • 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 !

D

Dartagnan

Guest
Bonjour ou bonsoir,
Je souhaiterais savoir si une solution existe à mon problême!
J'utilise comme mise en forme conditionelle, la formule ô combien precieuse de myDearFriend pour colorer des cellules qui ont plus de trois conditions. Cela marche du tonerre, mais j'aimerais que la ou les cellule(s) adjacentes prennent la même couleur. Est-ce possible?????????
 
Re : Mise en forme conditionnelle

Bonsoir Dartagnan,
Tout d'abord sans vouloir t'offenser, ta réponse de 22h18 n'est pas très bien acceptée sur ce forum. D'ailleurs, si tu n'as pas lu la charte, c'est un forum de gens bénévoles qui mettent leurs connaissances en ligne pour aider ceux qui en ont besoin donc si tu n'as pas de réponses, c'est peut-être qu'ils sont occuppés à aider d'autres personnes comme toi et moi.
Si tu n'a pas de réponses, c'est peut-être aussi (et souvent le cas) une mauvaise formulation dans le développement de ta question : donc bien se relire et modifier si besoin est.
Et, pour info également, quand tu postes un fichier (.zip et moins de 50 ko) ces gens formidables qui vont travailler pour toi n'auront pas à le faire dans le vide.
En résumé : sois patient, ton tour viendra.
Je te souhaite une bonne soirée en attendant.
 
Mfc

Slt Dartagnan,

1/ "il n'y a pas de question idiotes! Il n'y a que ..."
2/ oui c'est possible. La méthode la plus simple, prendre la même que celle que tu as déjà utilisé!

Si tu trouves la réponse pas suffisament personnalisé, ou si tu as besoin de plus d'explications, comme le dit si bien Criscris11 : met ton fichier en pièce jointe.
 
Re : Mfc

Bonsoir Dartagnan, criscris11, Excel-lent,

Je n'ai pas vraiment le temps de me replonger dans cette macro en ce moment, ni de tester complètement....

Mais si tu utilises la macro mDF MFCmultiples v2, et si tu souhaites par exemple faire agir le format sur la ligne entière, tu peux essayer d'ajouter la ligne ci-dessous en gras :

Code:
[SIZE=2][COLOR=GRAY][B][I]DANS LE MODULE DE CODE DE L'OBJET THISWORKBOOK[/I][/B][/COLOR]

[COLOR=NAVY]Option Explicit[/COLOR]
[COLOR=GREEN]'---------------------------------------------------------------------------------------[/COLOR]
[COLOR=GREEN]' Auteur    : Didier FOURGEOT (myDearFriend!)[/COLOR]
[COLOR=GREEN]' Date      : 18/09/2005[/COLOR]
[COLOR=GREEN]' Sujet     : MFC multiples v2[/COLOR]
[COLOR=GREEN]'---------------------------------------------------------------------------------------[/COLOR]
[COLOR=NAVY]Private Sub[/COLOR] Workbook_SheetChange([COLOR=NAVY]ByVal[/COLOR] Sh [COLOR=NAVY]As Object[/COLOR], [COLOR=NAVY]ByVal[/COLOR] Target [COLOR=NAVY]As[/COLOR] Range)
[COLOR=NAVY]Dim[/COLOR] TabTemp [COLOR=NAVY]As Variant
Dim[/COLOR] L [COLOR=NAVY]As Long
Dim[/COLOR] V [COLOR=NAVY]As Variant[/COLOR]
    [COLOR=GREEN]'Ne gère pas les sélections de plages[/COLOR]
    [COLOR=NAVY]If[/COLOR] Target.Cells.Count > 1 [COLOR=NAVY]Then Exit Sub[/COLOR]
    [COLOR=GREEN]'Vérifie la présence du format conditionnel "spécial"[/COLOR]
    [COLOR=NAVY]If[/COLOR] Target.FormatConditions.Count < 1 [COLOR=NAVY]Then Exit Sub
    If[/COLOR] Target.FormatConditions(1).Formula1 = "=mDF" [COLOR=NAVY]Then
        With[/COLOR] Sheets("MFC")
            [COLOR=GREEN]'Charge les préférences dans un tableau variant temporaire[/COLOR]
            L = .Range("A65536").[COLOR=NAVY]End[/COLOR](xlUp).Row
            TabTemp = .Range(.Cells(1, 1), .Cells(L, 1)).Value
            [COLOR=GREEN]'Détermine le format à utiliser suivant la valeur de la cellule[/COLOR]
            [COLOR=NAVY]If[/COLOR] Target.Value = "" [COLOR=NAVY]Then[/COLOR]
                L = 1
            [COLOR=NAVY]Else
                For[/COLOR] L = 2 [COLOR=NAVY]To UBound[/COLOR](TabTemp, 1)
                    [COLOR=GREEN]'Fonctionne en minuscule/majuscule pour les chaines de caractères[/COLOR]
                    [COLOR=NAVY]If[/COLOR] UCase(Target.Value) = UCase(TabTemp(L, 1)) [COLOR=NAVY]Then Exit For
                Next[/COLOR] L
            [COLOR=NAVY]End If[/COLOR]
            [COLOR=GREEN]'Gestion des erreurs (impératif, compte tenu de la désactivation des évènements)[/COLOR]
            [COLOR=NAVY]On Error GoTo[/COLOR] Fin
            Application.EnableEvents = [COLOR=NAVY]False[/COLOR]
            [COLOR=GREEN]'Applique le format (sauf les bordures)[/COLOR]
            .Cells(L, 2).Copy
            V = Target.Formula
            Target.PasteSpecial Paste:=xlPasteAllExceptBorders, Operation:=xlNone, _
                    SkipBlanks:=[COLOR=NAVY]False[/COLOR], Transpose:=[COLOR=NAVY]False[/COLOR]
            Target.Formula = V
            [B]Target.EntireRow.PasteSpecial Paste:=xlPasteFormats     [COLOR=GREEN]'<============= ligne ajoutée ici ===========[/COLOR]
[/B]            [COLOR=GREEN]'Il semble que sur Mac et dans certaines situations (non ciblées) le format[/COLOR]
            [COLOR=GREEN]'conditionnel "spécial" d'origine ne soit pas écrasé par le nouveau, il convient[/COLOR]
            [COLOR=GREEN]'donc de s'en assurer avant de réimposer ce format spécial.[/COLOR]
            [COLOR=NAVY]If[/COLOR] Target.FormatConditions.Count < 1 [COLOR=NAVY]Then[/COLOR] Target.FormatConditions.Add [COLOR=NAVY]Type[/COLOR]:=xlExpression, Formula1:="=mDF"
            Application.CutCopyMode = [COLOR=NAVY]False[/COLOR]
            Application.EnableEvents = [COLOR=NAVY]True
        End With
    End If
    Exit Sub[/COLOR]
Fin:
    [COLOR=GREEN]'En cas d'erreur dans le code, il convient impérativement de rétablir la gestion des[/COLOR]
    [COLOR=GREEN]'évènements d'application pour la suite. Par une gestion d'erreur, on réaffecte la[/COLOR]
    [COLOR=GREEN]'valeur True à la propriété Application.EnableEvents et on informe l'utilisateur qu'une[/COLOR]
    [COLOR=GREEN]'erreur non gérée est survenue[/COLOR]
    MsgBox "Erreur non gérée dans la procédure Workbook.SheetChange()" & vbLf & "Erreur : " & _
        Err & " " & Err.Description, vbOKOnly, "myDearFriend!"
    Application.EnableEvents = [COLOR=NAVY]True
End Sub[/COLOR][/SIZE]
Un autre exemple : si tu veux que le format s'applique sur la même ligne, mais uniquement sur la cellule précédente et les 3 cellules suivantes, il convient de changer cette ligne ajoutée comme suit :
Remplacer :
Code:
[SIZE=2]Target.EntireRow.PasteSpecial Paste:=xlPasteFormats[/SIZE]
par cette ligne :
Code:
[SIZE=2]Range(Target.[B]Offset(0, -1)[/B], Target.[B]Offset(0, 3)[/B]).PasteSpecial Paste:=xlPasteFormats[/SIZE]
En espérant t'avoir mis sur la piste....

Cordialement,
 
Re : Mise en forme conditionnelle

Re à tous,
Dartagnan, personne ne s'est senti blessé mais il y a des règles à respecter cependant. Mais comme tu auras pu le constater par toi même, tu as eu des réponses mais il faut savoir être patient : c'est une règle de mise sur ce genre de forum où tout est basé sur le bénévolat.
Sans raucune aucune, je te souhaite une bonne soirée et j'espère que les réponses qui t'ont été données ou te seront données répondent à ta question.
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
2
Affichages
239
Réponses
5
Affichages
665
W
Retour