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 :

Supprimer La formule et le format d'une MFC créé par une fonction VBA


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 9
    Par défaut Supprimer La formule et le format d'une MFC créé par une fonction VBA
    Bonjour à tous
    ce code ou module ci-dessous:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub LuS2M()
        Range("B8:M38").Select
        Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
            "=mod(b8;14)=9"
        Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
        With Selection.FormatConditions(1).Interior
            .Color = RGB(255, 214, 83)
        End With
        Selection.FormatConditions(1).StopIfTrue = True
    End Sub
    qui renseigne la MFC, avec l'aide d'un menu déroulante, me permet de colorer différentes cellules d'un calendrier suivant les jours et périodes de la journée (matin, soir) et ce sur plusieurs années.
    C'est ici que je me tourne vers vous car je ne trouve pas de solutions pour supprimer certaines MFC, en exemple le code joint =mod("B8:M38")=9 le 9 correspondant à un jour donc une cellule précise celle que je désire effacé de son contenu coloré.
    Merci d'avance de me proposer une solution

  2. #2
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 241
    Par défaut
    Bonjour,

    Vous n'allez pas refaire les MFC à chaque changement de calendrier.

    Les MFC sont suffisamment élaborées pour ce passer le plus possible du VBA, surtout dans des cas simples comme vous le présentez.

    Au lieu d'effacer les MFC qui répondent à certains critères, modifier votre première formule avec la fonction ET.
    Exemple: =ET(votre première condition, MOD(b8;14)<>9)) on met la couleur désirée, tout autre cas ne sera pas retenu, donc pas de couleur.

    A adapter à votre tableau.

    Cdlt

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 9
    Par défaut
    Mille Merci ARTURO83 de m'avoir mis sur la voie, malheureusement mon niveau débutant me focalise sur ce code VBA et je ne saisie pas la manière d'intégrer les modifications que vous m'apportez.

    Dans votre exemple:

    1°) votre première condition: qui est celle du code VBA ? =MOD(b8;14)=9 et celui-ci doit devenir =ET(MOD(b8;14)=9;MOD(b8;14)<>9)) (j'ai un gros doute à ce que j'ai écrit ?)

    2°) on met la couleur désirée: où la mettre ? Celle-ci est déjà dans le code entre With et End With Color=RGB(255,214,83).

    Conclusion: est-ce que je garde bien ce code VBA modifié ? Ou tout doit être mis manuellement dans la MFC ?

    Avez-vous encore un peu de temps à me consacrer afin de répondre aux questions que je me pose et peut-être solutionner ce cas simple ?
    Encore merci.
    Cdlt

  4. #4
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 241
    Par défaut
    Bonjour,

    Les MFC devraient suffire, mais pour cela il faudrait connaître les conditions pour les appliquer.

    Donnez un descriptif de ce que vous attendez
    exemples:
    si cellule A1 >10, et A10 <= 20, mettre couleur orange
    si cellule A1 >20, et A10 <= 40, mettre couleur rouge
    etc..
    et à appliquer sur la plage A1:J10

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 9
    Par défaut
    Bonjour ARTURO83

    Je préfère rester en VBA pour des raisons pratiques.

    Je reprends mon explication différemment:

    La formule du code =mod(b8;14)=9 permet de colorer la 9 ème cellule qui correspond à la 2ème semaine (14) soit un lundi .Color = RGB(255, 214, 83).
    un autre code parmi les 11 autres: =mod(b8,14)=10 permet de colorer etc..

    et ceci bien sûr sur l'ensemble du calendrier pour différentes années ce qui me fait une accumulation de ces FormatConditions qui sont installés dans la MFC.

    Mon idée était avant de lancer le code contenant la formule "=mod(b8;14)=9" est de lancer un code (code que je ne sais pas faire d'où ma demande) FormatConditions.Delete (je ne veux pas supprime toutes MFC) que pour la formule =mod(b8;14)=9 qui permettra de supprimer la ligne qui correspond à la formule et au format dans la MFC.

    Voilà encore merci de vos réponses
    Si vous désirez il m'est possible de mettre en ligne le fichier .zip mais je pense que cela n'aura pas beaucoup d'utilité.
    Cdlt

  6. #6
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 241
    Par défaut
    Bonjour,

    Vous vous dites débutant et vous pensez qu'il vous faut du VBA pour l'utilisation de MFC, pourquoi pas! Mais comme je n'arrive pas à me représenter ce que vous voulez faire et que vous voulez absolument du VBA, alors voici en exemple un bout de code que je vous laisse le soin d'adapter à votre fichier.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub AjouterUnFormatConditionnel()
        Application.ScreenUpdating = False
        'on veut créer des MFC avec 3 conditions par formules
        Formule1 = "=MOD(B8;14)=9"
        Formule2 = "=MOD(B8;14)=10"
        Formule3 = "=MOD(B8;14)=11"
     
        'Plage = votre tableau ou doit s'appliquer les MFC
        Range(plage).FormatConditions.Delete ' effacement de toutes les MFC
        'on recrée les MFC
        Range(plage).FormatConditions.Add(xlExpression, xlLess, Formule1).Interior.Color = RGB(255, 214, 83)
        Range(plage).FormatConditions.Add(xlExpression, xlLess, Formule2).Interior.Color = RGB(255, 110, 241)
        Range(plage).FormatConditions.Add(xlExpression, xlLess, Formule3).Interior.Color = RGB(0, 110, 241)
    End Sub
    Cdlt

Discussions similaires

  1. [XL-2016] Supprimer le code XML du Ruban avec une macro VBA
    Par curt dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 22/11/2017, 11h20
  2. [XL-2016] Mettre formule de calcul Excel dans une macro VBA
    Par NEC14 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 05/09/2016, 19h54
  3. [XL-2003] Utilisation d'une fonction VBA dans la formule d'une cellule
    Par robx2309 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 14/05/2011, 00h41
  4. [VBA-E] Une fonction Excel dans une fonction VBA
    Par laloune dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 14/07/2006, 10h21
  5. Réponses: 8
    Dernier message: 29/06/2006, 15h37

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