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 :

Problème sur ajout de mise en forme conditionnelle


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2011
    Messages : 3
    Par défaut Problème sur ajout de mise en forme conditionnelle
    Bonjour à tous,

    Je suis étudiant en master 1 de gestion de production et je suis actuellement en stage.

    Je travaille sur un planning développé sur Excel et j'ai besoin d'ajouter une mise en forme condionnelle à chaque fois que je rajoute une ligne dans Excel.

    Je m'explique:

    Mon classeur excel est constitué en haut sur la ligne 15 de mes dates et sur la ligne 14 du nombre d'heures travaillées par jour.
    Sur la colonne A j'ai donc des références et j'ajoute automatiquement sur les colonnes entre B et NO les données qui remplissent mon planning.

    Pour rendre le planning visuel, j'ai alors ajouté trois mise en forme conditonnelles sur tout le classeur:

    - la première me permet de griser les cellules lorsque le nombre d'heures dans la ligne 14 est =0
    - la deuxième me permet de colorier en jaune les cellules qui se trouve dans la colonne ou l'on retrouve la date du jour en ligne 15
    - la troisième me permet de mettre en blanc dans toutes les cellules qui comprennent un 0, situées entre la ligne 15 et la colonne A.

    Ensuite mon programme VBA doit ajouter une autre mise en forme conditionnelle (la quatrième) me permettant d'ajouter de la couleur dans les cellules différentes de 0 situées entre la ligne 15 et la colonne A. La difficultée est que cette couleur change à chaque référence en colonne A et que cette couleur est inscrite dans une autre feuille, voila pourquoi je passe par un programme.

    Le problème dans mon programme c'est qu'à l'ajout de ma mise en forme conditionnelle 4 les couleurs de police et de bordure sont modifiées dans la mise en forme 1. Mais la couleur de fond de cellule est bien appliquée dans la mise en forme 4.

    J'ai tout essayé au niveau des priorités, j'ai laissé que deux mises en forme et j'ai même fait l'essai sur un nouveau classeur avec quelque cellule: même problème.

    Voici le code que j'ai testé:

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    Dim i As Long
    With Sheets(1)
     
    For i = 4 To 30
     
    With .Range("B" & i & ":" & "G" & i)
     
    .FormatConditions.Add Type:=xlCellValue, Operator:=xlNotEqual, Formula1:="0"
    .FormatConditions(.FormatConditions.Count).SetFirstPriority
    .FormatConditions(1).StopIfTrue = False
     
     
        With .FormatConditions(1).Font
            .Color = RGB(128, 128, 250)
        End With
        With .FormatConditions(1).Borders
            .LineStyle = xlContinuous
            .Color = RGB(128, 128, 250)
            .TintAndShade = 0
            .Weight = xlThin
        End With
        With .FormatConditions(1).Interior
            .Color = RGB(128, 128, 250)
        End With
     
    End With
    Next
     
    End With
    Avant de lancer ce code il faut prendre en compte qu'il ya une mise en forme conditionnelle déjà présente sur les cellules B4:G30 qui les grise si la donnée en ligne 3 =0

    Si quelqu'un y voit une erreur ou a déjà eu ce problème cela m'aiderais. Je n'ai plus d'idées pour contourner le problème ou trouver l'erreur.

    Merci d'avance de votre aide, je reste à votre disposition au besoin de plus détail.

  2. #2
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2011
    Messages : 3
    Par défaut
    Après quelques recherches je remarque que l'erreur pourrait venir des plages où sont appliquées les mises en forme.
    Apparement les critères s'appliquent à la mise en forme qui s'applique à la plus grande selection.

    Serait-ce un bug d'excel?

    Sans réponse de votre part je poursuis mes recherches.

  3. #3
    Expert confirmé
    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Par défaut
    bjr,

    tout d'abord, précisez la version d'Excel dans le titre (avec la liste déroulante)
    ça m'a l'air d'être une version 2007 ou 2010 vu que je n'ai pas SetFirstPriority sur excel 2003

    sinon essayez d'utiliser l'objet renvoyé par FormatConditions.Add pour être sûr d'agir sur la bonne condition, par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim MaCondition as FormatCondition
    Set MaCondition = .FormatConditions.Add ( [...] )
    With MaCondition.Font
        .Color = RGB(128, 128, 250)
    End With

  4. #4
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2011
    Messages : 3
    Par défaut
    Merci pour la réponse, je vais essayer avec formatconditions.add.

    Pour la version d'excel c'est bien 2007.

    Ce que je trouve bizar c'est que cela fonctionne lorsque la mise en forme s'occupe de la couleur de fond mais pas de la couleur de police ou de bordure.

    J'ai essayé avec une variable prenant formatconditions.add et même problème.

    Existe-t-il des bug excel de ce genre?

    Je me pose la question si le code est en cause.

Discussions similaires

  1. Problème avec la mise en forme conditionnelle sur certains postes
    Par Z20500 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 12/12/2014, 17h53
  2. Réponses: 2
    Dernier message: 03/04/2013, 07h31
  3. [XL-2007] Problème graphique données et mise en forme conditionnelle
    Par Wencess dans le forum Excel
    Réponses: 15
    Dernier message: 01/02/2013, 16h11
  4. Réponses: 4
    Dernier message: 25/09/2012, 19h30
  5. Réponses: 4
    Dernier message: 15/11/2005, 18h53

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