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 :

Cacher une cellule


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Novembre 2010
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Cacher une cellule
    Bonjour,
    J'ai un petit souci dans la réalisation d'un planning dans lequel j'utilise des couleurs de cellules pour identifier les clients

    Je souhaite appliquer un filtre via VBA pour pouvoir afficher qu'un seul client a la fois et donc qu'une seule couleur de cellule. Les autre cellules seront alors grisées.

    Comme il n'est pas possible de cacher une cellule mais seulement une ligne ou une colonne, je ne sais pas comment faire.

    Auriez-vous une idée
    Merci

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 21
    Points : 19
    Points
    19
    Par défaut
    Il serait intéressant que tu fasses une capture d'écran pour comprendre comment est fait ton tableau.

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Novembre 2010
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Le planning est en piece jointe. Chaque couleur correspond a un client different. Avec une comboBox, je souhaite faire apparaitre que la couleur rouge par exemple.
    Merci
    Images attachées Images attachées  

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 21
    Points : 19
    Points
    19
    Par défaut
    Il faut créer une macro qui balaye la plage de cellule en détectant la couleur de celle-ci. Si tu choisis de n'avoir que les cellules rouges, tu créés un bouton rouge auquel tu associes une macro du style :

    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
     
    For l=1 to 10
    for c=1 to 10 
     
    RetourneCodeCouleur = ActiveSheet.Range(Cells(l, c), Cells(l, c)).Interior.ColorIndex
     
    'Sachant que rouge à 3 comme code de couleur
    if RetourneCodeCouleur <> 3 then
     
    'Si la cellule n'est pas rouge on la grise
    Range(Cells(l, c), Cells(l, c)).Interior.TintAndShade = -0.149998474074526
     
    end if
     
     
    next c
    next l

  5. #5
    Nouveau Candidat au Club
    Inscrit en
    Novembre 2010
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Merci lmb19 mais cela ne marche pas sous Excel 2003. J'obtiens l'erreur:

    "Run-time error '438': Object doesn't support this property or method"

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 21
    Points : 19
    Points
    19
    Par défaut
    J'ai modifié un peu du code,

    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
    For l = 1 To 10
    For c = 1 To 10
     
    RetourneCodeCouleur = ActiveSheet.Range(Cells(l, c), Cells(l, c)).Interior.ColorIndex
     
    'Sachant que rouge à 3 comme code de couleur
    If RetourneCodeCouleur <> 3 Then
     
    'Si la cellule n'est pas rouge on la grise
    Range(Cells(l, c), Cells(l, c)).Interior.Pattern = xlSolid
    Range(Cells(l, c), Cells(l, c)).Interior.PatternColorIndex = xlAutomatic
    Range(Cells(l, c), Cells(l, c)).Interior.ThemeColor = xlThemeColorDark1
    Range(Cells(l, c), Cells(l, c)).Interior.TintAndShade = -0.149998474074526
    Range(Cells(l, c), Cells(l, c)).Interior.PatternTintAndShade = 0
    End If
     
     
    Next c
    Next l
    J'ai essayé avec Excel 2003 , ça marche.

  7. #7
    Nouveau Candidat au Club
    Inscrit en
    Novembre 2010
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Merci ton aide en effet ca marche. Par contre si maintenant je veux revenir en arriere pour reafficher les couleur de depart comment je fais. En gros je veux pourvoir voir les clients separement de facon dynamique. Un coup le client 1 donc les autres clients sont grisés puis apres le client 2, donc le client 2 se degrise et le client 1 devient grisé...

    Cela est-il possible?

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 21
    Points : 19
    Points
    19
    Par défaut
    B'en la solution la plus rapide qui me vient à l'esprit, c'est de garder ton planning original sur une feuille.

    De faire un copier/coller de celui-ci sur une 2ème feuille.

    Sur ta 2ème feuille tu créés les boutons avec une couleur par client avec pour chaque la macro à modifier en fonction de la couleur.

    La modification à apporter dans chaque macro, c'est de consulter l'original et modifier la copie.

    Pour résumer:

    sur Feuil1 tu mets ton planning original.
    sur Feuil2 tu mets la copie du planning original.

    Sur Feuil2, tu créés tes boutons par client.

    Et pour chaque bouton, la nouvelle macro devient :

    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
     
    For l = 1 To 10
    For c = 1 To 10
     
    RetourneCodeCouleur = Sheets("Feuil1").Cells(l, c).Interior.ColorIndex
     
    Couleur = 3 ' Rouge
     
    If RetourneCodeCouleur <> Couleur Then
     
    'Si la cellule n'est pas rouge on la grise
    Range(Cells(l, c), Cells(l, c)).Interior.Pattern = xlSolid
    Range(Cells(l, c), Cells(l, c)).Interior.PatternColorIndex = xlAutomatic
    Range(Cells(l, c), Cells(l, c)).Interior.ThemeColor = xlThemeColorDark1
    Range(Cells(l, c), Cells(l, c)).Interior.TintAndShade = -0.149998474074526
    Range(Cells(l, c), Cells(l, c)).Interior.PatternTintAndShade = 0
     
    Else
     
    Range(Cells(l, c), Cells(l, c)).Interior.Pattern = xlSolid
    Range(Cells(l, c), Cells(l, c)).Interior.PatternColorIndex = xlAutomatic
    Range(Cells(l, c), Cells(l, c)).Interior.ThemeColor = xlThemeColorDark1
    Range(Cells(l, c), Cells(l, c)).Interior.ColorIndex = Couleur
    Range(Cells(l, c), Cells(l, c)).Interior.PatternTintAndShade = 0
     
    End If
     
    Next c
    Next l
    Voilà

Discussions similaires

  1. Cacher/montrer un DIV dans une cellule contenant un autre DIV
    Par Unusual dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 31/08/2012, 15h37
  2. [XL-2003] Cacher une seule Cellule
    Par Julaxio dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 28/06/2011, 16h23
  3. [XL-2003] Pour cacher une cellule
    Par altra dans le forum Excel
    Réponses: 6
    Dernier message: 23/07/2009, 13h29
  4. Cacher l'intérieur d'une cellule
    Par faruedde dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 13/10/2008, 16h27
  5. Cacher le texte d'une cellule MSFlexGrid
    Par jacma dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 04/09/2005, 19h03

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