XL 2013 Masquer colonnes inutiles [Résolu]

chajmi

XLDnaute Occasionnel
Bonjour

J'ai un planning horizontal sur une année complète.
Afin de pouvoir l'imprimer pour chaque mois, je voudrais masquer des colonnes automatiquement :

1/ Soit garder toutes les colonnes du mois
2/ Soit garder uniquement les colonnes que j'aurais cochées auparavant (par une croix en ligne 5), ce qui me permettrait d'imprimer des plannings à cheval sur 2 mois

Merci à celui qui pourra m'aider.

mon fichier en modèle
 

Pièces jointes

  • PLANNING essai 2.xlsm
    35.7 KB · Affichages: 38

Yurperqod

XLDnaute Occasionnel
Bonjour le forum

Une macro pour répondre au 1/
VB:
Sub test()
Dim cell As Range
Dim Mois As Long
Mois = 1 'numéro du mois à ne pas masquer
For Each cell In Range("D6:BR6")
If Not Month(cell.Value2) = Mois Then
cell.Columns.Hidden = True
End If
Next cell
End Sub
 

Yurperqod

XLDnaute Occasionnel
Bonjour
ça fonctionne, mais pour changer de mois, je suis obliger de changer le numéro dans le code.
Comment faire pour que je puisse changer le mois dans une cellule A2
Merci
En modifiant comme dans cette macro.
VB:
Sub testV2()
Dim cell As Range
Dim Mois AsLong
Mois = Month(Range("A2")) ' si en A2 il y a une date
'ou
Mois=Range("A2") 'si en A2, il y un nombre de 1 à 12
ForEach cell In Range("D6:BR6")
IfNot Month(cell.Value2) = Mois Then
cell.Columns.Hidden = True
EndIf
Next cell
EndSub
 

chajmi

XLDnaute Occasionnel
Sub testV2()
Dim cell As Range
Dim Mois As Long
Mois = Range("A2") 'si en A2, il y un nombre de 1 à 12
For Each cell In Range("D6:NE6")
If Not Month(cell.Value2) = Mois Then
cell.Columns.Hidden = True
End If
Next cell
End Sub

Ce code n'a fonctionné que 2 fois, ensuite j'ai le message :
Erreur d'exécution '1004' :
Impossible de définir la propriété Hidden de la classe Range
 

chajmi

XLDnaute Occasionnel
J'ai trouvé ce code là, qui marche bien avec les lignes :

Sub Macro1()
'
For i = 1 To Range("PlagesDonnées").Rows.Count
If Range("c" & i) = 0 And Range("d" & i) = 0 Then


Rows(i).Select

Selection.EntireRow.Hidden = True
End If
Next

End Sub



Est ce que quelqu'un peut me le transformer pour masquer des colonnes ?
Je butte sur le code en rouge, dont je ne comprends pas la signification.

merci d'avance
 

Yurperqod

XLDnaute Occasionnel
Je viens de tester testV2
avec en A2 le chiffre 2 et avec uniquement des dates valides dans les cellules parcourues dans la boucle
J'ai aucun message d'erreur et seules les colonnes contenant une date dont le mois est égal à 2 ne sont pas masquées.
 

chajmi

XLDnaute Occasionnel
Je n'arrive pas à faire fonctionner les conseils ci dessus.
je modifie donc ma demande :

Je voudrais masquer en vba les colonnes ne contenant pas de "x" en lignes 5

Merci de votre aide

Je joins à nouveau mon fichier de départ
 

Pièces jointes

  • PLANNING essai 2.xlsm
    35.7 KB · Affichages: 30

Statistiques des forums

Discussions
312 305
Messages
2 087 079
Membres
103 455
dernier inscrit
saramachado