Sur le fichier joint j’aimerais avoir la possibilité de faire une macro qui donne le résultat suivant :
Masque l’ensemble des colonnes à l’exception des colonnes B, C et L dans la feuille Opérations.
Masque les lignes qui ont une valeur identique (Ex : B2 = 17000, B3=17000, B4=17000) dans la colonne B et qui, dans ce groupe de lignes ainsi constitué, dispose d’au moins d’une ligne avec une cellule en L contenant une valeur non nulle.
J’espère que c’est faisable, un grand merci par avance!
Désolé, je vais essayer d’être plus clair dans mon propos.
Une fois les colonnes masquées, des doublons apparaissent au niveau de la colonne B, C.
Il faut que soit masqué les groupes de lignes qui ont une même valeur de cellule en B et qui ont au moins une ligne avec une valeur non nulle en L (voir Exemple en bleu sur l’image)
J’ai parlé de doublons car l’idéal serait par la suite de pouvoir masquer les lignes avec la même valeur prise en B (une fois que les groupes de lignes composé d’au moins une ligne avec une valeur non-nulle en L ont été masqué).
Sub doublons()
Dim Dl%, F$
Application.Calculation = xlCalculationManual
Cells.EntireColumn.Hidden = False 'Affiche les colonnes
Cells.EntireRow.Hidden = False 'Affiche les lignes
Columns("A:A").Select
Selection.EntireColumn.Hidden = True 'Masque colonne A
Columns("D:K").Select
Selection.EntireColumn.Hidden = True 'Masque colonne D à K
Columns("M:Q").Select
Selection.EntireColumn.Hidden = True 'Masque les colonnes M à Q
Dl = Range("B" & Rows.Count).End(xlUp).Row 'n° de la dernière ligne non vide de la colonne B
F = "=IF(AND(IF(RC[-6]="""","""",IF(COUNTIF(R1C2:R[-1]C[-16],RC[-16])>0,"""",MAX(R1C18:R[-1]C)+1))="""",RC[-16]=R[-1]C[-16]),R[-1]C,IF(RC[-6]="""","""",IF(COUNTIF(R1C2:R[-1]C[-16],RC[-16])>0,"""",MAX(R1C18:R[-1]C)+1)))"
Range("R2").Formula = F 'Attribue la formule à R2
Range("R2").AutoFill Destination:=Range("R2:R" & Dl), Type:=xlFillDefault 'Recopie la formule
Application.Calculation = xlCalculationAutomatic
Range("R2:R" & Dl).Copy 'Copy la plage pour la copier en valeur
Range("R2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range("R2:R" & Dl).SpecialCells(xlCellTypeConstants, 1).EntireRow.Hidden = True 'Masque les lignes contenant du numérique
Range("B1").Select
End Sub
Macro pour Afficher
Sub Affiche()
Cells.EntireColumn.Hidden = False 'Affiche les colonnes
Cells.EntireRow.Hidden = False 'Affiche les lignes
Range("A1").Select
End Sub
A toi de mettre les boutons adéquat où bon te semble FiltreBCL.xls (842 Ko)
Tu m’as mal compris, je n’ai pas dit que tu avais supprimer qqch. C’est juste une étape supplémentaire que je souhaitais.
Mais en bidouillant avec l’enregistreur j’ai réussi à trouver le bout de code que je souhaitais pour finir le traitement.