Macro excel - mise en forme conditionnelle dynamique filtre

Résolu
voyo -  
voyo83 Messages postés 11 Statut Membre -
Bonjour à tous, je ne connais pas du tout les macros, j'ai bidouillé 2-3 trucs pour obtenir ce que je voulais mais la je bloque sérieusement c'est pourquoi je fais appel à vous.

Voici mon projet : Je souhaite réaliser une macro qui colorise la valeur la plus élevé dans un tableau selon l'application de filtres.

Je m'explique : je travaille avec plusieurs fournisseurs qui propose des produits différents, certains avec un prix très élevé et d'autres beaucoup moins cher.
Ainsi, il ne serait pas cohérent de faire une mise en forme conditionnelle sur l'ensemble de tous ces produits mais bien fournisseurs par fournisseurs.
Seulement je suis amener à saisir régulièrement de nouveaux produits et je ne peux donc pas figer une plage fixe pour cette MFC.

J'ai fait des macros pour filtrer l'ensemble de mes produits fournisseurs par fournisseurs et excel masque ainsi les lignes des fournisseurs pour lesquels je ne souhaite pas connaitre les prix.

Le problème étant qu'avec mon peu de connaissance en la matière j'ai pu faire une macro qui me sélectionne automatiquement la ligne juste en dessous de mon en-tête jusqu'à la dernière ligne des produits du fournisseurs intéressés. Dans mon cas l'en-tête se situe en ligne 9 et il me sélectionne la ligne 10 (qui peut-être masquée ou non) selon le fournisseur.

J'espère avoir été clair car ce n'est pas évident à expliquer.

Je vous demande donc de répondre à l'une de mes deux demandes qui sont soit :

- m'éclaircir sur le codage pour repérer le numéro de la 1ère ligne (non masquée) qui suit mon en-tête (exemple : en-tête en ligne 9, application du filtre --> ligne suivant l'en-tête 200 --> les lignes 10 à 199 sont masquées et ne m'intéresse pas)

-me proposer une ébauche de codage de cette macro

Merci beaucoup pour vos réponses.

3 réponses

  1. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Bonjour,
    Un début de piste..
    Sub LigneCachees()
    Dim Lig As Long
        For Lig = 10 To Cells(Rows.Count, 1).End(xlUp).Row
            If Rows(Lig).Hidden = False Then
                Stop
                'Cette ligne est visible
            Else
                Stop
                'Cette ligne est cachée
            End If
        Next Lig
    End Sub
    A+

    0
  2. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonjour à tous,

    pas sûr d'avoir compris le pourquoi ta réticence à faire une MFC mais tu peux avec en MFC :
    =SOUS.TOTAL(104;B:B)
    https://www.cjoint.com/?CDhvgT0svDD

    eric

    edit:
    1ère ligne visible hors la 1 sans boucle :
    MsgBox Split(Split([A:A].SpecialCells(xlCellTypeVisible).Address, ",")(1), "$")(2)
    eric

    Jamais tu ne répondras à un mp non sollicité...
    Bon, ça c'est fait.
    0
  3. voyo83 Messages postés 11 Statut Membre
     
    Merci d'avoir répondu mais j'ai trouver une autre solution, je créer une MFC par macro à chaque filtre que j'applique et je supprime toutes les MFC existante à chaque fois que je fais un filtre. Bref cela marche mais j'ai un nouveau problème que je vais poster (macro pour ajouter une variable)
    0