IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Améliorer le code VBA: Afficher/ masquer des colonnes selon le mois et l'année que l'on décide d'afficher [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2019
    Messages : 6
    Par défaut Améliorer le code VBA: Afficher/ masquer des colonnes selon le mois et l'année que l'on décide d'afficher
    Bonjour,

    Mon problème est le suivant:
    sur la première ligne, j'ai les dates des jours de 01/01/2018 jusqu'au 31/12/2020. j'ai un code me permettant d'afficher les jours d'un mois qu'on choisit via une liste déroulante et de masquer le reste de l'année. le code est codé en dur, j'aimerai savoir comment je peux l'améliorer. voici une partie du code.
    Merci d'avance
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    Private Sub Worksheet_Change(ByVal Target As Range) 
     
    With Feuil1 '
    .Unprotect ' 
     
            If Target.Address = "$D$3" Then 
                Reponse = MsgBox("Êtes-vous sûr de vouloir afficher la période   " & " " & dateTarget & "?", vbOKCancel) 
     
                Select Case Reponse
                Case vbOK ' 
     
               If .Cells(3, 3) = "2018" Then ''choix de l'année 2018
                    .Columns("E:NE").EntireColumn.Hidden = False '2018 ' colonnes affichées
                    .Columns("NF:APH").EntireColumn.Hidden = True '2019/20'colonnes masquées
     
     
                    If .Cells(3, 4) = "1" Then
                        .Columns("E:AI").EntireColumn.Hidden = False 'Janvier
                        .Columns("AJ:NE").EntireColumn.Hidden = True
     
     
                    ElseIf .Cells(3, 4) = "2" Then
                        .Columns("AJ:BK").EntireColumn.Hidden = False 'Fev
                        .Columns("E:AI").EntireColumn.Hidden = True
                        .Columns("BL:NE").EntireColumn.Hidden = True
     
     
                    ElseIf .Cells(3, 4) = "3" Then
                        .Columns("BL:CP").EntireColumn.Hidden = False 'Mars
                        .Columns("E:BK").EntireColumn.Hidden = True
                        .Columns("CQ:NE").EntireColumn.Hidden = True
     
     
                    ElseIf .Cells(3, 4) = "4" Then
                        .Columns("CQ:DT").EntireColumn.Hidden = False 'Avril
                        .Columns("E:CP").EntireColumn.Hidden = True
                        .Columns("DU:NE").EntireColumn.Hidden = True

  2. #2
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    re
    on pourrait avoir un exemple de ce fichier réduit a quelque lignes je voudrais bien tenter quelque chose (bidonne les donnée si il faut)
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  3. #3
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    re
    pour commencer en codant basiquement (niveau débutant)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub testx()
        Application.ScreenUpdating = False
        For i = 5 To Cells(1, "APH").Column
            With Cells(1, i)
                If Month(CDate(.Value)) = Val([D4].Value) And Year(CDate(.Value)) = Val([D3].Value) Then .EntireColumn.Hidden = False Else .EntireColumn.Hidden = True
            End With
        Next
    End Sub
    en fonction de l'année en D3 et le mois en D4 les cellules seront visible ou pas
    tu peux mettre cela dans l'évènement sheets_change par exemple avec le target sur D4
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  4. #4
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2019
    Messages : 6
    Par défaut
    Merci de vos réponses
    Ci joint un exemple du fichier. DataDev.xlsx

  5. #5
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    re

    regarde le code dans le module "Feuil1"
    Fichiers attachés Fichiers attachés
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  6. #6
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2019
    Messages : 6
    Par défaut
    Merci Beaucoup. c'est ce que je cherchais

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2003] Code VBA pour masquer des onglets en fonction du contenu d'une cellule
    Par Sergio33600 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 19/02/2017, 10h02
  2. [XL-2003] Cacher des colonnes selon le mois en cours
    Par NEC14 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 23/04/2009, 10h05
  3. Tri des entrée selon le mois ou l'année
    Par karaemrah dans le forum Requêtes
    Réponses: 1
    Dernier message: 22/08/2007, 11h26
  4. Afficher/masquer des colonnes : VBA vs Claire
    Par mouaa dans le forum VBA Access
    Réponses: 4
    Dernier message: 20/08/2007, 09h11
  5. [VBA-E] Problème pour masquer des colonnes.
    Par martiweb dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 25/04/2007, 02h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo