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 :

Installer une mise en forme conditionnelle avec VBA [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Installer une mise en forme conditionnelle avec VBA
    Bonjour,
    Avec VBA, au départ d'une liste, je crée un fichier de numéros de téléphone.
    Noms! triée sur Noms et prénoms
    Prenoms! triée sur Prénoms et noms
    Sauvetage! est une copie (invisible) de Noms!

    J'aimerais installer une mise en forme conditionnelle sur les cellules de Nom! : si Nom!$X$n <> Sauvetage!$X$n alors CouleurTexte(Nom!$X$n)=3 (rouge)

    Comment faire ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    With wsNoms.Range("A1")
        .FormatConditions.Add Type:= xlNotEqual, Formula1:= ??
     
            With FormatCondition(1)
                    .Font.Color = 3 ' rouge
            End With
    End With
    Merci de votre aide.
    Je suis au bureau, j'ai aussi d'autres choses à faire, il est donc possible que je ne réagisse pas de suite à une réponse.
    Dernière modification par Invité ; 04/04/2019 à 19h33. Motif: Ajout des balises [CODE] mon code [/CODE] (bouton #) + [C] ... [/C]

  2. #2
    Membre expérimenté Avatar de arosec
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Mai 2009
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 167
    Par défaut
    Bonsoir,

    Quelque chose du type:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Columns("A:A").FormatConditions.Add(Type:=xlExpression, Formula1:="=$A1<>$C1").Interior.Color = 255
    Il faut modifier le range initial (Columns("A:A")) pour ne pas prendre l'entête.

    Cdlt,

  3. #3
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Si ton problème se limite à ce que tu décris, tu n'as pas besoin d'utiliser une macro. Tu peux très bien faire ça avec une mise en formes conditionnelle classique.

  4. #4
    Invité
    Invité(e)
    Par défaut
    @arosec
    Ton code deviendrait ou je me trompe ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Columns("C:P").FormatConditions.Add(Type:=xlExpression, Formula1:="=Noms!C1<>Sauvetage!C1").Font.Color = 3
    @Menhir
    J'écris le VBA, je n'utiliserai pas le fichier résultant, sauf pour avoir les tel de mes collègues.
    C'est le secrétariat qui va gérer les modifications du fichier, il est plus simple de garder la liste des changements à effectuer sur le fichier créé que sur un bout de papier, d'où mon besoin.

    Et mille excuses pour une réponse si tardive, je n'avais pas mon portable ce week-end.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Quand j'utilise l'enregistreur de macro, j'obtiens :
    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
    17
    Sub Macro1()
    '
    ' Macro1 Macro
    '
     
    '
        Range("D8").Select
        Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlNotEqual, _
            Formula1:="=Sauvetage!$D$8"
        Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
        With Selection.FormatConditions(1).Interior
            .PatternColorIndex = xlAutomatic
            .ThemeColor = xlThemeColorDark2
            .TintAndShade = -9.99481185338908E-02
        End With
        Selection.FormatConditions(1).StopIfTrue = False
    End Sub
    Je ne vois pas trop bien comment généraliser la formule.

    Par macro, il est possible d'installer la MFC sur chaque cellule de donnée mais il doit être plus simple de modifier Range et Formula1.
    Là, je bloque.

  6. #6
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par BrisChri Voir le message
    C'est le secrétariat qui va gérer les modifications du fichier, il est plus simple de garder la liste des changements à effectuer sur le fichier créé que sur un bout de papier, d'où mon besoin.
    Je crois que je me suis mal fait comprendre. Quand je parlais de "mise en formes conditionnelle classique", je ne parlais pas de faire ça à la main ou de le faire une seule fois pour avoir un résultat papier.
    Je parlais d'utiliser les possibilités d'Excel de créer des mises en forme avec conditions ( ruban Accueil > Groupe Style > Mose en forme conditionnelle ).
    Ca permet d'adapter automatiquement la mise en forme en fonction de conditions décrites par l'utilisateur (par exemple avoir une couleur de texte ou de fond différente si deux cellules ont un contenu différent).

  7. #7
    Invité
    Invité(e)
    Par défaut
    Ok, je comprends mieux.
    Je préfère automatiser, mettre une MFC en utilisant VBA, plutôt que créer une macro avec bouton : ce serait la seule macro du classeur.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 09/02/2012, 15h56
  2. [XL-2007] fonction count avec une mise en forme conditionnelle
    Par tsrsi2006 dans le forum Excel
    Réponses: 4
    Dernier message: 27/08/2011, 15h38
  3. [XL-2007] VBA-MFC Modifier la plage d'application d'une mise en forme conditionnelle
    Par sl.info dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 08/11/2010, 23h51
  4. Cellules avec une mise en forme conditionnelle
    Par Peanut dans le forum Excel
    Réponses: 2
    Dernier message: 31/07/2008, 13h47
  5. [VBA EXCEL]: Savoir si une mise en forme conditionnelle est active
    Par ADONET dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 03/01/2007, 14h59

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