Comment rendre invisible ensemble de cellule - Forum Excel

A voir également:Comment rendre invisible ensemble de celluleComment se rendre invisible sur facebook - Conseils pratiques - Facebook Comment rendre invisible ses amis sur facebook ✓ - Forum - Facebook Se rendre invisible sur messenger ✓ - Forum - Facebook Se rendre invisible sur internet - Conseils pratiques - Protection de la vie privée Rendre invisible son profil facebook - Conseils pratiques - Facebook

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




Forum

A voir également:Comment rendre invisible ensemble de celluleComment se rendre invisible sur facebook - Conseils pratiques - Facebook Comment rendre invisible ses amis sur facebook ✓ - Forum - Facebook Se rendre invisible sur messenger ✓ - Forum - Facebook Se rendre invisible sur internet - Conseils pratiques - Protection de la vie privée Rendre invisible son profil facebook - Conseils pratiques - Facebook

Web: www.shapebootstrap.net

20 /23 réponses

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

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 a aidé 35037 internautes ce mois-ci

Reply

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

Impossible.

Reply

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

... sauf, peut-être, par VBA !
Alors si tu as de la chance, un connaisseur te programmera une macro.
Mais j'en doute !

Reply

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

Bonjour,

les cellules invisibles d'aujourd'huis redeviendront visibles demain??

Reply

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

Bonjour,

Salutations Raymond et f894009

Ou peut-être utiliser le fractionnement

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

Cordialement

Reply

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

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

Reply
réponses:
  • auteur

    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

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

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)??

Reply

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

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

Reply
réponses:
  • auteur

    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.........??

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

bonjour
merci pour la reponse
oui voila une date x d'un mois z
merci de votre aide

Reply
réponses:
  • auteur

    Re,

    Ok, je regarde la chose

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

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 " ?

Reply

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

(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)

Reply

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

Bonjour à tous

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

Cdlmnt

Reply

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

bonjour Raymond
voila tu as tout compris tu as mieux explique
tu as compris ce que je recherche
merci pour ton aide

Reply

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

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

Reply

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

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...

Reply

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

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

Reply
réponses:

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

Bonsoir

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

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

Cordialement

Reply

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

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

Reply
réponses:
  • auteur

    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

  • auteur

    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

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

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...

Reply

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

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

Reply

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed