XL 2019 Lier l'affichage de deux feuilles d'excel différentes

payet007008009

XLDnaute Nouveau
Bonjour à tous,

Je dois générer plusieurs documents qui correspondent au tableau 1 et 2 de la feuille Excel.
Suivant les documents à générer, je peux être amener à masquer des lignes ( je ne veux pas les supprimer) inutiles dans le tableau 2.
Je souhaiterais que le "masquage" d'un poste du tableau 2 entraine le " masquage " des lignes correspondantes dans le tableau 1.
Je n'ai pas besoin de modifier l'incrémentation suite aux masquages d'un poste ( heureusement d'ailleurs, cela aurait été un peu plus compliqué)


Existe-t-il des macros ou une fonction sur excel pour cela ?
Je ne vous ai présenter que quelques lignes mais les fiches réels présentent plus de 200 lignes pour le tableau 2 et plus du double pour le tableau 1 . Cela rend très fastidieux le travail de masquage dans ce cas.

Je remercie d'avance ceux qui pourront m'orienter vers une solution.

Cordialement
 

Pièces jointes

  • FICHIER_text.xlsx
    14.1 KB · Affichages: 7

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonsoir Payet,
Un essai en PJ avec la macro ci dessous.
La règle : Quand on veut masquer un poste on clique dans la colonne A sur le N° du poste.
Un message demande confirmation. Si confirmation on masque le poste dans les deux onglets.
Rien n'est prévu pour le démasquage.
Par sécurité j'arrête à la ligne 1000 le masquage. ( en particulier quand on clique sur le poste 5.6, et que la macro cherche le poste suivant ... ça pourrait durer longtemps )

A tester pour voir si le mécanisme vous sied.

VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    On Error GoTo Fin
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("A1:A100")) Is Nothing Then                  ' Arbitrairement limité à 100 lignes
        Application.ScreenUpdating = False
        If Target = "" Then Exit Sub                                            ' si cellule vide on sort
            Poste = Target                                                      ' récupération du poste cliqué
            If MsgBox("Voulez vous vraiment masquer le poste " & Poste & Chr(10) & _
                    " de l'onglet TAB_1 ?", vbYesNo, "Demande de masquage") = vbYes Then    ' Message de confirmation
                Sheets("TAB_2").Cells(Target.Row, 1).EntireRow.Hidden = True    ' on masque la ligne dans TAB_2
                i = 3                                                           ' indice de lecture dans TAB_1
                While Sheets("TAB_1").Cells(i, 1) <> Poste                      ' tant que Poste cliqué non trouvé on boucle
                    i = i + 1
                    If i > 1000 Then Exit Sub                                   ' on limite à 1000 lignes si Erreur
                Wend
                Sheets("TAB_1").Cells(i, 1).EntireRow.Hidden = True             ' on masque la ligne où Poste est trouvé
                i = i + 1
                While Sheets("TAB_1").Cells(i, 1) = ""                          ' on boucle jusqu'à qu'un nouveau poste apparait
                    Sheets("TAB_1").Cells(i, 1).EntireRow.Hidden = True
                    i = i + 1
                    If i > 1000 Then Exit Sub                                   ' Gestion Erreur
                Wend
            End If
    End If
Fin:
End Sub
 

Pièces jointes

  • FICHIER_text (1).xlsm
    21.7 KB · Affichages: 5

Discussions similaires

Statistiques des forums

Discussions
314 628
Messages
2 111 337
Membres
111 106
dernier inscrit
pop ioana