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 :

Filtre automatique selon couleurs des cellules


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 9
    Points : 4
    Points
    4
    Par défaut Filtre automatique selon couleurs des cellules
    Bonjour bonjour,
    je n'arrive pas à trouver comment faire pour que mes filtres automatiques puissent trier selon les couleurs de cellules.
    Donc si vous avez des idées. Je pense à une macro selon laquelle le critere de tri serait interior.colorindex mais je ne sais pas l'écrire.
    Merci de votre aide.

  2. #2
    Membre averti Avatar de tomy7
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    540
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 540
    Points : 391
    Points
    391
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if range(" : ").font.colorindex = ... then
    tu peux proceder comme ceci
    tom

    "Barbar : The rest of the warrior"

    Into the wild....

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 9
    Points : 4
    Points
    4
    Par défaut
    Euh en fait j'ai pas précisé mais ...
    Je suis pas trop fan de VBA donc si tu pouvais détailler la macro ce serait sympa, et ensuite comment faire pour l'utiliser (je sais j'en demande beaucoup désolé).

  4. #4
    Membre averti Avatar de tomy7
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    540
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 540
    Points : 391
    Points
    391
    Par défaut
    if Range(" : ").EntireRow.Interior.ColorIndex =... then ' ici le numero de ta couleur

    ..... ici tu mets le code que tu veux

    end if

    range: c'est ta gamme de ligne a scruter
    tom

    "Barbar : The rest of the warrior"

    Into the wild....

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 9
    Points : 4
    Points
    4
    Par défaut
    Alors je sais pas si ça répond vraiment à mon besoin. Je vais essayer d'être plus précis.
    Il me faudrait un filtre automatique, avec la condition de pouvoir filtrer selon si la cellule est verte (code couleur 4), jaune (code couleur 6) ou rose (code couleur 7).
    Apparemment tu me demandes de coder mes conditions mais je n'arrive pas à écrire la procédure.
    Fichiers attachés Fichiers attachés

  6. #6
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Bonjour,

    en regardant ton fichier, tu as des cellules colorées un peu partout, tu peux préciser ce que tu souhaites faire ?
    LES FAQ OFFICE - LES COURS OFFICE - LES COURS EXCEL - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

    Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.

  7. #7
    Membre averti Avatar de tomy7
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    540
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 540
    Points : 391
    Points
    391
    Par défaut
    si j ai bien compris tu veux mettre les cellules colorees de la meme couleur sur la meme ligne.?
    tom

    "Barbar : The rest of the warrior"

    Into the wild....

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 9
    Points : 4
    Points
    4
    Par défaut
    je veux réaliser un filtre automatique, jusque la, c'est pas dur, mais le filtre ne propose de filtrer que par rapports au valeurs dans la colonne, moi je veux filtrer par rapport aux couleurs de cellules presentes !

    Ansi sur la colonne C, en cliquant sur un filtre automatique j'aimerais avoir la possibilité de filtrer sois par cellule verte, jaune ou rose et non pas par valeurs. Voila

  9. #9
    Membre averti Avatar de tomy7
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    540
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 540
    Points : 391
    Points
    391
    Par défaut
    filtrer est un bien grand mots mais tu veux supprimmer les autres cellules, les masquer , regrouper toutes les cellules des memes couleur...
    tom

    "Barbar : The rest of the warrior"

    Into the wild....

  10. #10
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 9
    Points : 4
    Points
    4
    Par défaut
    Masquer les lignes qui ne contiennent pas, sur la colonne choisie, une cellule de la couleur choisie.

  11. #11
    Membre averti Avatar de tomy7
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    540
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 540
    Points : 391
    Points
    391
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub test()
    Dim i As Integer
    For i = 1 To 7
    If Not Range("A" & i & ":G" & i).Interior.ColorIndex = 3 Then
    Range("A" & i & ":G" & i).EntireColumn.Hidden = True
    End If
    Next i
     
    End Sub
    je dirai un code comme celui la mais a adapte
    tom

    "Barbar : The rest of the warrior"

    Into the wild....

  12. #12
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 9
    Points : 4
    Points
    4
    Par défaut
    Moi j'ai ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub MasquerLesLignes()
    Dim c As Range
    For Each c In Range("c1:c7")
    If c.Interior.ColorIndex <> RGB(0, 255, 0) Then
    c.EntireRow.Hidden = True
    End If
    Next
    End Sub
     
     
    Sub MontrerTout()
    Cells.EntireRow.Hidden = False
    End Sub
    j'arrive à l'utiliser, ca fonctionne, mais c'est un peu lourd.
    Y'a pas moyen d'automatiser tout ça dans la liste déroulante du filtre ? Plutôt que de changer les paramêtres de la macro a chaque changement de couleur ?

  13. #13
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Citation Envoyé par stryker973 Voir le message
    Masquer les lignes qui ne contiennent pas, sur la colonne choisie, une cellule de la couleur choisie.
    J'ai bricolé une solution avec les listes de validations :
    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
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    Dim prevValue As Variant
     
    Private Sub Worksheet_Change(ByVal Target As Range)
     
    Dim i As Long
    Dim selColor As Long
     
    On Error GoTo err01
    If Target.Row = 1 And Target.Value <> prevValue Then
        If Target.Validation.Formula1 <> "" Then
            Select Case Target.Value
                Case "Tous"
                    ActiveSheet.Rows("2:" & ActiveSheet.UsedRange.Rows.Count).Hidden = False
     
                Case Else
                    selColor = Sheets(2).Range("listCouleurs").Find(Target.Value).Interior.Color
                    For i = 2 To ActiveSheet.UsedRange.Rows.Count
                        If Cells(i, Target.Column).Interior.Color = selColor Then
                            ActiveSheet.Rows(i & ":" & i).Hidden = False
                        Else
                            ActiveSheet.Rows(i & ":" & i).Hidden = True
                        End If
                    Next i
     
            End Select
            Target = prevValue
        End If
    End If
     
     
    Exit Sub
     
    err01:
    Err.Clear
     
     
    End Sub
     
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
     
    On Error GoTo err01
    If Target.Row = 1 Then
        If Target.Validation.Formula1 <> "" Then
            prevValue = Target.Value
            Debug.Print prevValue
        End If
    End If
     
     
    Exit Sub
     
    err01:
    Err.Clear
     
    End Sub

    et voici le fichier :
    Fichiers attachés Fichiers attachés
    Ne mettez pas "Problème" dans vos titres, par définition derrière toute question se cache un problème
    12 tutoriels Access



  14. #14
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 9
    Points : 4
    Points
    4
    Par défaut
    J'ai regardé le fichier, c'est tout à fait ce que je voulais faire, par contre je trouve pas la procédure dans VBA.
    Je te remercie.

  15. #15
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    De rien, mais c'est normal le code est un module de classe de la feuil1
    Ne mettez pas "Problème" dans vos titres, par définition derrière toute question se cache un problème
    12 tutoriels Access



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

    Informations forums :
    Inscription : Mars 2008
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Hello
    Marrant , je tombe sur le post par hasard.(ce qui vaut ma récente inscription)

    Ne faut il pas remplacer

    Target = prevValue

    par
    prevValue = Target ?

Discussions similaires

  1. modification automatique de la couleur des cellules
    Par pvg70 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 03/07/2012, 08h50
  2. [VBA-Excel] modification automatique de la couleur des cellules
    Par ricachu dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 24/06/2008, 15h30
  3. Tableau et couleur des cellules
    Par DaisyVIP dans le forum ASP.NET
    Réponses: 7
    Dernier message: 08/02/2008, 12h30
  4. couleur des cellules de JTable
    Par adil1251985 dans le forum Composants
    Réponses: 5
    Dernier message: 05/06/2007, 12h31
  5. [D7] Couleur des cellules d'un StringGrid
    Par raoulmania dans le forum Composants VCL
    Réponses: 5
    Dernier message: 15/12/2005, 15h39

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