IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

coloriage d'une cellule en vba qui supprime la MFC [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Avril 2010
    Messages : 23
    Par défaut coloriage d'une cellule en vba qui supprime la MFC
    Bonsoir,
    J'ai une macro qui change la couelur des cellules en fonction de leur contenu qui est issue d'une formule. Jusqu'à là tout va bien.
    Mais cette cellule à une MFC qui modifie aussi la couleur selon la date.
    Et la le problème commence, la couleur prioritaire est la MFC, alors que je souhaiterais le contraire.
    Je pense que la MFC doit faire partie de la macro, si c'est possible.
    Merci d'avance de votre collaboration.

  2. #2
    Membre émérite
    Inscrit en
    Décembre 2006
    Messages
    897
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 897
    Par défaut Bonsoir BoYves,
    Pour quelques idées, les deux points à cette adresse :
    http://excel.developpez.com/faq/index.php?page=mefc#MFC

    Sinon revient nous voir.

    ESVBA

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Avril 2010
    Messages : 23
    Par défaut
    Bonsoir,
    Merci, je vais prendre de lire la mise en forme conditionelle.
    D'ailleurs c'est dans autre tutoriel "MFC à la loupe" trés bien fait que j'avais trouvé la solution d'un autre problème.

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut BOYVES et le forum
    Tu peux peut-être remplacer ta macro par ta MFC, et vice-versa, ou regrouper tes deux fonctionnement sur la MFC (2007 a paraît-il 64 condition de MFC).
    Mais dans tous les cas, pour une aide efficace, il faudrait le code de la macro, et les conditions de la MFC.
    A+

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Avril 2010
    Messages : 23
    Par défaut
    Bonsoir, Je vous joins la macro tirée d'un tutoriel "MFC à la loupe" qui fonctionne parfaitement.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Worksheet_Activate()
       For Each c In [planning1]
        c.Interior.ColorIndex = xlNone
        On Error Resume Next
        c.Interior.ColorIndex = [couleurs].Find(c, LookAt:=xlWhole).Interior.ColorIndex
      Next c
    End Sub
    Ansi que la MFC qui elle passe en priorité sur la macro

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =ET(E$2<>"";NB.SI(fériés;E$2)>0)
    J'ai essayé d'intégrer la MFC dans la macro mais sans succés, je pense que la solution est dans la macro.

  6. #6
    Membre émérite
    Inscrit en
    Décembre 2006
    Messages
    897
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 897
    Par défaut bonsoir BOYVES, le forum
    =ET(E$2<>"";NB.SI(fériés;E$2)>0)
    il faut que E$2 contienne quelque chose et si ce quelque chose est dans "férié" alors met en couleur.

    Pourquoi cette double condition ?
    Si E2 est un jour férié c'est que la cellule E2 n'est pas vide ! Il y a des plages vides dans "fériés" ?

    devrait suffir.


    Je m'orienterais vers un code de ce genre. Pour plus de détails, il faudrait plus de précision.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Private Sub Worksheet_Activate()
       For Each c In [planning1]
        If Application.WorksheetFunction.CountIf(Range("fériés"), Cells(c.Row, 5)) > 0 Then
            c.FormatConditions.Add Type:=xlExpression, Formula1:="= NB.SI(fériées; E2) >0)"
            With c.FormatConditions(1).Interior
                .PatternColorIndex = xlAutomatic
                .Color = 5296274
            End With
        Else
            c.FormatConditions.Delete
            c.Interior.ColorIndex = xlNone
            On Error Resume Next
            c.Interior.ColorIndex = [couleurs].Find(c, LookAt:=xlWhole).Interior.ColorIndex
        End If
      Next c
    End Sub
    ESVBA

  7. #7
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    592
    Détails du profil
    Informations personnelles :
    Âge : 75
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 592
    Par défaut
    Bonsoir,

    Si tu nous donnais un peu d'explications:
    - que doit faire la macro ? (elle colorie mais quoi en fonction de quoi ?)
    - les zones [planning1] et [couleurs] où sont elles situées ?
    - que cherche t-on dans la zone [couleurs]
    - où sont situés E$2, fériés par rapport à [planning1] et [couleurs] ?
    - quel MFC est généré par =ET(E$2<>"";NB.SI(fériés;E$2)>0) ?

    Nous pourrions t'aider efficacement.

    PPz

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Avril 2010
    Messages : 23
    Par défaut
    Bonjour à tous,

    Je pense que la solution est de supprimer les MFC si une des cellules dans la zone nommée « plannig1 » est nonvide ;
    J’ai bien trouvé quelques réponses dans le forum qui se rapproche de ce que je souhaite avec la formule = NON(ESTVIDE($A$1)) La macro colorie seulement si la cellule est nonvide si vrai et vide si la condition est fausse.
    Et là je bloque pour incorporer cette condition dans la macro.
    (Je n’arrive pas à coller mon fichier en pièces jointe ce qui pourrait aider à l’explication.)
    Merci de votre collaboration.

  9. #9
    Membre émérite
    Inscrit en
    Décembre 2006
    Messages
    897
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 897
    Par défaut bonsoir BOYVES, le forum
    le mieux est d'expliquer clairement ce que tu veux.


    Si la cellule de la colonne contient... alors... sinon...
    Sinon...

    c'est très très flou pour moi, mais pour toi ?

    Joindre le fichier ?
    Une capture d'écran et le code de la macro en cause suffiront.

    ESVBA

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Code VBA qui supprime une requête
    Par Fredo67 dans le forum VBA Access
    Réponses: 2
    Dernier message: 28/05/2008, 17h47
  2. Ecrire dans une cellule en VBA
    Par ade94 dans le forum VBA Access
    Réponses: 1
    Dernier message: 04/07/2007, 17h15
  3. Reference a une cellule sur VBA
    Par nicoroth dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 02/07/2007, 12h39
  4. Formater une cellule en VBA pour recevoir une date
    Par *.Har(d)t dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 09/05/2007, 17h39
  5. [HTML] click lien sur une cellule et page qui s'ouvre dans une autre cellule
    Par mariogarcia dans le forum Balisage (X)HTML et validation W3C
    Réponses: 26
    Dernier message: 24/05/2006, 14h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo