Masquer feuilles

[Résolu/Fermé]
Signaler
Messages postés
673
Date d'inscription
mardi 17 août 2010
Statut
Membre
Dernière intervention
11 juin 2021
-
Messages postés
673
Date d'inscription
mardi 17 août 2010
Statut
Membre
Dernière intervention
11 juin 2021
-
Bonjour,
je voudrais masquer 31 feuilles de mon classeur selon la valeur de la cellule "A4"
les feuilles sont nommés en jour +date ex:lun1,mardi2 etc
et je voudrais cacher les feuilles dont le nom commence par "s" ou "d" pour samedi et dimanche
et afficher les autres
j ai fait ceci pour cacher les feuilles
Sub miseenpage()
Application.ScreenUpdating = False

Rows("7:13").RowHeight = 62
Columns("C:AP").ColumnWidth = 6.6
Columns("S:Z").ColumnWidth = 0.5
ActiveWindow.DisplayGridlines = False
Range("A4").FormulaR1C1 = "=LEFT(TEXT(R[-2]C,""jjj""),1)"
Range("A4").Select
With Selection.Font
.ThemeColor = xlThemeColorDark1
.TintAndShade = 0
End With
ActiveSheet.Name = ActiveSheet.Range("A2").Text

If [A4] = "s" Then
ActiveSheet.Visible = False
ElseIf [A4] = "" Then
Sheets.Visible = True
End If
If [A4] = "d" Then
ActiveSheet.Visible = False
ElseIf [A4] = "" Then
Sheets.Visible = True
End If
Application.ScreenUpdating = True
End Sub
deja je pense que les 2 dernieres If[A4] on pourrait faire plus court mai j y arrive pas
Puis si je change de mois il me faut reafficher toutes les feuilles changer de date et refaire ma macro pour cacher les samedis et dimanches
comment peut on s'y prendre
je vous joins le fichier
https://www.cjoint.com/c/GCffow62AqF
merci de votre aide


5 réponses

Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 531
Bonjour,

deja je pense que les 2 dernieres If[A4] on pourrait faire plus court
Effectivement, l'on peux faire plus simple :
    If Weekday([A2], 2) > 5 Then
        ActiveSheet.Visible = False
    Else
        ActiveSheet.Visible = True
    End If

et cela t'évites ta formule A4 inutile
Je pense que tu t'ais compliqué la vie : pourquoi mettre du code dans chaque feuille alors qu'une gestion de tes Worksheet_SelectionChange et Activate peut très bien être faite dans thisworkbook

Puis si je change de mois il me faut reafficher toutes les feuilles
avec une simple macro cela devrait le faire :
Public Sub change_mois()
Dim feu As Integer, moi As String
moi = Application.InputBox("nouveau mois", "Changement mois", "/mm/aa")
For feu = 1 To Sheets.Count
    With Sheets(feu).[A2]
        .Value = CDate(DateValue(feu & moi))
        If Weekday(.[A2], 2) > 5 Then
            Sheets(feu).Visible = False
        Else
            Sheets(feu).Visible = True
        End If
Next feu
End Sub
Messages postés
673
Date d'inscription
mardi 17 août 2010
Statut
Membre
Dernière intervention
11 juin 2021
4
bonjour
je dois mettre quoi dans Private Sub Workbook_Activate()
et quoi dans Private Sub Workbook_SelectionChange()?
car la j essai mais mes feuilles ne se reaffichent pas je dois toujours faire manuellement
merci
Messages postés
673
Date d'inscription
mardi 17 août 2010
Statut
Membre
Dernière intervention
11 juin 2021
4
bonjour
pourrais tu modifier le fichier que je vois l exemple que tu proposes stp
car comme tu vois je ne suis pas le plus calé lol
merci
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 531
Bonjour,
C'est quoi un "reset" ?
J'aime bien comprendre pourquoi faire compliqué quand l'on peut faire simple ;-)
Messages postés
673
Date d'inscription
mardi 17 août 2010
Statut
Membre
Dernière intervention
11 juin 2021
4 >
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020

Bonjour
c est pour effacer et enlever les couleurs et remettre les grilles blanches en place sur la plage
Range("C7:R13,AA7:AP13") de toutes les feuilles du mois
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 531
Bonjour,

Pourquoi tu ne le fais pas dans la macro d'initialisation du mois : ce serait trop simpliste ?
Messages postés
673
Date d'inscription
mardi 17 août 2010
Statut
Membre
Dernière intervention
11 juin 2021
4
Bonjour
en fait je veux proteger contre une mauvaise manip avec un une alerte d autorisation
genre "voulez vous changer de mois oui ou non"
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 531
Bonjour,

Comment intervient ton array de feuilles dans le contrôle de la 'manip' ?

J'ai vraiment l'impression que l'on est très loin d'Antoine de Saint-Exupéry...
Messages postés
673
Date d'inscription
mardi 17 août 2010
Statut
Membre
Dernière intervention
11 juin 2021
4
bonjour
array pour sélectionner les feuilles de 1 à 31 puis effacer et formater les cellules précédemment nommes

--
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 531
Bonjour,

As-tu tout simplement testé que ton code du message 21 ne fonctionne pas ?
Messages postés
673
Date d'inscription
mardi 17 août 2010
Statut
Membre
Dernière intervention
11 juin 2021
4 >
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020

Bonjour

ça bloque car les feuilles sont cachés il me faudrait les faire apparaitre puis exécuter la macro je pense
Puis exécuter le formatage des cellules
mais je n arrive pas a combiner le tout lol
si je dois mettre select ou pas
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 531
Bonjour,

Si tu connais le problème, pas de souci tu vas le résoudre.
Messages postés
673
Date d'inscription
mardi 17 août 2010
Statut
Membre
Dernière intervention
11 juin 2021
4
bonjour
oui j ai l habitude de me prendre la tête pendant des heures
ma question était si on pouvait faire plus court pour sélectionner ces feuilles si non je pars la dessus
merci

--
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 531
Bonjour,

oui j ai l habitude de me prendre la tête pendant des heures
J'ai bien compris que ce que tu m'avais demandé d'encoder dans ton classeur était beaucoup trop simple pour toi qui n'est pas un adepte de St-Ex : bon courage donc pour complexifier tout cela puisque c'est ton classeur, et non le mien.
Messages postés
673
Date d'inscription
mardi 17 août 2010
Statut
Membre
Dernière intervention
11 juin 2021
4
Bonjour
ça y est j ai réussi a faire ce que je voulais de ce coté la tout est ok merci a toi
Je voudrais ameillorer si c'est possible de mettre une barre verticale qui defilerait avec le temps a 8h en debut de page et a 18h en fin de page? je n ai pas trouvé de renseignements sur ça
Et comment faire pour copier le texte d'une cellule dans un textbox et rajouter l'heure en debut quand on recolle donc
range.select=Now()+"texte copié"
ou est ce possible sans le copier dans le textbox
merci
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 531
Bonjour,

mettre une barre verticale qui defilerait avec le temps
C'est possible et cela devrait te plaire car c'est un belle usine à gaz.

est ce possible sans le copier dans le textbox
[A1] = Time & [A1]
Messages postés
673
Date d'inscription
mardi 17 août 2010
Statut
Membre
Dernière intervention
11 juin 2021
4 >
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020

bonsoir
pour le copier collé time c'est bon
Par contre je n ai pas trouvé de sites hors payants qui donnent des exemples d'une barre verticale
ça pourrait se trouver ou ?
merci
Messages postés
673
Date d'inscription
mardi 17 août 2010
Statut
Membre
Dernière intervention
11 juin 2021
4 >
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020

bonsoir
c'est pas ce que je recherche
ce que je parle c'est une barre qui défilerait automatiquement avec le temps pas par rapport au pourcentage ou données des cellules