Macro pour Cacher des Colones selon un liste deroulante avec les mois

benloco

XLDnaute Nouveau
Bonjour a tous,

Novice en macro, je souhaiterais savoir comment faire une macro qui puisse me cacher des colonnes (Mois) selon le critere du mois choisi sur une liste deroulante.

Sur ma feuille, il y a 4 differents tableaux, je souhaiterais avoir uniquement le mois selectionne pour les 4 tableaux.

EX: si je selectione le mois de Janvier (sur ma liste deroulante), je souhaite avoir que les mois de Janvier de mes 4 talbeaux.

Merci d'avance pour votre aide.
 

tototiti2008

XLDnaute Barbatruc
Re : Macro pour Cacher des Colones selon un liste deroulante avec les mois

Bonjour benloco,

Bienvenue sur XLD,

il faudrait que l'on sache à quoi ressemblent tes tableaux et ta liste déroulante
un petit fichier exemple, sans données confidentielles, nous aiderait bien
 

tototiti2008

XLDnaute Barbatruc
Re : Macro pour Cacher des Colones selon un liste deroulante avec les mois

Re,

à tester dans le code de la feuille Comparaison

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Long
    If Target.Address = "$C$7" Then
        Application.ScreenUpdating = False
        Range("E1:IV1").EntireColumn.Hidden = False
        For i = 5 To Range("IV13").End(xlToLeft).Column
            If IsDate(Cells(13, i).Value) Then
                If Month(Cells(13, i).Value) <> Application.Match(Target.Value, Sheets("List Mois").Range("January"), 0) Then
                    Cells(13, i).EntireColumn.Hidden = True
                End If
            End If
        Next i
        Application.ScreenUpdating = True
    End If
End Sub
 

tototiti2008

XLDnaute Barbatruc
Re : Macro pour Cacher des Colones selon un liste deroulante avec les mois

Re,

tu as bien copié le End Sub à la fin du code que je t'ai posté ?

une version avec la macro :
 

Pièces jointes

  • Test Macro.xls
    40 KB · Affichages: 96
  • Test Macro.xls
    40 KB · Affichages: 101
  • Test Macro.xls
    40 KB · Affichages: 101
Dernière édition:

benloco

XLDnaute Nouveau
Re : Macro pour Cacher des Colones selon un liste deroulante avec les mois

Super Big thank,

Ca marche super bien.

Et il possible de rajouter un code pour avoir la possibilité de retourner a vue globale avec tous les mois.

Je peux rajouter, TOUS MOIS, dans ma liste deroulante.

Merci encore.
 

tototiti2008

XLDnaute Barbatruc
Re : Macro pour Cacher des Colones selon un liste deroulante avec les mois

Re,


Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Long
    If Target.Address = "$C$7" Then
        Application.ScreenUpdating = False
        Range("E1:IV1").EntireColumn.Hidden = False
if target.value = "TOUS MOIS" then Exit Sub
        For i = 5 To Range("IV13").End(xlToLeft).Column
            If IsDate(Cells(13, i).Value) Then
                If Month(Cells(13, i).Value) <> Application.Match(Target.Value, Sheets("List Mois").Range("January"), 0) Then
                    Cells(13, i).EntireColumn.Hidden = True
                End If
            End If
        Next i
        Application.ScreenUpdating = True
    End If
End Sub
Edit : Bing, Bonjour JCGL :)
En effet le "+1" est utile si "TOUS MOIS" ou "Année" se trouve avant les mois normaux
s'il se trouve après, pas besoin... à benloco de choisir
 
Dernière édition:

JCGL

XLDnaute Barbatruc
Re : Macro pour Cacher des Colones selon un liste deroulante avec les mois

Bonjour à tous,
Salut Toto,

En rajoutant "Année" dans la liste des Mois et modifiant la portée de cette liste :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Long
If Target.Address = "$C$7" Then
Application.ScreenUpdating = False
Range("E1:IV1").EntireColumn.Hidden = False
If Target = "Année" Then Exit Sub
For i = 5 To Range("IV13").End(xlToLeft).Column
If IsDate(Cells(13, i).Value) Then
If Month(Cells(13, i).Value)+1 <> Application.Match(Target.Value, Sheets("List Mois").Range("January"), 0) Then
Cells(13, i).EntireColumn.Hidden = True
End If
End If
Next i
Application.ScreenUpdating = True
End If
End Sub

Permet de remettre toutes les colonnes visibles

A++
a+ à tous
 

Discussions similaires

Statistiques des forums

Discussions
315 261
Messages
2 117 857
Membres
113 354
dernier inscrit
caillet