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 :

Changement de couleur d'une cellule en fonction de la couleur d'autres cellules [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Electronicien
    Inscrit en
    Septembre 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Electronicien
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2011
    Messages : 12
    Points : 4
    Points
    4
    Par défaut Changement de couleur d'une cellule en fonction de la couleur d'autres cellules
    Bonjour,

    Voilà ! Depuis quelques jours je cherche à faire une macro en VBA sous MS-Excel mais mes connaissances et mon temps sont limités... je suis donc persuadé que certains d'entre vous réussiront là où j'échoue.
    Pour synthétiser (mais je pourrai renseigner ceux qui chercheront à en savoir plus si je ne suis pas assez clair), je cherche à changer la couleur des cellules d'une colonne dans une plage donnée en fonction du changement d'état/ couleur de plusieurs autres cellules situées dans une plage à côté : pour faire simple, je veux que si une ou plusieurs cellules situées de H26 à K26 passent de "rien"/ vide à orange, G26 devienne jaune - G26 étant rouge d'origine. Et à l'inverse, si toutes les cellules de cette plage (H26 à K26) sont vides, G26 redevient rouge.
    Pour corser l'affaire, je souhaite également que, si toutes les cellules de H26 à K26 sont orange, G26 devienne vert. Par contre, si une de ces cellules repasse vide, G26 redevient jaune.

    Ceci étant, je l'espère clair pour une rangée définie - 26, je souhaite appliquée cette "formule" pour une plage de cellule allant de H26 à K48 : H26/K26 actionnant G26 comme décrit plus haut, et H35/K35 actionnant G35, etc

    Petite précision qui vaut son pesant d'or je pense, ma plage de cellules (H26 à K48) est modifiée manuellement.

    Je vous serai grandement reconnaissant si vous pouviez m'aider sur cette affaire Merci d'avance à ceux qui s'intéresseront à mon problème

  2. #2
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 914
    Points : 5 121
    Points
    5 121
    Par défaut
    Bonsoir
    Voilà ! Depuis quelques jours je cherche à faire une macro en VBA sous MS-Excel mais mes connaissances et mon temps sont limités...
    malheureusement pour commencer à programmer il faut lire des tuto, voir les besoins des autres sur ce forum et les solutions proposées pour comprendre et faire tes premiers pas en VBA et je t'assure que c'est quelque chose qui mérite (facilite ton bolo par exemple)
    Pour ce que tu cherche à faire :
    1/ Démarre l'enregistreur automatique faire colorer selon ton choix une cellule - arrête l'enregistreur et regarde le code fourni sur plateau pour extraire le code de la couleur choisie
    2/ maintenant tu commence la programmation
    exemple : si h26 est vide ou h26 = rien alors i26 est en jaune
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if cells(26,8)="" or cells(26,8)="rien" then  cells(26,9).Interior.Color = 65535
    ce n'est qu'un début de réponse en te souhaitant la bonne continuation
    --------------------------------------------------------------*****----------------------------------------------------------------------------
    Bonne Continuation & Plein Succès
    Notre seul pouvoir véritable consiste à aider autrui avec modestie
    ______________________________________________________
    Pour dire merci, cliquer sur et quand la discussion est résolue, penser à cliquer sur le bouton

  3. #3
    Expert éminent sénior 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
    Points : 32 866
    Points
    32 866
    Par défaut
    C'est un marronnier récurent (pardon pour le pléonasme) de ce forum : utiliser les couleurs comme données d'entrée est une TRES mauvaise idée.
    Excel ne considère pas le changement de couleur d'une cellule comme une modification et ne déclenche donc aucune macro évènementielle.
    Je te conseille donc de modifier ta stratégie et d'imaginer autre chose que la couleur pour indiquer tes changements.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  4. #4
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    bobjour
    Petite précision qui vaut son pesant d'or je pense, ma plage de cellules (H26 à K48) est modifiée manuellement.
    en passant le degré de ton niveau de vba tu donne toi même la réponse
    puisque tu modifie manuellement
    dans l'évènement change du sheets test la couleur de la/des cellules aux quelles tu veux associer( la cellule tout juste modifiée) en terme de couleur et applique
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  5. #5
    Expert éminent sénior 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
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par patricktoulon Voir le message
    dans l'évènement change du sheets test la couleur de la/des cellules aux quelles tu veux associer( la cellule tout juste modifiée) en terme de couleur et applique
    Malheureusement, les divers évènements Change (Worksheet_Change ou Workbook_WorksheetChange) ne sont pas déclenchés par un changement de couleur manuel d'une cellule.
    Même les fonctions volatiles ne réagissent pas.

    Je me suis déjà cassé les dents sur ce problème.

    La seule fois que je n'ai pas pu contourné la couleur de cellule comme donnée d'entrée, je n'ai pas trouvé d'autre solution fiable que de déclencher périodiquement une instruction périodiquement (toutes les secondes) avec un On Time.
    Mais ce n'est vraiment pas une solution que je conseille (ça cause des ralentissements et des perturbations dans les saisies).
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  6. #6
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    je parlais d'une modification textuelle string ou numerique (sa valeur)

    exemple
    je tape "toto" en A1
    et dans son evenement change je met
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     if target.address="$A$1" then
     if target.offset(0,3) .interior.color=vbred and target.value="toto" then target.interior.color=vbblue
    end if
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  7. #7
    Candidat au Club
    Homme Profil pro
    Electronicien
    Inscrit en
    Septembre 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Electronicien
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2011
    Messages : 12
    Points : 4
    Points
    4
    Par défaut
    Merci de ton intérêt pour mon problème 'BENNASR' mais ta réponse ne m'aide pas du tout... j'ai déjà fait de la programmation en vba, il y a de celà un moment certes, mais j'ai toujours quelques notions.

    Le principe de créer une macro via le système automatique ne peut pas s'appliquer dans ce cas-là

    Bonne journée

  8. #8
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    juste une question
    y a t il quelque chose d'écrit dedans ces cellule ou est ce simplement graphique
    et puis non une autre encore
    comment change tu la couleur dans h26 a k26
    1. par la palette couleur
    2. une MFC


    si c'est avec la palette couleur j'ai ta solution

    si c'est par une MFC tu fait la même chose pour la G26
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  9. #9
    Candidat au Club
    Homme Profil pro
    Electronicien
    Inscrit en
    Septembre 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Electronicien
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2011
    Messages : 12
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par patricktoulon Voir le message
    juste une question
    y a t il quelque chose d'écrit dedans ces cellule ou est ce simplement graphique
    et puis non une autre encore
    comment change tu la couleur dans h26 a k26
    1. par la palette couleur
    2. une MFC


    si c'est avec la palette couleur j'ai ta solution

    si c'est par une MFC tu fait la même chose pour la G26
    Bonjour PatrickToulon

    Oui, c'est avec un click droit puis changement de couleur (H26 à K26) ou directement dans le menu de mise en forme... puis je choisis soit orange soit vide (enfin, je veux dire pas de fond). Il peut y avoir des infos dans ces cellules (très peu) mais ce n'est pas ce qui fait déclencher le changement de couleur en G26
    Effectivement, je pense qu'une MFC en "G26" peut résoudre mon problème une fois que H26 à K26 est résolu

    En fouillant à droite à gauche, j'étais parti sur cette solution (cela répondra également à mon collègue Breton 'Menhir') => Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Apparement, cette méthode permet de prendre en compte le changement d'état de couleurs dans une cellule.

    Pour lui répondre d'ailleurs, oui je suis "obligé" de passer par ces changements de couleurs car il me faut quelque chose de visuel : nous sommes à plusieurs à travailler sur ce tableau, et il faut que les informations soient visibles du premier coup d'oeil.

  10. #10
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    OK
    ENTENDONS NOUS BIEN
    c'est un truc visuel
    tu click droite dans une des cellules de "h26 :k26" tu applique une couleur avec la petite palette couleur et a ce moment si tout est orange g26 est vert
    si tout n'est pas orange g26 est jaune
    si tout est blanc ou redevient blanc g26 est rouge
    on est OK AVEC CA ???
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  11. #11
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    est ce que ceci correspondrait a tes attentes

    Nom : demo.gif
Affichages : 2214
Taille : 164,0 Ko
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  12. #12
    Candidat au Club
    Homme Profil pro
    Electronicien
    Inscrit en
    Septembre 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Electronicien
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2011
    Messages : 12
    Points : 4
    Points
    4
    Par défaut
    C'est exactement ce que je cherche à faire. C'est parfait pour une rangée... sachant que ma plage va de h26 à k48 (chaque cellule dans une rangée modifiant l'état de "G" dans cette rangée)
    Merci Patricktoulon 😊

  13. #13
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    OK comme tu peut le voir dans la démo je créée mon propre menu qui se déclenche que dans la plage "H26:K48"
    on a ainsi la modif instantanée dans "G" de la même ligne


    alors dans le module de la feuille concernée tu va mettre ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
    dim inter
    Set inter = Application.Intersect(Range("H26:K48"), Target)
    If Not inter Is Nothing Then
     Cancel = True: barre2
    Else
    Cancel = False
    End If
    End Sub
    et dans un module standard tu va mettre la macro de création du menu et sub de modif en "G"

    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    Sub barre2()
        Cancel = True
        Dim MaBarre As CommandBar
        deletebar
        Set MaBarre = Application.CommandBars.add(Name:="Menu2", Position:=msoBarPopup)
        Set bout = MaBarre.Controls.add(Type:=msoControlButton)
        icone_couleur2 xlNone, 15
        With bout: .Caption = "blanc": .PasteFace
            .OnAction = "'couleurfont  " & Chr(34) & ActiveCell.Address & Chr(34) & "," & Chr(34) & xlNone & Chr(34) & "'"
        End With
        Set bout = MaBarre.Controls.add(Type:=msoControlButton)
        icone_couleur2 &H80FF&, 15
        With bout: .Caption = "orange": .PasteFace
            .OnAction = "'couleurfont  " & Chr(34) & ActiveCell.Address & Chr(34) & "," & Chr(34) & &H80FF& & Chr(34) & "'"
        End With
        MaBarre.ShowPopup
    End Sub
    Sub deletebar()
        On Error Resume Next
        Application.CommandBars("Menu2").Delete
    End Sub
    Sub selectionrange(add)
        Range(add).Select
    End Sub
    Public Sub icone_couleur2(coul As Long, Optional forme = 5)
        Dim ico As Object
        With ActiveSheet
            Set ico = .Shapes.AddShape(forme, 10, 10, 10, 10)
            With ico: .DrawingObject.Interior.Color = coul: .Line.Visible = False: .Copy: .Delete: End With
        End With
    End Sub
    Sub couleurfont(add, lacouleur)
        dim ro
    Range(add).Interior.Color = lacouleur
        ro = Range(add).Row
        Debug.Print Range(Cells(ro, "h"), Cells(ro, "k")).Interior.Color
        Select Case Range(Cells(ro, "h"), Cells(ro, "k")).Interior.Color
        Case 0: Cells(ro, "g").Interior.Color = vbYellow
        Case 16777215: Cells(ro, "g").Interior.Color = vbRed
        Case &H80FF&: Cells(ro, "g").Interior.Color = vbGreen
        End Select
    End Sub
    et voila tu a ta modif dynamique de "G" en changeant dans(de h26 a h48)
    Nom : demo.gif
Affichages : 2645
Taille : 629,6 Ko
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  14. #14
    Candidat au Club
    Homme Profil pro
    Electronicien
    Inscrit en
    Septembre 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Electronicien
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2011
    Messages : 12
    Points : 4
    Points
    4
    Par défaut
    Eh ben super !! je n'ai pas ce degré de connaissances en vba et je ne peux donc que te tirer mon chapeau

    Encore merci Patricktoulon

    Une petite question : quelle est le type de code pour les couleurs ? On dirait de l'hexa mais je n'arrive pas à le modifier pour changer la couleur tel que je le voudrais...

  15. #15
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    Bonjour

    c'est simple si tu ne sais les code hexa des couleurs

    exemple la couleur 12 de la palette d'Excel

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    msgbox "&" & hex( thisworkbook.colors(12))
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  16. #16
    Candidat au Club
    Homme Profil pro
    Electronicien
    Inscrit en
    Septembre 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Electronicien
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2011
    Messages : 12
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par patricktoulon Voir le message
    Bonjour

    c'est simple si tu ne sais les code hexa des couleurs

    exemple la couleur 12 de la palette d'Excel

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    msgbox "&" & hex( thisworkbook.colors(12))
    Bonjour,

    J'ai résolu le problème en passant par le code RGB(X, X, X) afin d'être au plus près de la couleur désirée... encore merci pour tout Patricktoulon ton aide m'a vraiment été d'un grand secours

  17. #17
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    bonjour
    oui aussi
    attention de bien changer la couleur au 2 androit dans le shape temporaire(icone_couleur) et l'argument de la fonction
    et on peu encore en simplifier l'ecriture si tu veux
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  18. #18
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    imagine que ton truc visuel puisse avoir soit tout orange soit tout bleu soit tout blablabla
    et que selon la couleur complete tu veuille mettre la g non pas verte mais violet si c'est tout vert ou marron si c'est tout bleu etc....
    le code que tu a comme tel est complète obsolète
    je te l'ai donc réécris le code d'une autre manière afin que tu puisse toi même ajouter les couleur très facilement sans tout réécrire
    il te suffit se virer tout ce que j'ai ecris precedement dans le module standard pour celle ci
    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    Sub barre2()
        Cancel = True
        Dim MaBarre As CommandBar
        deletebar
        Set MaBarre = Application.CommandBars.add(Name:="Menu2", Position:=msoBarPopup)
     
        couls = Array(xlNone, RGB(255, 150, 100))
        Nomcouleur = Array("blanc", "orange")
     
        For i = LBound(couls) To UBound(couls)
            Set bout = MaBarre.Controls.add(Type:=msoControlButton)
            icone_couleur2 couls(i), 15
            With bout: .Caption = Nomcouleur(i): .PasteFace
                .OnAction = "'couleurfont  " & Chr(34) & ActiveCell.Address & Chr(34) & "," & Chr(34) & couls(i) & Chr(34) & "'"
            End With
        Next
        MaBarre.ShowPopup
    End Sub
    Sub deletebar()
        On Error Resume Next
        Application.CommandBars("Menu2").Delete
    End Sub
    Public Sub icone_couleur2(coul, Optional forme = 5)
        Dim ico As Object
        With ActiveSheet
            Set ico = .Shapes.AddShape(forme, 10, 10, 10, 10)
            With ico: .DrawingObject.Interior.Color = coul: .Line.Visible = False: .Copy: .Delete: End With
        End With
    End Sub
    Sub couleurfont(add, lacouleur)
        Dim ro
        Range(add).Interior.Color = lacouleur
        ro = Range(add).Row
        Debug.Print Range(Cells(ro, "h"), Cells(ro, "k")).Interior.Color
        Select Case Range(Cells(ro, "h"), Cells(ro, "k")).Interior.Color
        Case 0: Cells(ro, "g").Interior.Color = vbYellow
        Case 16777215: Cells(ro, "g").Interior.Color = vbRed
        Case RGB(255, 150, 100): Cells(ro, "g").Interior.Color = vbGreen
        'si tu met plus de 2 couleur dans ton array dans barre2
        'Case xxxxx:
        'Case xxxxx:
        'Case xxxxx:
     
        End Select
    End Sub
    voila dans le code tu a ces ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    couls = Array(xlNone, RGB(255, 150, 100))
        Nomcouleur = Array("blanc", "orange")
    et bien il te suffit d'ajouter une/des couleurs dans l'array 1 et leur nom dans l'array 2

    ensuite dans la sub couleurfonttu a

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Case RGB(255, 150, 100): Cells(ro, "g").Interior.Color = vbGreen
    et juste en dessous des 'case xxxx:"
    et bien remplace ces lignes par la même ligne que pour le vbgreen en changeant le rgb et vbgreen
    on pourrait simplifier encore plus la chose dans une boucle est test sur l'array de couleur mais j'ai préféré segmenter
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  19. #19
    Candidat au Club
    Homme Profil pro
    Electronicien
    Inscrit en
    Septembre 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Electronicien
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2011
    Messages : 12
    Points : 4
    Points
    4
    Par défaut Nouvelles lignes
    Merci. J'essaierai ce soir ou demain ces nouvelles lignes de commande... par contre, je voudrais faire en sorte que, sur certaines lignes de la sélection, je puisse passer vert même si toutes les cases ne sont pas orange. Par exemple, si dans la rangée 40, je ne dois valider que H, J et K au lieu de H, I, J et K... c'est faisable ?

  20. #20
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    oui avec une gestion d'exeption sur le row
    t'en a beaucoup comme ca ?
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 6
    Dernier message: 05/09/2016, 15h12
  2. [XL-2003] impression couleur d'une cellule en fonction de la couleur d'une autre cellule
    Par facteur dans le forum Macros et VBA Excel
    Réponses: 47
    Dernier message: 21/09/2012, 17h18
  3. Réponses: 12
    Dernier message: 30/12/2010, 14h30
  4. Réponses: 10
    Dernier message: 31/07/2009, 10h38
  5. Réponses: 5
    Dernier message: 03/02/2009, 13h43

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