Macro Afficher/Masquer des colonnes suivant pls critères

Bonjour,

Je souhaite afficher mes colonnes entières si elles répondent:

au CRITERE 1: (tout seul)

avec bouton d'action dédié

Valeurs de la ligne 10 = entre 190 et 200 (exemple: si L10xC12 = 198, j'affiche la colonne C12 en entier, sinon je masque les autres colonnes ne répondant pas au critère1).

au CRITERE2: (tout seul)

avec bouton d'action dédié

Texte de la ligne 1 = "High" / "Low" / ou "Average" (exemple: si L1xC5 = "Low", j'affiche la colonne C5 en entier, sinon je masque les autres colonnes ne répondant pas au critère2).

au CRITERE1 ET 2: (simultanément)

en cliquant sur le bouton 1 PUIS sur le bouton 2

Exemple:

________C1_____C2______C3______C4_____C5_____C6

L1_____HIGH____LOW___AVERAGE__LOW__HIGH___AVERAGE

Lxx_____xx______xx______xx_______xx_____xx______xx

L10____191_____220_____195_____198____210_____185

Lyy____yy______yy______yy_______yy_____yy_____yy

si je clique sur le bouton 1 (CRITERE 1: 190-200), je veux afficher/masquer les colonnes entières de cette façon :

________C1_____C2______C3______C4_____C5_____C6

L1_____HIGH____/____AVERAGE___LOW___/_______/

Lxx_____xx______/_______xx_______xx________/_______/

L10____191____/_______195______198______/_______/

Lyy____yy______/_______yy_______yy________/_______/

si je ré-initialise (bouton dédié) et je clique sur le bouton 2 (CRITERE 2: sur le texte "LOW"), je veux afficher/masquer les colonnes entières de cette façon :

________C1_____C2______C3______C4_____C5_____C6

L1______/______LOW_____/______LOW_____/_______/

Lxx_____/_______xx______/_______xx_______/_______/

L10_____/______220_____/_______198_____/_______/

Lyy_____/______yy______/_______yy_______/________/

Enfin, si je ré-initialise (bouton dédié) et je clique sur le bouton 1 PUIS sur le bouton 2 (CRITERE 1 ET 2), je ne veux garder que les colonnes entières de cette façon:

________C1_____C2______C3______C4_____C5_____C6

L1______/_______/________/______LOW____/_______/

Lxx_____/_______/________/_______xx_____/________/

L10_____/_______/_______/_______198____/_______/

Lyy_____/______/________/_______yy_____/________/

où / = colonne masquée

Cela me permettrait d'affiner ma recherche en sévérisant mes critères. C'est finalement exactement ce que fait la fonction filtre d'excel: mais sur les lignes ... (merci de ne pas me proposer de transposer mes données colonnes --> lignes sur ce tableau qui est conçu "en colonne") ...

Toute aide me sera benefique => Merci par avance.


J'ai commencé ce bout de code :

mais il ne marche pas lorsque je cumule mes critères (il sort de la boucle je ne sais pas pourquoi ...)

Sub Lancement1()
Dim FBP1 As Single
Dim FBP2 As Single
Dim i As Integer
Application.ScreenUpdating = False
On Error GoTo fin

FBP1 = InputBox("Trier les data entre FBP1 et FBP2", "valeur FBP1")
FBP2 = InputBox("Trier les data entre FBP1 et FBP2", "valeur FBP2")

For i = 2 To 1000
    If Columns(i).EntireColumn.Hidden = True Then
    GoTo suivant
    End If
    ' Je souhaite ici prendre en compte la possibilité qu'une colonne soit déjà masquée par un autre critère et la garder masquée
    ' ici cela ne semble pas marcher lorsque je cumule mes critères ... 
        If Cells(10, i).Value < FBP1 Or Cells(10, i).Value > FBP2 Then
        Columns(i).EntireColumn.Hidden = True
        Else
        Columns(i).EntireColumn.Hidden = False
        End If

suivant:
Next

Application.ScreenUpdating = True
Exit Sub
fin:
MsgBox "Vous devez saisir une donnée valide"
End Sub   

--------------------------------------------------------------------
Sub Lancement2()
Dim CASE As String
Dim z As String
Dim i As Integer
Application.ScreenUpdating = False
On Error GoTo fin

CASE = InputBox("CASE=?")
For i = 2 To 1000
    z = Cells(1, i).Value

    If Columns(i).EntireColumn.Hidden = True Then
    GoTo suivant
    End If
    ' Je souhaite ici prendre en compte la possibilité qu'une colonne soit déjà masquée par un autre critère et la garder masquée
    ' ici cela ne semble pas marcher lorsque je cumule mes critères ...  

        If CASE Like z Then
        Columns(i).EntireColumn.Hidden = False
        Else
        Columns(i).EntireColumn.Hidden = True
        End If

suivant:
Next
Application.ScreenUpdating = True

Exit Sub
fin:
MsgBox "Vous devez saisir une donnée valide"
End Sub 

Bonjour

Point 6 de la charte du Forum

Pensez à joindre un fichier pour faciliter la compréhension du problème et augmenter les chances de vous faire aider (taille limite : 300ko, n'hésitez pas à compresser vos fichiers).

Cordialement

Rechercher des sujets similaires à "macro afficher masquer colonnes suivant pls criteres"