Afficher des colonnes masquées sous conditions

riton00

XLDnaute Impliqué
Bonjour à tous


Est-il possible d'afficher certaines colonnes masquées, par le biais des menus déroulants existant en colonne E ou AN.

1. C’est à dire lorsque je sélectionne " H+ INDIVIDUEL VOLONTAIRE " par le biais des menus déroulants existant en colonne E ou AN les colonnes J-K-L _ AS-AT-AU (actuellement masqué) devraient s'afficher et les colonnes G-H-I _ AP-AQ-AR qui sont actuellement visible devraient se masquer.

2. Ensuite lorsque je sélectionne " H- COLLECTIVES " par le biais des menus déroulants existant en colonne E ou AN les colonnes M-N-O _ AV-AW-AX (actuellement masqué) devraient s'afficher et les colonnes J-K-L _ AS-AT-AU qui sont actuellement visible devraient se masquer.

3. Ensuite lorsque je sélectionne " H+ COLLECTIVES ou HOR. AFFICHÉ SUPP. COLLECTIF " par le biais des menus déroulants existant en colonne E ou AN les colonnes P-Q-R _ AY-AZ-BA (actuellement masqué) devraient s'afficher et les colonnes M-N-O _ AV-AW-AX qui sont actuellement visible devraient se masquer.

4. Ensuite lorsque je sélectionne " H+ INDIVIDUEL AFFICHÉES ou HOR. AFFICHÉ SUPP. INDIVIDUEL " par le biais des menus déroulants existant en colonne E ou AN les colonnes S-T-U _ BB-BC-BD (actuellement masqué) devraient s'afficher et les colonne P-Q-R _ AY-AZ-BA qui sont actuellement visible devraient se masquer.

5. Ensuite lorsque je sélectionne " H+ RAPPEL TÉLÉPHONIQUE " par le biais des menus déroulants existant en colonne E ou AN les colonnes V-W-X _ BE-BF-BG (actuellement masqué) devraient s'afficher et les colonnes S-T-U _ BB-BC-BD qui sont actuellement visible devraient se masquer.


6. Ensuite lorsque je sélectionne " CONGÉ PRIS HEURE DANS LE COMPTEUR " par le biais des menus déroulants existant en colonne E ou AN les colonnes G-H-I _ AP-AQ-AR (actuellement masqué) devraient s'afficher et les colonnes V-W-X _ BE-BF-BG qui sont actuellement visible devraient se masquer.

Merci pour votre aide

Cordialement
 

Pièces jointes

  • Calendrier.xls
    669 KB · Affichages: 106
  • Calendrier.xls
    669 KB · Affichages: 102
  • Calendrier.xls
    669 KB · Affichages: 116
Dernière édition:

vmax01

XLDnaute Occasionnel
Re : Afficher des colonnes masquées sous conditions

bonjour le forum et bonjour riton00.

ton menu déroulant ne comporte que des chiffres !? ou est le menu déroulant avec les données que tu donnes ? de plus en AN il n'y a pas de menu deroulant.
pourquoi ne pas faire un deuxieme menu déroulant pour ce que tu veux faire ??
 
Dernière édition:

riton00

XLDnaute Impliqué
Re : Afficher des colonnes masquées sous conditions

Bonjour le forum et vmax01


ton menu déroulant ne comporte que des chiffres !? ou est le menu déroulant avec les données que tu donnes ? pourquoi ne pas faire un deuxieme menu déroulant pour ce que tu veux faire ??

En fait les menus déroulant tu les trouvent dans la colonne E, dans les plages E4:E34 et E41:E71 ainsi de suite et dans la colonne AN dans les plages AN4:AN34 et AN41:AN71 ainsi de suite.

Cordialement
 

vmax01

XLDnaute Occasionnel
Re : Afficher des colonnes masquées sous conditions

bonsoir le forum et bonsoir Riton00
voici un code qui marche .... bon il n'est pas très élaboré mais ça marche (j’ai pas un gros niveau en VBA dèzzz)
a placer juste avant le FIN de ton GOTO tout en bas de ton événementielle
Code:
With ActiveSheet
.Range("G:I,AP:AR").ColumnWidth = 4 'reinitialise les colonnes reduction
.Range("j:R,T:X").ColumnWidth = 0 'reinitialise les colonnes augmentation
If Target = "H+ INDIVIDUEL VOLONTAIRE" Then
.Range("J:L,AS:AU").ColumnWidth = 4
.Range("G:I,AP:AR").ColumnWidth = 0
Exit Sub
    End If
    If Target = "H - COLLECTIVES" Then
        .Range("M:O,AV:AX").ColumnWidth = 4
        .Range("J:L,AS:AU").ColumnWidth = 0
        Exit Sub
    End If
        If Target = "H+ COLLECTIVES" Or Target = "HOR. AFFICHÉ SUPP. COLLECTIF" Then
            .Range("P:R,AY:BA").ColumnWidth = 4
            .Range("M:O,AV:AX").ColumnWidth = 0
            Exit Sub
        End If
            If Target = "H+ INDIVIDUEL AFFICHÉES" Or Target = "HOR. AFFICHÉ SUPP. INDIVIDUEL" Then
                .Range("S:U,BB:BD").ColumnWidth = 4
                .Range("P:R,AY:BA").ColumnWidth = 0
                Exit Sub
            End If
                If Target = "H+ RAPPEL TÉLÉPHONIQUE" Then
                    .Range("V:X,BE:BG").ColumnWidth = 4
                    .Range("T:U,BB:BD").ColumnWidth = 0
                    Exit Sub
                End If
        If Target = "CONGÉ PRIS HEURE DANS LE COMPTEUR" Then
            .Range("G:I,AP:AR").ColumnWidth = 4
            .Range("V:X,BE:BG").ColumnWidth = 0
            Exit Sub
        End If
End With

bonne soirée.
 
Dernière édition:

riton00

XLDnaute Impliqué
Re : Afficher des colonnes masquées sous conditions

Bonjour vmax01 ainsi qu'au forum

Merci à toi vmax01 pour l’aide que tu m’apportes je testerais cette après-midi ou ce soir ton code, et je te ferais part du résultat, désolé je n’ai pas le temps dans l'immédiat pour cause, emploi du temps très chargé aujourd’hui.

Salutation
 

riton00

XLDnaute Impliqué
Re : Afficher des colonnes masquées sous conditions

Bonjour vmax01 et au forum

C’est pas mal pour une personne qui dit qui n’a pas un gros niveau en VBA, t'es toujours meilleur que moi puisque moi je ne capte pas grand chose en macro, mais comme je te l’ai dit suite aux essais je te fais part du résultat, alors j’ai constaté que lorsque tu affiches des données en plage E4:E34 ou E41:E71 etc ou AN4:AN34 et AN41:AN71 etc à l’aide du menu déroulant certaines colonnes ne se masque pas, en fait la règle serait d’avoir dans tout les cas que trois colonnes de visible de chaque côté du calendrier. Comme la présentation de mon calendrier en pièce jointe.

Salutation
 

vmax01

XLDnaute Occasionnel
Re : Afficher des colonnes masquées sous conditions

bonsoir le forum et bonsoir riton00.

voila j'ai reglé le blem et j'ai en plus mis une annulation si tu ecris dans une autre colonne que celle concernée. comme ça il ne réinitialisera pas a tous bout de champs.

Code:
With ActiveSheet
If Target.Column <> 5 And Target.Column <> 40 Then Exit Sub
    .Range("G:I,AP:AR").ColumnWidth = 4 'reinitialise les colonnes reduction
    .Range("j:AH,AS:BG").ColumnWidth = 0 'reinitialise les colonnes augmentation
    If Target = "H+ INDIVIDUEL VOLONTAIRE" Then
        .Range("J:L,AS:AU").ColumnWidth = 4
        .Range("G:I,AP:AR").ColumnWidth = 0
        Exit Sub
    End If
        If Target = "H - COLLECTIVES" Then
            .Range("M:O,AV:AX").ColumnWidth = 4
            .Range("J:L,AS:AU").ColumnWidth = 0
            Exit Sub
        End If
            If Target = "H+ COLLECTIVES" Or Target = "HOR. AFFICHÉ SUPP. COLLECTIF" Then
                .Range("P:R,AY:BA").ColumnWidth = 4
                .Range("M:O,AV:AX").ColumnWidth = 0
                Exit Sub
            End If
                If Target = "H+ INDIVIDUEL AFFICHÉES" Or Target = "HOR. AFFICHÉ SUPP. INDIVIDUEL" Then
                    .Range("S:U,BB:BD").ColumnWidth = 4
                    .Range("P:R,AY:BA").ColumnWidth = 0
                    Exit Sub
                End If
                    If Target = "H+ RAPPEL TÉLÉPHONIQUE" Then
                        .Range("V:X,BE:BG").ColumnWidth = 4
                        .Range("T:U,BB:BD").ColumnWidth = 0
                        Exit Sub
                    End If
            If Target = "CONGÉ PRIS HEURE DANS LE COMPTEUR" Then
                .Range("G:I,AP:AR").ColumnWidth = 4
                .Range("V:X,BE:BG").ColumnWidth = 0
                Exit Sub
            End If
End With

bonne soirée
 
Dernière édition:

riton00

XLDnaute Impliqué
Re : Afficher des colonnes masquées sous conditions

Bonsoir vmax01 et le forum

Merci vmax01 pour l'intérêt que tu portes à mon fichier mais en fait j'ai testé ta nouvelle macro, mais le problème y est toujours présent, je t'ai mis un fichier Word en parallèle pour plus de compréhension
Ta macro est pratiquement au point mais l'inconvénient c'est que les colonnes g,h,i et ap,aq,ar reste presque tout le temp visible.

Salutation
 

Pièces jointes

  • vmax01.doc
    383.5 KB · Affichages: 62
Dernière édition:

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Afficher des colonnes masquées sous conditions

Bonjour,
A partir de copier/coller du code de vmax01 (merci) en remplaçant les IF par un select.

A mettre au début de Private Sub Worksheet_Change
Code:
Const S1 = "H+ INDIVIDUEL VOLONTAIRE", Col1 = "J:L,AS:AU"
Const S2 = "H- COLLECTIVES", Col2 = "M:O,AV:AX"
Const S3 = "H+ COLLECTIVES", S33 = "HOR. AFFICHÉ SUPP. COLLECTIF", Col3 = "P:R,AY:BA"
Const S4 = "H+ INDIVIDUEL AFFICHÉES", S44 = "HOR. AFFICHÉ SUPP. INDIVIDUEL", Col4 = "S:U,BB:BD"
Const S5 = "H+ RAPPEL TÉLÉPHONIQUE", Col5 = "V:X,BE:BG"
Const S6 = "CONGÉ PRIS HEURE DANS LE COMPTEUR", Col6 = "G:I,AP:AR"

If Target.Count = 1 And (Target.Column = Range("E1").Column Or Target.Column = Range("AN1").Column) Then
    'On masque tout
    Application.ScreenUpdating = False
    Range(Col1).EntireColumn.Hidden = True: Range(Col2).EntireColumn.Hidden = True
    Range(Col3).EntireColumn.Hidden = True: Range(Col4).EntireColumn.Hidden = True
    Range(Col5).EntireColumn.Hidden = True: Range(Col6).EntireColumn.Hidden = True
    Select Case Target.Value
        Case S1
            'on affiche ce qu'on veut
            Range(Col1).EntireColumn.Hidden = False
        Case S2
            Range(Col2).EntireColumn.Hidden = False
        Case S3, S33
            Range(Col3).EntireColumn.Hidden = False
        Case S4, S44
            Range(Col4).EntireColumn.Hidden = False
        Case S5
            Range(Col5).EntireColumn.Hidden = False
        Case S6
            Range(Col6).EntireColumn.Hidden = False
        Case Else
            ' éventuellement mettre ici les colonnes à afficher par défaut
    End Select
    Application.ScreenUpdating = True
End If
 
Dernière édition:

riton00

XLDnaute Impliqué
Re : Afficher des colonnes masquées sous conditions

Bonjour mapomme, vmax01, et au forum

Merci mapomme pour cette nouvelle macro, les essais sont tout à fait concluant et correspondent bien à mon souhait, je remercie aussi bien chaleureusement vmax01 qui a bien voulu m'aider depuis le début de ma demande et que grâce à lui, le fil n’a pas été rompu
Je vous souhaite par la même occasion à vous deux ainsi qu’à tous les adeptes du forum de joyeuse fête de Noël ainsi qu’une bonne année 2012

Henri
 

vmax01

XLDnaute Occasionnel
Re : Afficher des colonnes masquées sous conditions

bonjour le riton et bonjour mapomme.

effectivement riton tu ne m'avais pas dit que ces colonnes devaient etre masqué car sur ton exemple elles étaient visibles donc je les ai laissées..... donc pour enlever ces colonnes tu va remplacer le premier code pas celui ci....
ancien code : .Range("G:I,AP:AR").ColumnWidth = 4 'reinitialise les colonnes reduction
nouveau code: .Range("G:I,AP:AR").ColumnWidth = 0 'reinitialise les colonnes reduction

c'est tout ce qui clochait...

bonne journée a tous.
 

Discussions similaires

Statistiques des forums

Discussions
312 239
Messages
2 086 500
Membres
103 236
dernier inscrit
Menni