• Initiateur de la discussion Initiateur de la discussion Fabien
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

F

Fabien

Guest
Bonjour

Je sais qu'il y a déjà eu à peu près le même problème de poser
mais je uis trop nul pour réusir à l'adapter...

Si BC2="7 ou 8"
masquer colonne T à W et AF à la dernière
Si BC2="9 ou 10"
masquer colonne AF à la fin

Sachant que j'ai d'autre macro qui masque des lignes (peut être sans importance)

A+ les VBtistes.
 
Bonsoir Fabien,

2 solutions possibles, soit tu déclenches la macro au moment opportun (par une autre procédure, par bouton ...) soit tu utilises l'évènnement Change de ta feuille.

En tous cas, je te propose la solution suivante :
Sub maskcol()
Select Case [BC2].Value
Case 7 To 8
[T1:W1].EntireColumn.Hidden = True
[AF1:IV1].EntireColumn.Hidden = True
Case 9 To 10
[AF1:IV1].EntireColumn.Hidden = True
End Select
End Sub

Bonne continuation,

Rai
 
Merci Rai

J'avais oublier de mettre 1 àprès la lettre de ma colonne lors çà me masquait tout les lignes

Je me demandais si on pouvait aller plus loin, en écrivant si BC2 change
alors execute macro maskcol...

et pourrait on écrire plutot
ta macro avec des IF pour ne pas avoir à selection la cellule

Merci après c'est promis je te souhaite un bon week-end

A+
 
re-,

2 choses.

1. L'instruction SELECT CASE ne sélectionne pas la cellule, même si la syntaxe peut prêter à confusion.
SELECT CASE permet d'envisager plusieurs cas de figures (BC2=7 ou 8, BC2=9 ou 10) et de dire ce que l'on fait dans ces cas (grâce aux CASE).
Cette manière de procéder est équivalent à l'emploi d'une pléthore de IF, mais évite de se bagarrer avec.

2. Si tu veux faire en sorte que le masquage s'effectue automatiquement, il faut insérer le code suivant dans ta feuille concernée :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$BC$2" Then
Select Case [BC2].Value
Case 7 To 8
[T1:W1].EntireColumn.Hidden = True
[AF1:IV1].EntireColumn.Hidden = True
Case 9 To 10
[AF1:IV1].EntireColumn.Hidden = True
End Select
End If
End Sub

Bonne fin de semaine

Rai
 
Lol, énervé ???
Pourquoi ??

Non, non j'écris toujours avec ce style ;o))

Sincèrement, tu ne m'as pas énervé.
Ca m'énerve que tu me demandes ça ;o)))))
(euh, observe le smilley stp !!)

Ta question m'a rappelé quand j'ai découvert le SELECT CASE,
et encore maintenant je n'y pense que des fois après avoir placé 233 IF imbriqués.

Bonne fin de semaine,

Et au plaisir (sisi !!) de te croiser au détour du forum

Rai
 
Re bonjour

Correctif

J'ai changé ma cellule pour que ce soit "7" ou "8"

Mais çà ne fonctionnais toujours pas, je me suis aperçu que certaines lignes fusionnées à cheval sur les colonnes en était la cause.

Sinon j'ai un autre souci la cellule BC2 n'est modifié, c'est une formule
C'est en fontion du résultat de cette cellule que je voudrais masquer mais colonne

Quelquun peut - il m'aider

Merci

A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
812
Réponses
5
Affichages
650
Réponses
9
Affichages
765
Réponses
2
Affichages
827
Réponses
6
Affichages
1 K
Retour