Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

masquer/afficher selon une valeur

8 réponses
Avatar
Greg
Bonjour,

Tout se joue en ligne 10. Je souhaite qu'à chaque fois qu'excel rencontre la
valeur 0 sur cette ligne (on ne va pas au delà de la colonne CM), il masque
automatiquement la colonne en question ainsi que les 2 suivantes.

Est-ce possible?

Merci à vous.

Greg

8 réponses

Avatar
Corona
Bonjour Greg,
Sub CacheColonne()
Application.ScreenUpdating = False
For x = 1 To 91
If Range("A1").Offset(9, x - 1) = 0 Then Columns(x).Hidden = True
Next
End Sub
Philippe Tulliez

Greg a écrit :
Bonjour,

Tout se joue en ligne 10. Je souhaite qu'à chaque fois qu'excel
rencontre la valeur 0 sur cette ligne (on ne va pas au delà de la
colonne CM), il masque automatiquement la colonne en question ainsi que
les 2 suivantes.

Est-ce possible?

Merci à vous.

Greg


Avatar
Greg
Bonjour Philippe et merci,

Je n'avais pas anticipé un problème: il faut également que l'inverse soit
vrai: si excel rencontre une cellule pleine, il faut que les 3 suivantes
soit affichée.

Comment faire en sorte que cette macro s'applique automatiquement, sans
avoir besoin de la lancer?

Merci encore

Greg



"Corona" a écrit dans le message de
news:
Bonjour Greg,
Sub CacheColonne()
Application.ScreenUpdating = False
For x = 1 To 91
If Range("A1").Offset(9, x - 1) = 0 Then Columns(x).Hidden = True
Next
End Sub
Philippe Tulliez

Greg a écrit :
Bonjour,

Tout se joue en ligne 10. Je souhaite qu'à chaque fois qu'excel rencontre
la valeur 0 sur cette ligne (on ne va pas au delà de la colonne CM), il
masque automatiquement la colonne en question ainsi que les 2 suivantes.

Est-ce possible?

Merci à vous.

Greg




Avatar
Corona
L'inverse, je suppose que cela veux dire d'afficher si <> de 0 donc tu
regardes dans les réponses que je t'ai faites les jours précédents sur
le même sujet et tu fais if .... then .... else ... hidden = false
Si tu souhaites toutes les 3 colonnes il faut faire une boucle avec un
pas de 3 soit
for x = 1 to 91 step 3. Ainsi la lecture se fera aux colonnes 1, 4,
7, 10, 13 ETC ...
Pour que la procédure s'enclenche automatiquement, il faut utiliser
une procédure événementielle mais il faudrait savoir à quel moment tu le
souhaites. A l'ouverture du classeur, en cliquant sur la feuille, sur
une cellule ?
Philippe

Greg a écrit :
Bonjour Philippe et merci,

Je n'avais pas anticipé un problème: il faut également que l'inverse
soit vrai: si excel rencontre une cellule pleine, il faut que les 3
suivantes soit affichée.

Comment faire en sorte que cette macro s'applique automatiquement, sans
avoir besoin de la lancer?

Merci encore

Greg



"Corona" a écrit dans le message de
news:
Bonjour Greg,
Sub CacheColonne()
Application.ScreenUpdating = False
For x = 1 To 91
If Range("A1").Offset(9, x - 1) = 0 Then Columns(x).Hidden = True
Next
End Sub
Philippe Tulliez

Greg a écrit :
Bonjour,

Tout se joue en ligne 10. Je souhaite qu'à chaque fois qu'excel
rencontre la valeur 0 sur cette ligne (on ne va pas au delà de la
colonne CM), il masque automatiquement la colonne en question ainsi
que les 2 suivantes.

Est-ce possible?

Merci à vous.

Greg







Avatar
Corona
Greg,
1) Pour afficher/Masquer chaque colonne dont la cellule de la ligne
10 contient ou ne contient pas 0
Sub CacheColonne()
Application.ScreenUpdating = False
For x = 1 To 91
Columns(x).Hidden = Range("A1").Offset(9, x - 1) = 0
Next
End Sub

2) Pour afficher/Masquer les 3 colonnes(soit x, x+1, x+2) dont la
cellule de la ligne 10 de la colonne x contient ou ne contient pas 0
Sub CacheColonne()
Application.ScreenUpdating = False
For x = 1 To 91 Step 3
For Y = 0 To 2
Columns(x + Y).Hidden = Range("A1").Offset(9, x - 1) = 0
Next
Next
End Sub
3) Reste à savoir à quel événement cette procédure doit être enclenchée.
Philippe

Greg a écrit :
Bonjour Philippe et merci,

Je n'avais pas anticipé un problème: il faut également que l'inverse
soit vrai: si excel rencontre une cellule pleine, il faut que les 3
suivantes soit affichée.

Comment faire en sorte que cette macro s'applique automatiquement, sans
avoir besoin de la lancer?

Merci encore

Greg



"Corona" a écrit dans le message de
news:
Bonjour Greg,
Sub CacheColonne()
Application.ScreenUpdating = False
For x = 1 To 91
If Range("A1").Offset(9, x - 1) = 0 Then Columns(x).Hidden = True
Next
End Sub
Philippe Tulliez

Greg a écrit :
Bonjour,

Tout se joue en ligne 10. Je souhaite qu'à chaque fois qu'excel
rencontre la valeur 0 sur cette ligne (on ne va pas au delà de la
colonne CM), il masque automatiquement la colonne en question ainsi
que les 2 suivantes.

Est-ce possible?

Merci à vous.

Greg







Avatar
Greg
Merci Philippe,

J'ai fait quelques essais mais je m'arrache un peu les cheveux. Voici un
exemple précis de mon problème: http://cjoint.com/?murqnKpIIm

Ce que je souhaite, c'est qu'à chaque fois qu'un nouveau nom, ou que l'un
d'entre eux disparait dans la feuille 2, les colonnes disparaissent de
manière à se présenter tel que sur la feuille 3. La feuille de travail est
la feuille 1

Dans l'espoir d'être plus clair...

Greg
Avatar
Corona
Bonsoir Greg,
Ton fichier fait 0 byte
Je ne sais pas si c'est un problème avec le site cjoint car c'est le
deuxième que je télécharge aujourd'hui avec le même problème.
Pourrais-tu le télécharger sur www.cijoint.fr
J'ai fait un test il y a 5 minutes en téléchargeant un classeur sur
les 2 sites cjoint et cijoint
sur cijoint je n'ai pas eu de problème alors que sur le premier le
classeur faisait 0 byte
Philippe

Greg a écrit :
Merci Philippe,

J'ai fait quelques essais mais je m'arrache un peu les cheveux. Voici un
exemple précis de mon problème: http://cjoint.com/?murqnKpIIm

Ce que je souhaite, c'est qu'à chaque fois qu'un nouveau nom, ou que
l'un d'entre eux disparait dans la feuille 2, les colonnes disparaissent
de manière à se présenter tel que sur la feuille 3. La feuille de
travail est la feuille 1

Dans l'espoir d'être plus clair...

Greg



Avatar
Greg
Aussitôt dit...
http://www.cijoint.fr/cjlink.php?file=cj200912/cijuLYRFm3.xls

Aussitôt fait...



"Corona" a écrit dans le message de
news:
Bonsoir Greg,
Ton fichier fait 0 byte
Je ne sais pas si c'est un problème avec le site cjoint car c'est le
deuxième que je télécharge aujourd'hui avec le même problème.
Pourrais-tu le télécharger sur www.cijoint.fr
J'ai fait un test il y a 5 minutes en téléchargeant un classeur sur les
2 sites cjoint et cijoint
sur cijoint je n'ai pas eu de problème alors que sur le premier le
classeur faisait 0 byte
Philippe

Greg a écrit :
Merci Philippe,

J'ai fait quelques essais mais je m'arrache un peu les cheveux. Voici un
exemple précis de mon problème: http://cjoint.com/?murqnKpIIm

Ce que je souhaite, c'est qu'à chaque fois qu'un nouveau nom, ou que l'un
d'entre eux disparait dans la feuille 2, les colonnes disparaissent de
manière à se présenter tel que sur la feuille 3. La feuille de travail
est la feuille 1

Dans l'espoir d'être plus clair...

Greg





Avatar
Corona
Le problème est que si tu supprimes une ligne de la feuille 2 la cellule
de la feuille 3 qui y fait référence renvoie un message d'erreur.
Tout est possible en VBA mais je me demande si tu choisis la bonne voie.
Ne connaissant pas le but final, c'est difficile de t'indiquer une piste
Philippe

Greg a écrit :
Aussitôt dit...
http://www.cijoint.fr/cjlink.php?file=cj200912/cijuLYRFm3.xls

Aussitôt fait...



"Corona" a écrit dans le message de
news:
Bonsoir Greg,
Ton fichier fait 0 byte
Je ne sais pas si c'est un problème avec le site cjoint car c'est le
deuxième que je télécharge aujourd'hui avec le même problème.
Pourrais-tu le télécharger sur www.cijoint.fr
J'ai fait un test il y a 5 minutes en téléchargeant un classeur sur
les 2 sites cjoint et cijoint
sur cijoint je n'ai pas eu de problème alors que sur le premier le
classeur faisait 0 byte
Philippe

Greg a écrit :
Merci Philippe,

J'ai fait quelques essais mais je m'arrache un peu les cheveux. Voici
un exemple précis de mon problème: http://cjoint.com/?murqnKpIIm

Ce que je souhaite, c'est qu'à chaque fois qu'un nouveau nom, ou que
l'un d'entre eux disparait dans la feuille 2, les colonnes
disparaissent de manière à se présenter tel que sur la feuille 3. La
feuille de travail est la feuille 1

Dans l'espoir d'être plus clair...

Greg