Vba pour masquer et démasquer des lignes

Boyscout_27 Messages postés 18 Date d'inscription   Statut Membre Dernière intervention   -  
danielc0 Messages postés 2209 Date d'inscription   Statut Membre Dernière intervention   -

Bonjour, 

Je souhaiterai obtenir de l'aide pour un code VBA qui permettrait de masquer et démasquer des lignes sous excel.

Cf pièce jointe.

L'idée est que pour chaque rubrique (Recettes, Dépenses et sous rubriques de dépenses), lorsque l'utilisateur clique sur la flèche pointant vers le bas : 

-cela démasque les lignes de détail de la rubrique, mais uniquement les lignes qui ne sont ni à zéro colonne E ni à zéro colonne G.

-masque la flèche qui pointe vers le bas.

Et quand l'utilisateur clique sur la flèche qui pointe vers le haut :

-cela masque les lignes de détail de la rubrique

-masque la flèche qui pointe vers le haut

-affiche la flèche qui pointe vers le bas

-affiche la flèche qui pointe vers le haut

J'ai quelques notions de vba (débutant) mais là, je ne sais pas comment m'y prendre.

https://www.transfernow.net/dl/20260702FFLmRVpl

2 réponses

  1. NonoM45 Messages postés 1028 Date d'inscription   Statut Membre Dernière intervention   3
     

    Bonjour Thibault,

    J'ai fait une ébauche pour les recettes, il suffira de faire la même chose pour le reste

    https://www.transfernow.net/dl/20260702Mt7AgUg5/dHq5r4Ps

    A+

    0
    1. Boyscout_27 Messages postés 18 Date d'inscription   Statut Membre Dernière intervention  
       

      Merci.

      Est-il possible d'avoir quelques explications par bout de code pour que je puisse m'approprié le tout et tenter de le reproduire pour le reste ?

      0
  2. danielc0 Messages postés 2209 Date d'inscription   Statut Membre Dernière intervention   292
     

    Bonjour,

    En modifiant légèrement la feuille, pour simplifier le code VBA 

    https://www.swisstransfer.com/d/127480ef-6685-4330-84c7-2cd9f3887591

    Daniel


    0
    1. Boyscout_27 Messages postés 18 Date d'inscription   Statut Membre Dernière intervention  
       

      Merci.

      Haa c'est pas mal aussi. Le code semble plus simple. 

      Est-il possible d'avoir quelques explications par bout de code pour que je puisse m'approprié le tout et tenter de le reproduire ?

      Peut-être une fausse impression de ma part, mais j'ai l'impression que si de 0€ on passe à un montant colonne G ou I... La ligne reste quand même masquée...  QUe le Vba ne prend pas en compte qu'il y a désormais un montant et qu'il ne faut donc pas masquer la ligne.

      Non ?

      Question bête... Comment réafficher une image quand elle a été mise invisible par le code vba ?

      0
      1. danielc0 Messages postés 2209 Date d'inscription   Statut Membre Dernière intervention   292 > Boyscout_27 Messages postés 18 Date d'inscription   Statut Membre Dernière intervention  
         

        J'ai ajouté les colonnes qui contiennent les flèches. J'ai corrigé (je pense) pour les montants à 0. Vérifie.

        Je mettrai des commentaires dans le code pour l'expliquer quand j'aurai corrigé les éventuelles erreurs.

        Je ne sais pas rendre visible un objet autrement que par macro. Sélectionne la flèche et exécute :

        Sub test()
          Selection.Visible = True
        End Sub
        

        https://www.swisstransfer.com/d/ea292767-8234-498e-9f22-7302fbc86ba1

        Daniel

        1
      2. Boyscout_27 Messages postés 18 Date d'inscription   Statut Membre Dernière intervention   > danielc0 Messages postés 2209 Date d'inscription   Statut Membre Dernière intervention  
         

        Merci, ça a résolu effectivement.

        Je vais essayer de réagencer dans mon fichier d'origine comme tu as fait, et incrémenter le vba.

        0
      3. danielc0 Messages postés 2209 Date d'inscription   Statut Membre Dernière intervention   292 > Boyscout_27 Messages postés 18 Date d'inscription   Statut Membre Dernière intervention  
         

        Fais attention à la position des flèches. L'angle haut gauche doit se trouver dans les colonnes A, B, D ou E et sur la même ligne que les données à afficher / masquer (38, 45, 56...).

        Daniel

        0