Afficher/ Masquer colonnes selon selection de dates

Fermé
Akane69 Messages postés 3 Date d'inscription jeudi 20 juin 2013 Statut Membre Dernière intervention 21 juin 2013 - 20 juin 2013 à 16:45
Mike-31 Messages postés 18354 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 1 janvier 2025 - 21 juin 2013 à 17:38
Un petit problème VBA m'est apparu pour un fichier. Celui ci est :

Le fichier dispose d'un "planning" organisé de cette manière:
. MOIS
. SEMAINES
. JOURS

Ce fichier servant pour un planning annuel, il va falloir faire des "sélections" de mois et de jours à afficher. Pour éviter de passer son temps à sélectionner manuellement les colonnes à afficher ou masquer, j'aimerais pouvoir le faire par VBA, avec une "sélection" de mois et de jour.

Le choix des colonnes à afficher se fait par jour et mois.
En exemple ; Je voudrais afficher uniquement la période de 03 Mai au 05 Juin sur tout le planning.

Le tableau va de la colonne A à NA, dans notre exemple, les colonnes à afficher vont de DS à EZ. Je voudrai avoir par exemple deux cases de sélections, ou l'on rentre les deux jours que l'on souhaite avoir à l'écran et leurs mois correspondant.
Le but étant ici, de faire masquer les colonnes de A à (DS - 1) et de (EZ +1) à NA, autrement dis, ne laisser que les dates du 03 Mai au 05 juin en affichage. Je pense qu'un userForm pourrait faire l'affaire dans ce cas.

J'espère avoir été assez clair dans mes explications. En vous remerciant d'avance.

Cordialement

5 réponses

Mike-31 Messages postés 18354 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 1 janvier 2025 5 110
20 juin 2013 à 18:03
Bonsoir,

Si j'ai bien compris, tu as tes dates de A1 à NA1
Je te conseille de décaler d'une colonne, insère une colonne en début de tableau de sorte a avoir une colonne vide en A pour avoir une zone de saisie des dates limite exemple en A5 tu saisis la date de début et en A6 la date de fin, dans cette colonne tu crées un bouton associé à ce code collé dans un module, teste voir si c'est ce que tu cherches on reverra d'améliorer le code plus tard


Sub Affiche_Colonne ()
Dim M
Dim i
Dim k
Dim e
Columns("B:ND").EntireColumn.Hidden = False 'True
Sheets("Feuil1").Range("A5").Select
M = ActiveCell.Value - 1
Sheets("Feuil1").Select
With Worksheets("Feuil1").Rows("1:1")
Set k = .Find(M, LookIn:=xlValues)
If Not k Is Nothing Then
End If
End With
Range(Range("B1"), Range(k.Address)).EntireColumn.Hidden = True
Sheets("Feuil1").Range("A6").Select
i = ActiveCell.Value + 1
Sheets("Feuil1").Select
With Worksheets("Feuil1").Rows("1:1")
Set e = .Find(i, LookIn:=xlValues)
If Not e Is Nothing Then
End If
End With
Range(Range(e.Address), Range("ND1")).EntireColumn.Hidden = True
End Sub
0
Akane69 Messages postés 3 Date d'inscription jeudi 20 juin 2013 Statut Membre Dernière intervention 21 juin 2013
21 juin 2013 à 14:24
Bonjour Mike-31.
Merci pour ton aide.
Au fait de A1 à NA1 j'ai les mois (cellules fusionnées par mois), de A2 à NA2 on a les semaines( S1,S2,......S52) mais cette ligne n'aura pas d'impact dans notre programme et enfin de A3 à NA3 on a les jours ( ex: de 1 à 31 pour Janvier, de 01 à 28 pour Février etc...). Donc dans notre code on travaillera sur les lignes A1 à NA1 pour les mois et A3 à NA3 pour les jours, ce qui nécessitera une réadaption du code que tu m'as proposé. C'est dommage que l'on ne puisse insérer une pièce jointe dans ce forum, sinon c'aurait été plus clair pour toi p être.
Encore je te remercie d'avance.
cdlt,
0
Mike-31 Messages postés 18354 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 1 janvier 2025 5 110
21 juin 2013 à 16:16
Re,

Bien sur que si, on peut mettre une pièce jointe, il suffit de cliquer sur le lien ci dessous/parcourir pour sélectionner le fichier/créer le lien

reste plus qu'a coller le lien généré dans un post

https://www.cjoint.com/

les cellules fusionnées font toujours mauvais ménage avec les formules comme avec les codes et sont à proscrire
0
Akane69 Messages postés 3 Date d'inscription jeudi 20 juin 2013 Statut Membre Dernière intervention 21 juin 2013
Modifié par Akane69 le 21/06/2013 à 16:34
Voici donc le lien https://www.cjoint.com/?CFvqu6Bf2EV
Merci bcp pour ton aide. On peut défusionner les cellules de mois.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Mike-31 Messages postés 18354 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 1 janvier 2025 5 110
21 juin 2013 à 17:38
Re,

Ton tableau est faut, si on prend par exemple la première semaine de janvier, elle ne commencera pas forcement le 1 et se termine le 6, une semaine commence généralement le lundi et se termine le dimanche

si on regarde la dernière semaine de l'année 2013, elle commence le lundi 30 décembre et suivant le cas est soit la 53éme semaine de l'année ou commence la première de l'an 2014 donc s'arrêtera le 5 janvier et la seconde commencera le 6
a part que la gestion soit propre à l'entreprise ?
0