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 :

Effacer une MFC sans effacer les autres MFC par Macro


Sujet :

Macros et VBA Excel

  1. #1
    Membre actif
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2014
    Messages
    294
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2014
    Messages : 294
    Points : 284
    Points
    284
    Par défaut Effacer une MFC sans effacer les autres MFC par Macro
    Bonsoir à tous les lecteurs : Dans une feuille Excel version 2019 j'ai plusieurs MFC et je voudrais supprimer une seule MFC. Comment procéder je suis suis pas un super spécialiste en codage VBA.
    Par avance merci à ceux qui voudrons bien me rendre ce petit service.

    Exemple

    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Cells.Select
        If FormatConditions = "Monsieur" Then     
            Cells.FormatConditions.Delete
    si non ne pas supprimer les autres conditions
        Else: FormatConditions = ""    
        'End If
            Range("W3").Select

  2. #2
    Membre éprouvé
    Homme Profil pro
    ingénieur d'étude
    Inscrit en
    Juin 2013
    Messages
    563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : ingénieur d'étude
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2013
    Messages : 563
    Points : 1 141
    Points
    1 141
    Par défaut
    Bonjour,

    Les règles de MFC ne reçoivent pas de nom.
    Il va donc falloir que vous précisiez d'une autre façon quelle règle devra être supprimée. Par exemple le type de MFC dont il s'agit, et/ou la formule utilisée, les bornes de l'intervale considéré, etc.

    De quelles informations disposez-vous sur la règles à supprimer ?

    Cdt

  3. #3
    Membre chevronné Avatar de mfoxy
    Homme Profil pro
    Automation VBA
    Inscrit en
    Février 2018
    Messages
    752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Automation VBA
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2018
    Messages : 752
    Points : 1 971
    Points
    1 971
    Par défaut
    Bonjour,

    Perso, je pense qu'il serait préférable de directement modifier la MFC, création MFC sur un critère formule, plutôt que des chipotages en vba.

    Bav,
    Michaël

    Si mon aide/avis vous a été profitable , n'hésitez pas à cliquer sur , ça fait toujours plaisir...
    _________________________________________________________________________________________________________________

    "Tout le monde est un génie. Mais si on juge un poisson sur sa capacité à grimper à un arbre, il passera sa vie à croire qu'il est stupide..."
    Albert Einstein

  4. #4
    Membre actif
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2014
    Messages
    294
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2014
    Messages : 294
    Points : 284
    Points
    284
    Par défaut
    Bonjour: Merci pour votre participation. Je me suis peut être mal exprimé. Je veux simplement supprimer une seule MEFC qui contient la formule [ EstFormule ] sans effacer les autres MEFC. Cette formule est appliquée à la totalité de la feuille soit =$1:$1048576 afin de repérer l'ensemble des formules contenues dans une feuille.

    voici une partie du code pour appliquer cette MEFC qui fonctionne parfaitement
    Code vb : 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
    17
    18
    19
    20
    21
    22
    23
    24
     Sub reperage_formules()
    Application.ScreenUpdating = False
        Cells.Select
        Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
            "=ESTFORMULE(A1)"
        Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
        With Selection.FormatConditions(1).Font
            .Bold = True
            .Italic = False
            '.ThemeColor = xlThemeColorAccent4
            '.TintAndShade = -0.249946592608417
            .Color = RGB(180, 55, 235)
        End With
        With Selection.FormatConditions(1).Interior
            '.PatternColorIndex = xlAutomatic
            '.ThemeColor = xlThemeColorAccent4
            '.TintAndShade = 0.799981688894314
            .Color = RGB(255, 250, 5)
        End With
        Selection.FormatConditions(1).StopIfTrue = False
        Range("A1").Select
     Application.ScreenUpdating = True
     End If
    End Sub

    Code à adapter pour effacer uniquement la MEFC ci_dessus
    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     Sub Effacer_repérage_des_Formules()
    '
    ' Effacer_repérage_des_Formules Macro
    '
        Cells.Select
        Cells.FormatConditions.Delete
        Range("A1").Select
    End Sub

  5. #5
    Membre éprouvé
    Homme Profil pro
    ingénieur d'étude
    Inscrit en
    Juin 2013
    Messages
    563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : ingénieur d'étude
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2013
    Messages : 563
    Points : 1 141
    Points
    1 141
    Par défaut
    Bonjour,

    Ci-dessous une proposition de code qui devrait répondre à votre besoin :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Public Sub Effacer_repérage_des_Formules()
        Dim FC As FormatCondition
        For Each FC In Feuil1.Cells.FormatConditions
            If FC.Type = 2 And FC.Formula1 = "=ESTFORMULE(A1)" Then
                FC.Delete
                Exit For
            End If
        Next FC
    End Sub
    Notez que ce code s'applique au cellules de la feuille Excel nommée "Feuil1". Cette partie du code est à adapter à votre fichier.

    Nota1 : de façon générale, il est conseillé de référencer clairement les parents des objets que vous utilisez. En lieu et place de "Cells", il est ainsi préférable d'utiliser "ThisWorkbook.Sheets(1).Cells".

    Nota2 : Les opérations de sélection doivent être évitées autant que faire se peut. Elles rendent le code peut lisible et difficile à débugger en cas de problème.

    Cdt

  6. #6
    Membre actif
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2014
    Messages
    294
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2014
    Messages : 294
    Points : 284
    Points
    284
    Par défaut
    Bonjour Ben : Merci pour ta participation ton code correspond exactement à mes attentes je l'ai juste modifié pour puisse fonctionner uniquement sur la feuille active.

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 28/02/2018, 21h30
  2. Réponses: 3
    Dernier message: 17/10/2016, 13h30
  3. [XL-2007] effacer une ligne et remonter les autres lignes pleines
    Par vincent59139 dans le forum Excel
    Réponses: 3
    Dernier message: 28/10/2013, 16h45
  4. Supprimer une ligne sans décaler les autres
    Par nomade333 dans le forum Conception
    Réponses: 4
    Dernier message: 18/04/2012, 23h43
  5. Effacer les fichiers commençant par une lettre
    Par louro1 dans le forum Langage
    Réponses: 1
    Dernier message: 27/06/2009, 17h40

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