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 :

Pb de selection de cellule pour mettre en couleur


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Pb de selection de cellule pour mettre en couleur
    Je cherche à colorier une cellule dans ma feuille excel selon un test suivant:

    ex:

    Si ma cellule F7 = X alors G7 est rouge si elle n'est pas vide
    sinon elle est verte. De mème avec H7 si F7=X...
    Voici ce que j'ai indiqué dans mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     Private Sub Worksheet_SelectionChange(ByVal Target As Range)
     
     
    For i = 7 To 10000
     
    If Range("F" & i) = "X" Then Range("G" & i).Interior.ColorIndex = 3
    If Range("F" & i) <> "X" Then Range(j & i).Interior.ColorIndex = 4
    If Range("G" & i) = 0 Then Range(j & i).Interior.ColorIndex = 0
     
    Next
     
    End Sub
    cela fonctionne pour les éléments de la colonne G mais j'ai pas réussi à le reproduire pour les colonnes H,I,J,... sauf à recopier les 3 lignes en changeant la lettre de la colonne, mais bon j'ai 100 colonnes...

    Si quelqu'un peu m'aider merci par avance...

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    un peu "lourdeau" comme code , avec ta boucle 1 à 10000 qui est exécutée à chaque changement de sélection dans feuille...
    un Worksheet_Change devrai être suffisant...

    sinon vu que ta pas fini tes phrases...je sais pas ce que tu ve faire .. pourquoi 100 et comment...

  3. #3
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Une mise en forme conditionnelle devrait suffire.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    j'ai a peu près une centaine de colonne, chaque colonne correspond à un jour de la semaine pour les 6 mois à venir.

    En fait je veux faire à tableau pour planifier des passages de commande en atelier.

    Chaque ligne correspond à une commande, et le temps d'execution pour le passage est indiqué dans la colonne du jour programmé pour la réalisation.

    ex: si la commande m'est 2h pour être effectuée et doit être réalisée le lundi de la semaine 40, je mets 2 dans la colonne correspondante, les autres restent alors vide.

    Pour les couleurs, j'indique un X dans la colonne "F" pour indiquer que la colonne n'est pas déplacable à un autre jour.

    Je veux donc que la cellule contenant le 2 devienne rouge, ou reste verte si le
    X n'est pas indiqué.
    Par défaut toutes les autres cellules restent blanche.

    J'espère avoir été assez explicite.

    Merci

  5. #5
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Citation Envoyé par AlainTech
    Une mise en forme conditionnelle devrait suffire.
    As-tu essayé avant de poster un nouveau message???
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  6. #6
    Membre actif Avatar de marsupilami34
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    574
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 574
    Points : 258
    Points
    258
    Par défaut
    Bonjour,
    D'après ton code, je ne sais pas si ca peux veir de la, mais je ne vois pas de End if à la fin de tes conditions

    Citation Envoyé par Dexor
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     Private Sub Worksheet_SelectionChange(ByVal Target As Range)
     
     
    For i = 7 To 10000
     
    If Range("F" & i) = "X" Then Range("G" & i).Interior.ColorIndex = 3
    If Range("F" & i) <> "X" Then Range(j & i).Interior.ColorIndex = 4
    If Range("G" & i) = 0 Then Range(j & i).Interior.ColorIndex = 0
     
    Next
     
    End Sub

  7. #7
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Citation Envoyé par marsupilami34
    Bonjour,
    D'après ton code, je ne sais pas si ca peux veir de la, mais je ne vois pas de End if à la fin de tes conditions
    Pas besoin de End If si l'instruction suit le Then sur la même ligne.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Effectivement mon code était un peu (voire très) lourd.

    Je l'ai changé en utilisant la cellule active et ca fonctionne du tonnère...

    C'est pas sans mal mais du coup j'ai pondu ca :
    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
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
     
    Dim numcol As Integer
    Dim numlign As Integer
     
    numcol = ActiveCell.Row
    numlign = ActiveCell.Column
     
     
    If numlign > 6 And Range("F" & numcol) = "X" Then ActiveCell.Interior.ColorIndex = 3
    If numlign > 6 And Range("F" & numcol) <> "X" Then ActiveCell.Interior.ColorIndex = 4
    If ActiveCell.Value = 0 Then ActiveCell.Interior.ColorIndex = 0
     
     
     
     
    End Sub

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

Discussions similaires

  1. [XL-2010] Selection de cellules pour validation de donnees
    Par AmbreM dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 19/09/2013, 13h13
  2. Problème pour mettre une couleur de font dans un fieldset
    Par sophie_44 dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 03/11/2010, 08h56
  3. soucis pour mettre des couleurs dans les composants
    Par lostsoul dans le forum NetBeans
    Réponses: 4
    Dernier message: 06/08/2010, 12h15
  4. Aide pour mettre en couleur du text.
    Par gabuuzz dans le forum C#
    Réponses: 4
    Dernier message: 22/08/2009, 16h38
  5. Selection de cellules pour graphique
    Par kika18 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/12/2007, 23h53

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