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

Masquer colonnes des samedi et dimanche

  • Initiateur de la discussion Initiateur de la discussion Chrisjo56
  • 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 !

C

Chrisjo56

Guest
Bonsoir,

Voici ce qui m'amène. Je suis en train de créer un fichier Excel qui comptabilise des données sur une année. J'ai fait un onglet par mois et un dernier de synthèse qui additionne les totaux de chaque mois. Jusque là tout va bien ;-)

J'aimerais améliorer ce fichier en enlevant les week-end. J'ai commencé par masquer les colonnes correspondantes aux week-end mais il me semblerait plus judicieux de créer une macro qui le fasse pour moi et c'est là que ça coince car les macros et moi... je n'ai pratiquement aucune notion de VBA et j'ai fouiné sur le net pour trouver une macro. Problème, celle-ci fonctionne mais seulement si les dates sont sur des lignes. Or, dans mon fichier, elles sont en colonne.

Si l'un d'entre vous peut me venir en aide, je lui en serais très reconnaissant.

D'avance merci.
PS : petite précision : je suis sous Excel 2003.
 
Re : Masquer colonnes des samedi et dimanche

bonsoir Chrisjo56, le forum
tu trouveras ici des nombreuses personnes pour t'aider mais sans fichier avec au moins quelques données comment veux tu que l'on puisse d'aider ?
à te lire avec un fichier exemple
 
Re : Masquer colonnes des samedi et dimanche

Chrisjo, Alexga, bonsoir,

on peut écrire une macro qui masquerait dans chacun de tes onglets les colonnes we mais il faut deux impératifs à mon sens :
-1) que la ligne portant les entêtes de colonnes soient la même dans tous tes onglets
-2) que les dates qui figurent dans ces entêtes mentionnent le jour correspondant à la date ainsi on pourra s'appuyer sur sam et dim pour masquer les colonnes we

Un fichier serait le bienvenu.

A+
 
Re : Masquer colonnes des samedi et dimanche

re Chrisjo56,
bonsoir ledzepfred,

un petit essai en supposant que le nom des jours soit présent dans la première ligne de chaque onglet,
peux pas faire mieux sans un petit fichier


Code:
Option Explicit
Dim ws As Worksheet, cel As Range, va$
Sub masque_we()
For Each ws In ActiveWorkbook.Worksheets
    With ws
        For Each cel In .Range(.Cells(1, 1), .Cells(1, 256).End(xlToLeft))
            If cel = "SAMEDI" Or cel = "DIMANCHE" Then
                If Len(cel.Address) = 4 Then
                va = Left(Replace(cel.Address, "$", ""), 1)
                Else
                va = Left(Replace(cel.Address, "$", ""), 2)
                End If
            .Columns(va).Hidden = True
            End If
        Next cel
    End With
Next ws
va = ""
End Sub
Sub affiche_we()
On Error Resume Next
For Each ws In ActiveWorkbook.Worksheets
Columns.Hidden = False
Next ws
End Sub

Bonne soirée
 
Dernière édition:
Re : Masquer colonnes des samedi et dimanche

Bonjour et merci pour vos réponses. Effectivement, avec un fichier cela sera plus parlant, Je vous joint donc un des onglets du fichier en question. J'ai eu plusieurs pistes qui fonctionnent sauf une petite chose : mes dates sont sur des cellules fusionnées et les macros que j'ai essayées ne masquent que la 1ère des 3 colonnes du WE.
J'ai donc, en attendant mieux (et si cela est possible) fait la manip manuellement.

Je vous remercie une nouvelle fois et vous souhaite un bon dimanche ... enfin ce qu'il en reste..

@miités
 

Pièces jointes

Re : Masquer colonnes des samedi et dimanche

bonsoir chrisjo, alexga,

je suis parti du code d'alexga et l'ai adapté à la structure de ton fichier :

-j'identifie le jour de la semaine grâce à la fonction JOURSEM (en vba : weekday) qui renvoie le n° de jour de la date soit 7 pour samedi et 1 pour dimanche, si cel est vide (comme c'est le cas pour tes cellules fusionnées), la fonction weekday renvoie le n° du jour (aujourd'hui... en l'occurence dimanche soit 1) d'où le si sur les valeurs vides de cel (je sais pas trop si je suis clair là!!)

Code:
Option Explicit
Dim ws As Worksheet, cel As Range
Sub masque_we()
On Error Resume Next
Application.ScreenUpdating = False
For Each ws In ActiveWorkbook.Worksheets
    With ws
        For Each cel In .Range(.Cells(1, 3), .Cells(1, 256).End(xlToLeft))
            If IsEmpty(cel) = False Then
                If Weekday(cel) = 7 Or Weekday(cel) = 1 Then .Activate: .Range(Cells(1, cel.Column), Cells(1, cel.Column + 2)).EntireColumn.Hidden = True
            End If
        Next cel
    End With
Next ws
End Sub
Sub affiche_we()
On Error Resume Next
Application.ScreenUpdating = False
For Each ws In ActiveWorkbook.Worksheets
ws.Activate
Columns.Hidden = False
Next ws
End Sub

a+

EDIT: bonsoir alexga, on a eu la même idée pour weekday🙂
 

Pièces jointes

Dernière édition:
Re : Masquer colonnes des samedi et dimanche

Bonsoir Chrisjo56, le forum,

Un essai pour ton fichier : c'est un peu de la bricole car en effet les cellules fusionnées posent problèmes.
Les experts de ce forum trouveront surement une solution plus élégante que moi...je suis encore un petit scarabée 🙂
Bonne soirée
 

Pièces jointes

Dernière édition:
Re : Masquer colonnes des samedi et dimanche

Un petit conseil en passant :
Il faut supprimer toutes les cellules fusionnées et les remplacer par un centrage dans la sélection ...
Tu éviteras un nombre incalculable d'ennuis ... !!!

A+
 
Re : Masquer colonnes des samedi et dimanche

Ca y est !!

Un grand merci à vous, et particulièrement Ledzepfred (avec un avatar plutot "floydien" que "Zeppelien" 🙂 et alexga dont les deux propositions fonctionnent à merveille. Je vais maintenant tenter de déchiffrer ces deux macros afin d'en apprendre un peu plus sur VBA.

James007, au risque de paraitre plus nul que je ne le suis (et encore !!🙂, peux-tu m'expliquer comment faire un centrage dans la sélection ? Jusqu'à ce jour, je n'ai jamais entendu parler de cette manip, c'est pourquoi j'utilise très régulièrement la fusion de cellules.

Encore merci à tous ceux qui ont pris la peine de me lire.

Bonne soirée
Chris
 
Re : Masquer colonnes des samedi et dimanche

Sous excel 2000 ...

Format Cellules Alignement Horizontal ... dernier choix ...

A+

Bonjour James007,

Effectivement, je ne connaissais pas cet alignement pas. Par contre, la macro initiale aura le même comportement, à savoir qu'elle ne masquera que la 1ère colonne, les 2 autres, qui ne contiennent pas de date, ne le seront pas. D'où retour aux macros proposées par Alexga et Ledzepfred.

Merci encore pour ta réponse et bonne journée.

Cordialement,
Chris
 
Re : Masquer colonnes des samedi et dimanche

Bonjour Chris jo56,

Ok ... je n'ai pas parlé de la macro ... effectivement...

C'était juste un conseil pour le futur : "jamais de cellules fusionnées" ...
car c'est le meilleur moyen de se créer ses futurs problèmes ..

A +
 
Re : Masquer colonnes des samedi et dimanche

Rebonjour,

OK. Merci donc pour ce tuyau qui, c'est sûr, m'évitera bien des soucis à l'avenir.

Bien amicalement
Chris
 
Re : Masquer colonnes des samedi et dimanche

Bonsoir,

Sous Excel 2003, je souhaite masquer les colonnes correpondant aux samedi et dimanche.
J'ai repris la macro dans le fichier joint, mais ce message d'erreur apparait :
"Erreur d'exécution '13':
Incompatibilité de type"

Je souhaite effectuer cette macro sur une seule feuille.

Merci d'avance de votre aide.
 

Pièces jointes

Re : Masquer colonnes des samedi et dimanche

Bonjour Trishia, et bienvenue sur le forum

J'ai repris la macro dans le fichier joint, mais ce message d'erreur apparait :
"Erreur d'exécution '13':
Incompatibilité de type"

l'erreur est simplement due au fait que la cellule P6 ne contient pas une date
- vide la cellule P6

à+
Philippe

Remarque:
il eut été préférable d'ouvrir un nouveau fil de discussion au lieu de déterrer celui-ci
 
- 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

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