Menu

Comment rendre invisible ensemble de cellule

- - Dernière réponse :  flexi2202 - 14 oct. 2018 à 00:31
Bonjour a tous
j ai un calendrier avec les jours les uns a cote des autres et sous chaque jour 3 colonnes et donc je me retrouve avec 365 colonnes fois 3
je souhaiterais lorsque je sélectionne un jour que les jours a gauche a droite deviennent invisible et donc qu il me reste juste la colonne jour et les 3 sous colonnes visible
merci de l aide




Afficher la suite 

Votre réponse

20/23 réponses

Meilleure réponse
Messages postés
16704
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
18 décembre 2018
1
Merci
Re,

récupère une possibilité de fichier 170 KO piloter par VBA que tu peux voir soit en clic droit sur l'onglet de feuille et Visualiser le code ou touche Alt et touche F11
ou tu trouveras ce code annoté simplifié et annoté pour comprendre ce que chaque ligne fait
le code s'active dès que tu sélectionnes une date cellule A3

Option Explicit

Private Sub Worksheet_Change(ByVal target As Range)
Dim CellAdress, c As Range ' ----------------------------- déclaration des variables
Dim i As Integer
If Not Intersect(target, Range("A3")) Is Nothing Then ' -- active le code au changement des valeurts cellule A3
On Error Resume Next '------------------------------------ gestion des erreurs, évite le blocage du code
Application.ScreenUpdating = False ' ----------------- suspend le rafraichissement écran, accélérer le code
Columns("C:APH").EntireColumn.Hidden = False ' --- masque les colonnes de C à APH
Columns("C:APH").ColumnWidth = 10 ' -------------- réduit la largeur des colonnes à 10
Range("A3:APH3").NumberFormat = "General" ' ------ change le format de la plage date en format standard
With ActiveSheet.Range("C3:APH3") ' ---------- boucle sur la plage pour rechercher la valeur critère en A3
Set c = .Find([A3], LookIn:=xlValues)
If Not c Is Nothing Then
CellAdress = c.Address ' ------------- identifie l'adresse de la valeur trouvée
End If
End With ' ------------------------------------ arrête la boucle de recherche
Range(CellAdress).Select ' -------------------- sélectionne la valeur trouvée
For i = 3 To 1100 ' ------------------------------- boucle sur les colonnes de 3 à 1100 soit de C à APH
If Cells(3, i) <> [A3] Then ' ----------------- ligne 3 les cellules ne contenant pas la valeur
Cells(3, i).EntireColumn.Hidden = True ' -- les colonnes sont masquées
Else ' ---------------------------------------- sinon si la valeur est trouvée
Cells(3, i).EntireColumn.Hidden = False ' - la colonne est affichée
End If ' -------------------------------------- fin de la condition
Next i ' ------------------------------------------ fin du bouclage ligne 3 des colonnes C à APH
ActiveCell.Offset(-1, 0).Select ' --------------------- sort de la cellule fusionnée
Range(ActiveCell, ActiveCell.Offset(0, 2)).Select ' --- sélectionne les trois cellules correspondates au jour trouvé
Selection.EntireColumn.Hidden = False ' --------------- affiche les trois colonnes concernées
Selection.ColumnWidth = 40 ' -------------------------- redimentionne la largeur des colonnes concernées à 40
Range("C3:APH3").NumberFormat = "dddd dd/mm/yyyy" ' --- rétabli l'affichage "jour semaine jour/mois/année" plage C3:APH3
[A3].NumberFormat = "dd/mm/yyyy" ' -------------------- rétabli l'affichage de la cellule critère A3 jour/mois/année
Application.ScreenUpdating = True ' ----------------------- rétabli le rafraichissement écran
End If ' -------------------------------------------------- fin de la condition
End Sub ' ------------------------------------------------- fin de la procédure

https://www.cjoint.com/c/HJmoF6VpLKj
A+
Mike-31

Je suis responsable de ce que je dis, pas de ce que tu comprends...

Dire « Merci » 1

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez CommentCaMarche

CCM 37987 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Mike-31
Messages postés
47706
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
19 décembre 2018
0
Merci
Impossible.
Commenter la réponse de Raymond PENTIER
Messages postés
47706
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
19 décembre 2018
0
Merci
... sauf, peut-être, par VBA !
Alors si tu as de la chance, un connaisseur te programmera une macro.
Mais j'en doute !
Commenter la réponse de Raymond PENTIER
Messages postés
13821
Date d'inscription
dimanche 25 novembre 2007
Dernière intervention
19 décembre 2018
0
Merci
Bonjour,

les cellules invisibles d'aujourd'huis redeviendront visibles demain??
Commenter la réponse de f894009
Messages postés
1766
Date d'inscription
dimanche 3 mai 2009
Dernière intervention
15 décembre 2018
0
Merci
Bonjour,

Salutations Raymond et f894009

Ou peut-être utiliser le fractionnement

https://www.cjoint.com/c/HJifWrbmJKN

Cordialement
Commenter la réponse de PapyLuc51
Messages postés
1786
Date d'inscription
lundi 14 mars 2011
Dernière intervention
19 décembre 2018
0
Merci
bonjour
merci a tous pour votre aide
super cette idée pour le volet a gauche , y aurait il moyen de faire une recherche et d afficher la date lors d une recherche a l aide d un mini calendrier
pour l instant j ai remplacer le 1,2,3,4 ect ...par des dates
donc lorsque on clic sur une date du mini calendrier que le jour s affiche a gauche
pour repondre a f894009 , oui les donnees rentrees sous les dates doivent etre visible si on rappelle la date
merci de votre aide a tous
PapyLuc51
Messages postés
1766
Date d'inscription
dimanche 3 mai 2009
Dernière intervention
15 décembre 2018
-
Bonjour,

Je ne sais pas si ça marchera, ça risque d'agir sur les deux parties séparées de la feuille ; à moins que les trois colonnes occupent toute la largeur de la page ce qui rendrait inutile le fractionnement.

à voir par les spécialistes d'excel, je passe la main.

Cordialement
Commenter la réponse de flexi2202
Messages postés
13821
Date d'inscription
dimanche 25 novembre 2007
Dernière intervention
19 décembre 2018
0
Merci
Bonjour,
Vous pouvez mettre votre fichier a dispo avec explications détaillées car se sont des cellules ou des colonnes qui doivent être masquées (invisibles)??
Commenter la réponse de f894009
Messages postés
1786
Date d'inscription
lundi 14 mars 2011
Dernière intervention
19 décembre 2018
0
Merci
bonjour

merci pour la réponse
voici mon début de fichier
avoir un mini calendrier et que quand je clique sur la date le jour correspondant vienne a l écran , les jours sont place en horizontal sur tout le classeur
https://www.cjoint.com/c/HJjv5MIVeMu
f894009
Messages postés
13821
Date d'inscription
dimanche 25 novembre 2007
Dernière intervention
19 décembre 2018
-
Bonjour,

Donc quand vous dites la date du jour, ce n'est pas la date du jour en cour mais une date x d'un mois z.........??
Commenter la réponse de flexi2202
Messages postés
1786
Date d'inscription
lundi 14 mars 2011
Dernière intervention
19 décembre 2018
0
Merci
bonjour
merci pour la reponse
oui voila une date x d'un mois z
merci de votre aide
f894009
Messages postés
13821
Date d'inscription
dimanche 25 novembre 2007
Dernière intervention
19 décembre 2018
-
Re,

Ok, je regarde la chose
Commenter la réponse de flexi2202
Messages postés
47706
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
19 décembre 2018
0
Merci
Bonjour flexi2202

Etant donné que tes explications manquent de clarté, doit-on traduire
" j ai un calendrier avec les jours les uns a cote des autres et sous chaque jour 3 colonnes et donc je me retrouve avec 365 colonnes fois 3
je souhaiterais lorsque je sélectionne un jour que les jours a gauche a droite deviennent invisible et donc qu il me reste juste la colonne jour et les 3 sous colonnes visible "
par " J'ai un tableau avec les jours en ligne 4 sur 15 colonnes, réparties en 3 groupes de 5 colonnes, soit un total de 365*3*5=5475 colonnes. Je souhaiterais que lorsque je sélectionne un jour, seules les 15 colonnes correspondent soient affichées " ?
Commenter la réponse de Raymond PENTIER
Messages postés
47706
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
19 décembre 2018
0
Merci
(suite)

Et " avoir un mini calendrier et que quand je clique sur la date le jour correspondant vienne a l écran " signifie qu'il nous faut te fournir un mini-calendrier, en plus de ton immense calendrier de 5000 colonnes ?

Et où faudrait-il placer ce mini-calendrier :
Dans une autre feuille, ou plus bas que la ligne 45 ?

C'est bien, la retraite ! Surtout aux Antilles ... 
Raymond (INSA, AFPA)
Commenter la réponse de Raymond PENTIER
Messages postés
8707
Date d'inscription
lundi 18 octobre 2010
Dernière intervention
15 décembre 2018
0
Merci
Bonjour à tous

Un petit essai via vba (macro)
https://www.cjoint.com/c/HJkrAvZCGsB

Cdlmnt
Commenter la réponse de ccm81
Messages postés
1786
Date d'inscription
lundi 14 mars 2011
Dernière intervention
19 décembre 2018
0
Merci
bonjour Raymond
voila tu as tout compris tu as mieux explique
tu as compris ce que je recherche
merci pour ton aide
Commenter la réponse de flexi2202
Messages postés
1786
Date d'inscription
lundi 14 mars 2011
Dernière intervention
19 décembre 2018
0
Merci
bonjour ccm81
voila parfait il faudrait juste que quand je clic dans le calendrier s affiche devant moi le jour avec les 15 colonnes
je suis en version excel 2016
merci pour le fichier
Commenter la réponse de flexi2202
Messages postés
16704
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
18 décembre 2018
0
Merci
Bonjour,

le 12 septembre tu as déjà posé la même demande, pourquoi ouvrir une nouvelle discussion en doublon
https://www.commentcamarche.net/forum/affich-35580305-soucis-avec-les-mises-en-forme-conditionnelle

surtout que tu avais la solution avec ce classeur !
https://www.cjoint.com/c/HJljA3A53lj


A+
Mike-31

Je suis responsable de ce que je dis, pas de ce que tu comprends...
Commenter la réponse de Mike-31
Messages postés
1786
Date d'inscription
lundi 14 mars 2011
Dernière intervention
19 décembre 2018
0
Merci
bonjour
oui juste tu as raison
j ai la solution tout en poche
j aurais juste voulu savoir comment le reproduire d une autre manière sans utiliser de macro
merci de l aide et la reponse
Raymond PENTIER
Messages postés
47706
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
19 décembre 2018
-
Tu as lu mes réponses #1 et #2 ?
flexi2202
Messages postés
1786
Date d'inscription
lundi 14 mars 2011
Dernière intervention
19 décembre 2018
-
merci pour les liens oui oui j avais vu
Commenter la réponse de flexi2202
Messages postés
1766
Date d'inscription
dimanche 3 mai 2009
Dernière intervention
15 décembre 2018
0
Merci
Bonsoir

Une idée avec des hyperliens mais un peu long à mettre en place

https://www.cjoint.com/c/HJlqEODpvP7

Cordialement
Commenter la réponse de PapyLuc51
Messages postés
1786
Date d'inscription
lundi 14 mars 2011
Dernière intervention
19 décembre 2018
0
Merci
bonsoir
oui je trouve cela plutôt assez sympa comme idée
pourrait on le faire avec un mini calendrier par exemple ou l on choisi la date grace a la souris
merci pour le fichier
PapyLuc51
Messages postés
1766
Date d'inscription
dimanche 3 mai 2009
Dernière intervention
15 décembre 2018
-
Bonjour,

https://www.cjoint.com/c/HJmeLDcpLX7

Je te laisse continuer la mise en place - dans l'exemple les colonnes grises restent apparentes ; celles en jaune sont à masquer - ainsi tu auras ton mini calendrier.

Je ne saurai trop te conseiller de faire un feuillet par mois - tu n'aurais donc qu'une seule fois la colonne F de feuillet 2 qui servirait pour toute l'année.

J'essaye ça dans la journée et j'envoie un exemple.

Cordialement
flexi2202
Messages postés
1786
Date d'inscription
lundi 14 mars 2011
Dernière intervention
19 décembre 2018
-
bonsoir
merci beaucoup pour ce fichier
mais lorsque je parlais de mini calendrier je pensais a celui de windows pres de l horloge
non le feuillet de chaque mois c est pour avoir une vue globale sur les 3 carnets de rdv en mensuel
encore mille fois merci
Commenter la réponse de flexi2202
Messages postés
16704
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
18 décembre 2018
0
Merci
Re,

bien sur le problème peut se traiter par formule, mais bonjour le nombre de formule et la taille du fichier pour traiter 365 jours, sans parler de lenteur, déjà pour traiter 7 jours, 160 KO.
A la taille du fichier qui semble être un agenda, viendra certainement s'ajouter les saisis sur 50 lignes et 1100 colonnes
Comme le soulignait l'ami Raymond que je salue, ce problème ne peut se traiter que par VBA
une solution a été donnée sur la discussion initiale
https://www.commentcamarche.net/forum/affich-35580305-soucis-avec-les-mises-en-forme-conditionnelle

avec ce classeur 36 KO
https://www.cjoint.com/c/HJljA3A53lj

et ce simple code
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("B3")) Is Nothing Then
On Error Resume Next
Application.ScreenUpdating = False
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = (Target.Value * 1 - DateSerial(Year([B3]), 1, 1) * 1) * 3 + 3
Application.ScreenUpdating = True
End If
End Sub

En VBA il est possible d'écrire un code pour afficher que les colonnes souhaitées, de dimensionner les colonnes affichées pour à peine 50 KO avec ce code qui peut être couplé à une liste de validation ou un bouton

Private Sub CommandButton1_Click()
Dim CellAdress, target, c As Range
Dim i As Integer
On Error Resume Next
Application.ScreenUpdating = False
Columns("C:APH").EntireColumn.Hidden = False
Columns("C:APH").ColumnWidth = 10
Range("B3:APH3").NumberFormat = "General"
With ActiveSheet.Range("C3:APH3")
Set c = .Find([B3], LookIn:=xlValues)
If Not c Is Nothing Then
CellAdress = c.Address
End If
End With
Range(CellAdress).Select
For i = 2 To 1100
If Cells(3, i) <> [B3] Then
Cells(3, i).EntireColumn.Hidden = True
Else
Cells(3, i).EntireColumn.Hidden = False
End If
Next i
ActiveCell.Offset(-1, 0).Select
Range(ActiveCell, ActiveCell.Offset(0, 2)).Select
Selection.EntireColumn.Hidden = False
Selection.ColumnWidth = 30
Range("C3:APH3").NumberFormat = "dddd dd/mm/yyyy"
[B3].NumberFormat = "dd/mm/yyyy"
Application.ScreenUpdating = True
End Sub

A+
Mike-31

Je suis responsable de ce que je dis, pas de ce que tu comprends...
Commenter la réponse de Mike-31
Messages postés
1786
Date d'inscription
lundi 14 mars 2011
Dernière intervention
19 décembre 2018
0
Merci
re mike
un mega grand merci pour ton aide
je laisse donc tomber l histoire de passer autrement que par du VBA pour réaliser ce genre de code
je m y connais un tout petit peu en excel mais le VBA pour moi c est nouveau
et j y suis un peu perdu ,surtout si un jour je suis amené a modifier le fichier pour une raison quelconque
y a t il moyen d exécuter ce code VBA ligne par ligne afin de comprendre ce qu il fait
ou alors faut il passer par la case apprentissage
merci de l aide
Commenter la réponse de flexi2202