Masquer des colonnes/lignes Excel en fonction de critères

15fast-olivier.xlsx (46.07 Ko)

Bonjour à tous,

Je reviens avec plaisir sur ce forum car j'avais eu un super retour la dernière fois!

Je cherche à automatiser un reporting et j'aurais besoin de votre aide.

J'ai un tableau dans lequel je souhaite masquer des colonnes et des lignes, en fonction des valeurs que j'aurais préalablement cochées dans une autre feuille d'un même classeur excel.

Peut-on le faire de manière automatiser, sans nécessairement passer par le menu manuel afficher/masquer. (Pour info, je suis sur excel 2010).

Je joins un exemple. Dans l'onglet WELCOME PAGE, il y a en JAUNE la sélection des colonnes et lignes cochées que je souhaite afficher dans l'onglet FINANCIAL TABLE, alors que les données en JAUNE non cochées ne devraient pas s'afficher. Mais comme je ne connais pas la formule, toutes les colonnes et lignes sont présentes dans l'onglet FINANCIAL TABLE...!

Merci d'avance pour votre aide!

A très vite j'espère.

Gargamel

Bonsoir,

Ci-joint une proposition en VBA, à tester et adapter.

La correspondance se base sur les libellés, qui doivent être les mêmes dans les 2 onglets :

> Années : colonne C du premier onglet croisée avec la ligne 4 du second onglet

> Indicateurs : colonne O du premier onglet croisée avec la colonne A du second onglet

Non géré dans le cas contraire :

ex: "Cash at holdco" de l'onglet 1 ne peut pas gérer la ligne 29 du second onglet ("o/w holdco")

Bonne soirée

Bouben

Merci Bubben, c'est exactement ça.

Oui je passe les modifs pour aligner Cash at holdco dans les 2 fichiers.

Dis-moi, du coup, si je change la position des cellules dans la WELCOME PAGE et FINANCIAL TABLE (j'ai mis en forme le fichier, rajouté des inter-colonnes, rajouté des inter-lignes, mis de la couleur....) du coup quelles sont les données que je dois changer dans ta macro? Uniquement celles en gras ci-dessous dans ta macro ? Je ne crois pas.

Merci d'avance pour ton aide, c'est vraiment top.

Public Sub MAJ()

Dim oShW As Worksheet

Dim oShF As Worksheet

Dim iLigW As Integer

Dim iColF As Integer

Dim iDerColF As Integer

Dim iLigF As Integer

Dim iDerLigF As Integer

Set oShW = Worksheets("Welcome page")

Set oShF = Worksheets("Financial table")

Application.ScreenUpdating = False

'**********************

'Gestion des colonnes

'**********************

iDerColF = oShF.Range("ZZ4").End(xlToLeft).Column

For iLigW = 4 To 29

For iColF = 2 To iDerColF

If Trim(oShF.Cells(4, iColF).Value) = Trim(oShW.Range("C" & iLigW).Value) Then

If oShW.Range("D" & iLigW).Value Then

'affiche colonne

If oShF.Columns(iColF).EntireColumn.Hidden Then

oShF.Columns(iColF).EntireColumn.Hidden = False

End If

Else

'masque colonne

If Not oShF.Columns(iColF).EntireColumn.Hidden Then

oShF.Columns(iColF).EntireColumn.Hidden = True

End If

End If

End If

Next iColF

Next iLigW

'**********************

'Gestion des lignes

'**********************

iDerLigF = oShF.Range("A" & Rows.Count).End(xlUp).Row

For iLigW = 4 To 36

For iLigF = 5 To iDerLigF

If Trim(oShF.Range("A" & iLigF).Value) = Trim(oShW.Range("P" & iLigW).Value) Then

If oShW.Range("Q" & iLigW).Value Then

'affiche ligne

If oShF.Rows(iLigF).Hidden Then

oShF.Rows(iLigF).Hidden = False

End If

Else

'masque ligne

If Not oShF.Rows(iLigF).Hidden Then

oShF.Rows(iLigF).Hidden = True

End If

End If

End If

Next iLigF

Next iLigW

Application.ScreenUpdating = True

Set oShW = Nothing

Set oShF = Nothing

End Sub

Bonsoir,

Le code non formaté n'est pas vraiment lisible. Après lecture en diagonale, a priori OK.

Pour s'en assurer :

> lancer le traitement avec les modifs

> renvoyer un exemple du fichier avec le nouveau format

Cordialement

Bouben

Nan je n'y arrive pas ;(

J'opte donc pour ta proposition N°2. Je te joins en P.J. le fichier avec les nouvelles positions des cellules. Si ça t'embête pas de regarder ce qu'il faut modifier dans la macro?

Je te remercie!

Gargamel

Bonjour,

Nécessite des modifications certes mineures, mais un peu partout :

> les noms d'onglet ont changé

> les lignes et colonnes ne sont plus au même endroit.

Ci-joint le fichier modifié, à tester.

Bonne journée

Bouben

EDIT : PJ supprimée

Rechercher des sujets similaires à "masquer colonnes lignes fonction criteres"