Masquer colonnes suivant condition

Foufoudora

XLDnaute Occasionnel
Bonjour le Forum,

je sollicite votre aide sur une macro qui devrait verifier a l'ouverture du fichier la cellule H11 de chaque feuille si elle est vide, cette cellule contient une formule; si elle est vide de masquer les colonnes de G:L

fichier joint


Private Sub Workbook_Open()
Dim temp()
Dim I As Single, j As Single
ReDim temp(1 To Sheets.Count)
j = 1
For I = 1 To Sheets.Count
temp(j) = Sheets(I).Name
If Sheets(j).Cells(11, 8).FormulaR1C1 = "" Then
Columns("G:L").Select
Selection.EntireColumn.Hidden = True
Next I
End Sub

Merci pour votre aide
 

Pièces jointes

  • Masquer colonnes.xls
    19.5 KB · Affichages: 97
Dernière édition:

jeanpierre

Nous a quitté
Repose en paix
Re : Masquer colonnes suivant condition

Bonjour Foufoudora,

Simplement en modifiant comme suit :

Private Sub Workbook_Open()
Dim temp()
ReDim temp(1 To Sheets.Count)
J = 1
For I = 1 To Sheets.Count
temp(J) = Sheets(I).Name

If Sheets(J).Cells(11, 8) = "" Then
Columns("G:L").Select
Selection.EntireColumn.Hidden = True (supprimer .FormulaR1C1 )

J = J + 1

End If

Next I
End Sub

A te lire et bon 1er mai

Jean-Pierre
 

Foufoudora

XLDnaute Occasionnel
Re : Masquer colonnes suivant condition

Bonjour le forum, jeanpierre,

D'abord c'est vrai Happy 1er mai pour vous, mais malheureusement je travaille,

merci pour ta reponse par contre ca me masque que les colonnes de la feuille 1 pas les autres

Merci par avance
 

Cousinhub

XLDnaute Barbatruc
Re : Masquer colonnes suivant condition

Bonjour Foufoudora
Salut JP :)

Je ne comprends pas trop l'utilisation d'un tableau.....:confused:

Essaie avec ce code :

Code:
Private Sub Workbook_Open()
Dim sh
For Each sh In Sheets
    With sh
        If .[H11].Value = "" Then _
            .Columns("G:L").EntireColumn.Hidden = True
    End With
Next sh
End Sub
 

Foufoudora

XLDnaute Occasionnel
Re : Masquer colonnes suivant condition

Bonjour le Forum, jeanpierre, bhbh,

Merci pour ta reponse, c'est magnifique, ca fonctionne.
pour te dire que je connais pas grand chose en VBA mais j'essai d'apprendre et adapter des macros trouves sur ce site pour mon besoin.
merci pour ce site

derniere question, si j'ai des feuilles qui sont masquees et je ne souhaite pas appliquer la condition de masquer les colonnes dans ces feuilles comment je peux faire.
je m'explique : je dois appliquer seulement cette macro sur les feuilles qui sont intitulees "Jan", 'Feb' ... "Dec" parce que les autres feuilles du classeur sont masquees. j'espere que j'etais clair. dur le 1er Mai

Merci par avance
 

Cousinhub

XLDnaute Barbatruc
Re : Masquer colonnes suivant condition

Re-,
rajoute une condition :

Code:
Private Sub Workbook_Open()
Dim sh
For Each sh In Sheets
    With sh
        If [COLOR="Red"].Visible = True[/COLOR] And .[H11].Value = "" Then _
            .Columns("G:L").EntireColumn.Hidden = True
    End With
Next sh
End Sub
 

Foufoudora

XLDnaute Occasionnel
Re : Masquer colonnes suivant condition

Bonjour le forum, jeanpierre, bhbh

Excuses moi bhbh de ne pas pouvoir te répondre sur le champ.
merci beaucoup ca fonctionne bien par contre juste un souci sur mon fichier original ci joint sur la feuille de fevrier comme le mois est plus cours que les autres je me retrouve avec une semaine non masquée.

aurai-t-il une solution pour ce problèmE.
2- il y a une possibilité de recalculer et remasquer les colonnes au cas d'un changement d'anNée
par exemple si je chaNge l'année ou le mois, par exemple le mois de juin, je me retrouve avec des nouveaux colonnes et des données masquées. je pense à un truc du genre réactualiser les feuilles au changement "un refrech sheet" si ca existe comme pour le TCD
NB: le fichier comporte bien sur des feuilles de Janvier à decembre mais par souci de taille je me suis limité à 2 feuilles


MERCI PAR AVANCE
 

Pièces jointes

  • Planning_Hebdo_V2.xls
    40 KB · Affichages: 100
  • Planning_Hebdo_V2.xls
    40 KB · Affichages: 103
  • Planning_Hebdo_V2.xls
    40 KB · Affichages: 104
Dernière édition:

Foufoudora

XLDnaute Occasionnel
Re : Masquer colonnes suivant condition

Bonjour le forum, bhbh

j'ai résolu le premier problème et la macro fonctionne à merveille par contre concernant mon deuxième problème qui est de raffrechir les feuilles si je change l'année je n'ai pas réussi; j'ai essayé avec workbook_changesheet() sans succés . peux-tu m'aider.

j'ai fait ta même macro mais pour afficher les colonnes commandé par un bouton ca fonctionne mais n'aurai-t-il pas une solution automatique.

merci par avance
 

nberte

XLDnaute Nouveau
Re : Masquer colonnes suivant condition

Bonjour à vous,

Je me permets de reprendre le fil de cette discussion parce que je suis sur la même problématique...j'ai copié le code que tu as proposé et ca fonctionne MAIS je voudrais que ça se fasse automatiquement...

C'est un fichier ds lequel des indicateurs doivent être rentrés en fonction de la source. Donc 1 fois la source selectionnée en colonne A, il faudrait que les colonnes qui sont liées restent affichées mais les autres masquées automatiquement sans cliquer sur 1 bouton de macro.

Je m'explique : j'ouvre mon fichier, toutes les colonnes doivent être affichées. Ensuite, si je rentre "a" en A3, je voudrais que les colonnes intitulées 2 et 3 se masquent. Idem, si je rentre "b" en A3, que les colonnes 1 et 3 se masquent ou encore si je rentre "c" en A3, que les colonnes 1 et 2 se masquent...

Pour le moment, j'arrive à le faire mais qu'avec 1 bouton...et encore, il me manque le code pour que toutes les colonnes soient affichées quand j'ouvre le fichier.

Je voudrais aussi savoir si en faisant un filtre, je peux aussi avoir un masque automatiques des colonnes non liées ?

Fichier joint pour que ça soit plus clair....

Merci beaucoup de votre aide!

nberte
 

Pièces jointes

  • Bilan.zip
    20.9 KB · Affichages: 59
  • Bilan.zip
    20.9 KB · Affichages: 52
  • Bilan.zip
    20.9 KB · Affichages: 51

Discussions similaires

Réponses
11
Affichages
304
Réponses
29
Affichages
969

Membres actuellement en ligne

Statistiques des forums

Discussions
312 348
Messages
2 087 508
Membres
103 568
dernier inscrit
NoS