Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2013 Macro pour masquer automatiquement la collone

lestoiles1

XLDnaute Occasionnel
Bonjour,

J'aimerais masquer automatiquement la colonne AE , AF, AG , si les cellules AE36, AF36, AG36 , ne contiennent aucune valeur (comme le mois de Février)

Merci

Lestoiles1
 

Pièces jointes

  • Capture.PNG
    12.4 KB · Affichages: 20

Dudu2

XLDnaute Barbatruc
Bonjour,
Le problème n'est pas de masquer le colonnes. Le problème est de déterminer sur quel évènement ce masquage doit intervenir:
- Lors de la saisie d'une des 3 cellules ?
- Lors de l'enregistrement du classeur ?
- Lors de la désactivation de la feuille ?
- etc...
 

Dudu2

XLDnaute Barbatruc
Bonjour,
Je suppose qu'il y a du code VBA pour construire ce calendrier automatique.
C'est dans ce code qu'il faut intégrer le masquage des colonnes.
S'il n'y a pas de code, et que tout est manuel, il faut masquer manuellement.
On ne peut pas deviner ce qu'il y a dans un fichier qu'on n'a pas.
 

lestoiles1

XLDnaute Occasionnel
Private Sub Worksheet_Calculate()
If Range("AD45") = "" Then Range("AD45").EntireColumn.Hidden = True Else Range("AD45").EntireColumn.Hidden = False
If Range("AE45") = "" Then Range("AE45").EntireColumn.Hidden = True Else Range("AE45").EntireColumn.Hidden = False
If Range("AF45") = "" Then Range("AF45").EntireColumn.Hidden = True Else Range("AF45").EntireColumn.Hidden = False
End Sub
 

job75

XLDnaute Barbatruc
Bonjour,

Eh oui lestoiles1, la macro se déclenche quand des formules se recalculent.

C'est pourquoi au post #5 je vous ai demandé s'il y en avait et lesquelles...

Et notez qu'il est plus simple d'écrire :
VB:
Private Sub Worksheet_Calculate()
Columns("AD").Hidden = Range("AD45") = ""
Columns("AE").Hidden = Range("AE45") = ""
Columns("AF").Hidden = Range("AF45") = ""
End Sub
A+
 

lestoiles1

XLDnaute Occasionnel
Salut, j'ai le même problème que toi. Peux-tu partager ta solution s'il te plait ?
Private Sub Worksheet_Calculate()
If Range("AD45") = "" Then Range("AD45").EntireColumn.Hidden = True Else Range("AD45").EntireColumn.Hidden = False
If Range("AE45") = "" Then Range("AE45").EntireColumn.Hidden = True Else Range("AE45").EntireColumn.Hidden = False
If Range("AF45") = "" Then Range("AF45").EntireColumn.Hidden = True Else Range("AF45").EntireColumn.Hidden = False
End Sub
 

Discussions similaires

Réponses
2
Affichages
492
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…