Discussion:
Comment masquer automatiquement une colonne Cx si L1Cx=0 ?
(trop ancien pour répondre)
PascalPourtsidis
2005-10-26 13:17:05 UTC
Permalink
Problématique Excel :

Je cherche à masquer automatiquement un ou plusieurs colonnes répondant
individuellement à une condition dont le critère figure au sein de la
première cellule de chaque colonne.

Ex:
L1C2 <>0 alors afficher la colonne
L1C3 = 0 alors masquer la colonne
L1Ci = 0 alors masquer la colonne
L1Cx <>0 alors afficher la colonne

Merci de vos réponse
Daniel
2005-10-26 13:35:37 UTC
Permalink
Bonjour.
A quel moment veux-tu le faire ? à l'ouverture du classeur, à l'activation
de la feuille ou à la volée, si la valeur change ?
Cordialement.
Daniel
Post by PascalPourtsidis
Je cherche à masquer automatiquement un ou plusieurs colonnes répondant
individuellement à une condition dont le critère figure au sein de la
première cellule de chaque colonne.
L1C2 <>0 alors afficher la colonne
L1C3 = 0 alors masquer la colonne
L1Ci = 0 alors masquer la colonne
L1Cx <>0 alors afficher la colonne
Merci de vos réponse
PascalPourtsidis
2005-10-26 14:07:35 UTC
Permalink
Bonjour,

à la volée si la valeur change.
Merci.
Post by Daniel
Bonjour.
A quel moment veux-tu le faire ? à l'ouverture du classeur, à l'activation
de la feuille ou à la volée, si la valeur change ?
Cordialement.
Daniel
Post by PascalPourtsidis
Je cherche à masquer automatiquement un ou plusieurs colonnes répondant
individuellement à une condition dont le critère figure au sein de la
première cellule de chaque colonne.
L1C2 <>0 alors afficher la colonne
L1C3 = 0 alors masquer la colonne
L1Ci = 0 alors masquer la colonne
L1Cx <>0 alors afficher la colonne
Merci de vos réponse
Daniel
2005-10-26 16:04:25 UTC
Permalink
J'ai pas trop compris quelle colonne il fallait masquer. Voici un exemple de
code à placer dans la feuille considérée :

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("C1")) Is Nothing Then Exit Sub
If Target.Value <> 0 Then Columns(1).Hidden = False
If Target.Value = 0 Then Columns(1).Hidden = True
End Sub

Ce code se base sur la valeur de la cellule C1 pour masquer ou afficher la
colonne A
Daniel
Post by PascalPourtsidis
Bonjour,
à la volée si la valeur change.
Merci.
Post by Daniel
Bonjour.
A quel moment veux-tu le faire ? à l'ouverture du classeur, à l'activation
de la feuille ou à la volée, si la valeur change ?
Cordialement.
Daniel
Post by PascalPourtsidis
Je cherche à masquer automatiquement un ou plusieurs colonnes répondant
individuellement à une condition dont le critère figure au sein de la
première cellule de chaque colonne.
L1C2 <>0 alors afficher la colonne
L1C3 = 0 alors masquer la colonne
L1Ci = 0 alors masquer la colonne
L1Cx <>0 alors afficher la colonne
Merci de vos réponse
PascalPourtsidis
2005-10-26 16:30:02 UTC
Permalink
Merci Daniel,

Dans quelle feuille dois-je placer ce code? S'agit il d'une Macro? d'un code
VBA? comment active-on ce code?
Post by Daniel
J'ai pas trop compris quelle colonne il fallait masquer. Voici un exemple de
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("C1")) Is Nothing Then Exit Sub
If Target.Value <> 0 Then Columns(1).Hidden = False
If Target.Value = 0 Then Columns(1).Hidden = True
End Sub
Ce code se base sur la valeur de la cellule C1 pour masquer ou afficher la
colonne A
Daniel
Post by PascalPourtsidis
Bonjour,
à la volée si la valeur change.
Merci.
Post by Daniel
Bonjour.
A quel moment veux-tu le faire ? à l'ouverture du classeur, à l'activation
de la feuille ou à la volée, si la valeur change ?
Cordialement.
Daniel
Post by PascalPourtsidis
Je cherche à masquer automatiquement un ou plusieurs colonnes répondant
individuellement à une condition dont le critère figure au sein de la
première cellule de chaque colonne.
L1C2 <>0 alors afficher la colonne
L1C3 = 0 alors masquer la colonne
L1Ci = 0 alors masquer la colonne
L1Cx <>0 alors afficher la colonne
Merci de vos réponse
Daniel
2005-10-26 17:10:36 UTC
Permalink
Il s'agît d'une macro écrite en VBA.
Tu fais un clic droit sur l'onglet de ta feuille et tu choisis l'option
"visualiser le code". Tu colles la macro dans la fenêtre qui vient de
s'ouvrir. C'est tout. Quand tu entres 0 en C1, la colonne A est masquée et
quand tu mets autre chose en C1, la colonne A1 est réaffichée. Dis-moi
précisement ce que tu comptes faire et le forum modifiera le code de la
macro en conséquence. Je dis "le forum", car il y a une émission comique ce
soir sur France3 et je ne voudrais pas rater ça.
Daniel
Post by PascalPourtsidis
Merci Daniel,
Dans quelle feuille dois-je placer ce code? S'agit il d'une Macro? d'un code
VBA? comment active-on ce code?
Post by Daniel
J'ai pas trop compris quelle colonne il fallait masquer. Voici un exemple de
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("C1")) Is Nothing Then Exit Sub
If Target.Value <> 0 Then Columns(1).Hidden = False
If Target.Value = 0 Then Columns(1).Hidden = True
End Sub
Ce code se base sur la valeur de la cellule C1 pour masquer ou afficher la
colonne A
Daniel
Post by PascalPourtsidis
Bonjour,
à la volée si la valeur change.
Merci.
Post by Daniel
Bonjour.
A quel moment veux-tu le faire ? à l'ouverture du classeur, à l'activation
de la feuille ou à la volée, si la valeur change ?
Cordialement.
Daniel
écrit
dans
Post by PascalPourtsidis
Je cherche à masquer automatiquement un ou plusieurs colonnes répondant
individuellement à une condition dont le critère figure au sein de la
première cellule de chaque colonne.
L1C2 <>0 alors afficher la colonne
L1C3 = 0 alors masquer la colonne
L1Ci = 0 alors masquer la colonne
L1Cx <>0 alors afficher la colonne
Merci de vos réponse
schweini
2017-02-10 07:52:03 UTC
Permalink
Post by PascalPourtsidis
Je cherche à masquer automatiquement un ou plusieurs colonnes
répondant
individuellement à une condition dont le critère figure au sein de la
première cellule de chaque colonne.
L1C2 <>0 alors afficher la colonne
L1C3 = 0 alors masquer la colonne
L1Ci = 0 alors masquer la colonne
L1Cx <>0 alors afficher la colonne
Merci de vos réponse
Bonjour,

Je déterre ce vieux sujet car j'aurais une question semblable.
Je ne sais pas si c'est possible. Dans ma feuille excel, je souhaite masquer u
certain nombre de colonnes et les faire apparaître au fur et à mesure si un
cellule est rempli dans la colonne précédente.

C'est à dire :
Si dans la plage J8àJ62, les cellules sont toutes vides alors masquer le
colonnes K,L,M,N,O.
Si dans la plage J8àJ62, une cellule n'est plus vide, alors faire apparaître l
colonne K.
Puis si dans la plage K8àK62, une cellule n'est plus vide alors faire apparaîtr
la colonne L et ainsi de suite jusqu'à O


Pensez vous que c'est possible de réaliser ça avec une Macro vba ?
MichD
2017-02-10 11:41:23 UTC
Permalink
Bonjour,

En supposant que j'ai bien compris ta demande,
Colle la procédure suivante dans le module de la feuille où l'action se déroule.

'----------------------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim X As Long

If Not Intersect(Target, Range("J8:J62")) Is Nothing Then
X = Application.CountA(Range("J8:J62"))
Columns("K:O").EntireColumn.Hidden = False
Select Case X
Case 0
Columns("K:O").EntireColumn.Hidden = False
Case 1
Columns("K").EntireColumn.Hidden = True
Case 2
Columns("K:L").EntireColumn.Hidden = True
Case 3
Columns("K:M").EntireColumn.Hidden = True
Case 4
Columns("K:N").EntireColumn.Hidden = True
Case 5
Columns("K:O").EntireColumn.Hidden = True
End Select
End If
End Sub
'----------------------------------------------------

MichD

Loading...