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 :

Filtrer sur mise en forme conditionnelle


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    développeur junior
    Inscrit en
    Janvier 2019
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : développeur junior

    Informations forums :
    Inscription : Janvier 2019
    Messages : 37
    Par défaut Filtrer sur mise en forme conditionnelle
    Salut le forum !

    Apres recherches j'ai pas trop trouvé réponse à ma question ...


    J'ai un tableau avec des regles de mises en forme conditionnelles , ce tableau je le copie sur une autre feuille à l'aide d'une macro mais je ne trouve pas comment le copier avec un filtre qui copierait uniquement les données > 0 ( surbrillance rouge dans mes règles )..

    Auriez vous une ligne de code, une piste , une méthode, fonction ou autre à me proposer ?

    Bien cordialement ,

  2. #2
    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
    Tu places un filtre sur tes données (Sélection de toutes les colonne > Ruban Données > Icone Filtrer).
    Tu cliques sur le bouton apparu en entête dans la colonne que tu veux filtrer > Filtre par couleur > Rouge)

    Ou bien passer par un filtre avancé : http://philippetulliez.developpez.co...dvancedfilter/

  3. #3
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Bonjour à vous,

    Hé salut Menhir!

    Autre solution possible. La fonction Filtrarray de Maître Jacques que j'utilise souvent pour la gestion de 2 feuilles comme ici.

    (à adapter)

    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
    Sub EssaifiltreArrayFonctionCol()
       Set f = Sheets("bd")
       Tbl1 = f.Range("A2:D" & f.[A65000].End(xlUp).Row).Value 
       Tbl = FiltreArrayCléColRécup(Tbl1, "Paris", 3, Array(1, 3, 4)) 
       If Not IsEmpty(Tbl) Then f.[G2].Resize(UBound(Tbl), UBound(Tbl, 2) - LBound(Tbl, 2) + 1) = Tbl
     End Sub
     
     Function FiltreArrayCléColRécup(Tbl, clé, colClé, colRécup)
       n = 0
       For i = 1 To UBound(Tbl)
         If Tbl(i, colClé) = clé Then n = n + 1
       Next i
       Dim Tbl2(): ReDim Tbl2(1 To n, LBound(colRécup) To UBound(colRécup))
       n = 0
       For i = 1 To UBound(Tbl)
         If Tbl(i, colClé) = clé Then
             n = n + 1
             For k = LBound(colRécup) To UBound(colRécup):Tbl2(n, k) = Tbl(i, colRécup(k)):Next k
         End If
       Next i
       If n > 0 Then FiltreArrayCléColRécup = Tbl2
     End Function

  4. #4
    Membre extrêmement actif
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    1 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 1 369
    Par défaut
    Bonjour,

    Exemple:

    D2 contient: =couleurmfc(A2)=$F$2
    F2 contient le no de couleur (3 ou 6)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub filtre()
        Range("A1:A1000").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
            Range("D1:D2"), Unique:=False
    End Sub
     
    Function couleurMFC(cel)
      couleurMFC = cel.DisplayFormat.Interior.ColorIndex
    End Function
    Boisgontier
    Fichiers attachés Fichiers attachés

  5. #5
    Membre averti
    Homme Profil pro
    développeur junior
    Inscrit en
    Janvier 2019
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : développeur junior

    Informations forums :
    Inscription : Janvier 2019
    Messages : 37
    Par défaut
    Parfait !

    en vous remerciant .

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

Discussions similaires

  1. [XL-2016] Problème sur mise en forme conditionnelle
    Par nakleng4 dans le forum Excel
    Réponses: 3
    Dernier message: 27/11/2017, 15h00
  2. [XL-2003] Aide sur mise en forme conditionnelle svp
    Par christophesav dans le forum Conception
    Réponses: 5
    Dernier message: 02/10/2013, 22h19
  3. Réponses: 1
    Dernier message: 15/05/2012, 15h35
  4. Réponses: 2
    Dernier message: 29/05/2007, 14h16
  5. Réponses: 4
    Dernier message: 15/11/2005, 18h53

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