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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    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
    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 974
    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 974
    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

  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
    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.

  4. #4
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    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 374
    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 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 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).

  6. #6
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    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 374
    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
    Membre averti
    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
    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 374
    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 374
    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
    Membre averti
    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
    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 374
    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 374
    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

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

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