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 :

colorier une cellule en fonction de plusieurs conditions


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2011
    Messages : 85
    Points : 45
    Points
    45
    Par défaut colorier une cellule en fonction de plusieurs conditions
    Bonjour,

    Depuis quelque temps j'essai de trouver une solution pour réaliser un coloriage de cellule selon différentes condition.

    Pour faciliter la compréhension je met en lien un fichier qui vous permettra de comprendre ce que j'aimerai faire.

    En gros :

    Si "colonne Secteur test" = 'rejetée' alors
    si "colonne négatif" =1 alors "colonne secteur" se colore en orange
    else "colonne secteur" se colore en bleu
    else pas de changement.

    je ne pense pas que se soit irréalisable mais vu que je ne suis pas un utilisateur de VBA j'aimerais bien un ptit coup de main

    merci
    Fichiers attachés Fichiers attachés

  2. #2
    Membre expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Points : 3 974
    Points
    3 974
    Par défaut
    Bonjour antoine2933,

    Voici une solution utilisant l'événement SelectionChange

    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
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim DerLign As Long
    Dim Plage1 As Range, Plage2 As Range
    Dim cel As Range
        With Worksheets("Feuil1")
            DerLign = .Range("E" & .Rows.Count).End(xlUp).Row
            Set Plage1 = .Range("E5:E" & DerLign)
            Set Plage2 = .Range("G5:H" & DerLign)
            If Not Application.Intersect(Target, Plage2) Is Nothing Then
                For Each cel In Plage1
                    If .Range("G" & cel.Row) = "rejetée" Then
                        If .Range("H" & cel.Row) = 1 Then
                            cel.Interior.Color = RGB(255, 204, 153)
                        Else
                            cel.Interior.Color = RGB(204, 255, 204)
                        End If
                    End If
                Next
            End If
            Set Plage1 = Nothing
            Set Plage2 = Nothing
        End With
    End Sub
    Cordialement.

  3. #3
    Expert éminent Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 754
    Points : 9 396
    Points
    9 396
    Par défaut
    Bonjour,

    A mon avis une mise en forme conditionnelle suffit

    Couleur Bleu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =ET(G6="rejetée";H6=0)
    Couleur Orange
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =ET(G6="rejetée";H6=1)
    Jérôme

  4. #4
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2011
    Messages : 85
    Points : 45
    Points
    45
    Par défaut
    Bonjour,

    merci beaucoup pour vos réponses. elles m'ont été utile.
    est ce que vous savez si c'est possible de copier coller La MFC et le tableau ou elle se situe dans un autre onglet?

  5. #5
    Expert éminent Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 754
    Points : 9 396
    Points
    9 396
    Par défaut
    Par défaut, si tu fais un copier/coller tout se copie (données + mise en forme (conditionnelle incluse))
    Jérôme

  6. #6
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2011
    Messages : 85
    Points : 45
    Points
    45
    Par défaut
    euh me suis peut étre mal exprimer je voudrais réaliser le copier coller a l'aide d'un bouton donc le coder en VBA mais quand je fais ça il me colle bien la mise en forme du tableau mais pas celle des cellules.

    voila le code que j'utilise :

    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
     
    Private Sub CommandButton1_Click()
    'suppression du tableau précédent
        Sheets("pres").Range("D6:h1000").ClearContents
        For Each cel In Sheets("PSD").Range("PSD")
            With cel
    'changement format
                .NumberFormat = "0.00%"
    'transformation des . en ,
                .Value = Replace(cel.Value, ".", ",")
             End With
            If IsNumeric(cel.Value) And cel.Value <> "" Then
                 cel.Value = CDbl(cel.Value)
     
            End If
        Next cel
    'données
      Sheets("PSD").Range("PSD").Copy Destination:=ActiveSheet.Range("D6")
    'modifier car supprime les couleurs et non les copie
    End Sub

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 24/03/2015, 13h51
  2. [XL-2007] Colorier une cellule en fonction du resultat d une formule
    Par facteur dans le forum Excel
    Réponses: 5
    Dernier message: 10/06/2014, 16h35
  3. colorier une cellule en fonction de l'utilisateur qui l'a modifiée
    Par rugbyman dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 18/02/2012, 01h23
  4. [Toutes versions] Afficher le contenu d'une cellule en fonction de plusieurs autres
    Par Riko63 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 15/10/2011, 23h07
  5. Réponses: 6
    Dernier message: 06/05/2011, 17h30

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