Mfc VBA

Bonjour au forum,

Dans un fichier contenant une cinquantaine de feuille à la structure identique, j'applique les mêmes MFC sur toutes ces feuilles à l'aide d'une macro.

Je bloque cependant sur un point :

J'essaie d'appliquer une MFC en VBA qui se traduirait comme ceci en formule =

=SI(OU(ET(C5=1;C6=1;C7=0);ET(C5=0;C6=0;C7=1));"OK";"Pas OK")

en appliquant la MFC sur les cellules C5:C7, puis D5:D7.......G5:G7

Par code, ceci fonctionne :

Sub MFC()

'=SI(OU(ET(C5=1;C6=1;C7=0);ET(C5=0;C6=0;C7=1));"Oui";"Non")"

For i = 3 To 7

x = Cells(5, i).Value
y = Cells(6, i).Value
Z = Cells(7, i).Value
    If (x = 1 And y = 1 And Z = 0) Or (x = 0 And y = 0 And Z = 1) Then
        Cells(5, i).Interior.Color = RGB(234, 241, 221)
        Cells(6, i).Interior.Color = RGB(234, 241, 221)
        Cells(7, i).Interior.Color = RGB(234, 241, 221)
    Else
        Cells(5, i).Interior.Color = RGB(242, 221, 220)
        Cells(6, i).Interior.Color = RGB(242, 221, 220)
        Cells(7, i).Interior.Color = RGB(242, 221, 220)
    End If
Next i
End Sub

J'aimerais intégrer ceci via un .Formatconditions.Add pour ne pas avoir à lancer de macro mais je ne trouve pas de solution satisfaisante...

Merci d'avance pour votre aide !

Bonjour,

Peux-tu essayer cette solution?

Sub MFC()
    Range("e3","g7").FormatConditions.Add Type:=xlExpression, Formula1:= _
        "=SI(OU(ET($C$5=1;$C$6=1;$C$7=0);ET($C$5=0;$C$6=0;$C$7=1));"Oui";"Non") = "Oui""
    Range("e3","g7").FormatConditions(Range("e3","g7").FormatConditions.Count).SetFirstPriority
    Range("e3","g7").FormatConditions(1).Interior.Color = rgb(234,241,221)
    Range("e3","g7").FormatConditions(1).StopIfTrue = False

    Range("e3","g7").FormatConditions.Add Type:=xlExpression, Formula1:= _
        "=SI(OU(ET($C$5=1;$C$6=1;$C$7=0);ET($C$5=0;$C$6=0;$C$7=1));"Oui";"Non") = "Non""
    Range("e3","g7").FormatConditions(Range("e3","g7").FormatConditions.Count).SetFirstPriority
    Range("e3","g7").FormatConditions(1).Interior.Color = RGB(242, 221, 220)
    Range("e3","g7").FormatConditions(1).StopIfTrue = False
End Sub

bonjour

la difficulté pour cette MFC est révélatrice d'une erreur de conception: les 50 feuilles identiques. Tu veux imiter les feuilles papier de 1970

et tu dois avoir bien d'autres problèmes dus à cette erreur.

en informatique on fait un unique onglet et on le filtre selon les besoins

amitiés

Merci pour vos réponses.

@Ausecour : je vais tester ta solution, merci !

@jmd : j'ai 53 feuilles car c'est un fichier de planning horaires par semaine

@jmd : j'ai 53 feuilles car c'est un fichier de planning horaires par semaine

ben oui, tu fais comme sur des feuilles de papier en 1970

depuis, l'informatique est passée par là et on ne fait qu'un onglet infini dans le temps, avec en colonne A la date au format obligatoire jj/mm/aa.

amitiés

on ne fait qu'un onglet infini dans le temps, avec en colonne A la date au format obligatoire jj/mm/aa.

Si tu as un fichier exemple, c'est volontiers !

J'ai du mal à visualiser comment on peut avoir une vue par semaine pour une trentaine de collaborateurs avec cette méthode

Oups je me rends compte que j'avais oublié de joindre un fichier exemple, toutes mes excuses...

@ Ausecour : j'ai testé ta solution (dans le fichier joint), mais ce n'est pas tout à fait fonctionnel...

7mfc-ih3.xlsm (16.27 Ko)

on ne fait qu'un onglet infini dans le temps, avec en colonne A la date au format obligatoire jj/mm/aa.

Si tu as un fichier exemple, c'est volontiers !

J'ai du mal à visualiser comment on peut avoir une vue par semaine pour une trentaine de collaborateurs avec cette méthode

re

https://forum.excel-pratique.com/viewtopic.php?f=3&t=115540

Rebonjour,

Je n'avais pas très bien compris le besoin, comme je n'avais pas le fichier sous les yeux, voici le fichier en retour avec le programme qui fonctionne :

Je n'avais pas très bien compris le besoin, comme je n'avais pas le fichier sous les yeux, voici le fichier en retour avec le programme qui fonctionne :

Au top, merci beaucoup !

re

viewtopic.php?f=3&t=115540

Merci beaucoup pour ce retour ! Je n'arrive pas à l'utiliser au boulot, probablement à cause de la compatibilité des versions Excel. Je le testerai chez moi

Bonne journée à vous

Rechercher des sujets similaires à "mfc vba"