Masquer feuilles

Résolu
surplus Messages postés 673 Date d'inscription   Statut Membre Dernière intervention   -  
surplus Messages postés 673 Date d'inscription   Statut Membre Dernière intervention   -
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



--
Slts               A bientôt 
Surplus

5 réponses

  1. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    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
    
    0
    1. surplus Messages postés 673 Date d'inscription   Statut Membre Dernière intervention   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
      0
  2. surplus Messages postés 673 Date d'inscription   Statut Membre Dernière intervention   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
    0
    1. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
       
      Bonsoir,

      J'essaies de te faire cela pour demain.
      0
    2. surplus Messages postés 673 Date d'inscription   Statut Membre Dernière intervention   4 > gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention  
       
      merci bonne soiree
      0
    3. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
       
      Bonjour,

      Voici ton classeur avec la gestion du masquage des week-ends. Elle se fait au changement de mois qui est déclenchée par la modification du mois en A1 sur la première feuille du mois. Petit bémol, si le premier jour du mois est ' week-end', il faut la démasquer au préalable.


      https://www.cjoint.com/c/GCgjG1cfQOl

      Bon test et bonne journée
      0
    4. surplus Messages postés 673 Date d'inscription   Statut Membre Dernière intervention   4 > gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention  
       
      bonsoir
      cool c est exactement ce que je voulais puisque même les mois en 30j la 31 eme feuille se cache
      je vais voir exactement ce que tu as fait car c est pas exactement les 2 macros que tu m as proposées en debut du post
      merci encore
      0
    5. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
       
      Bonsoir,
      Les macros proposées y sont mais j'ai rajouté la boucle sur toutes les feuilles.
      J'ai par contre utilisé ta liste déroulante plutôt que l'inputbox.

      Si tu veux faire un raz de tes données feuilles précédentes, c'est simple à rajouter.

      https://www.cjoint.com/c/GCguwgsWTjl
      0
  3. surplus Messages postés 673 Date d'inscription   Statut Membre Dernière intervention   4
     
    bonjour
    array pour sélectionner les feuilles de 1 à 31 puis effacer et formater les cellules précédemment nommes

    --
    0
    1. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
       
      Bonjour,

      As-tu tout simplement testé que ton code du message 21 ne fonctionne pas ?
      0
      1. surplus Messages postés 673 Date d'inscription   Statut Membre Dernière intervention   4 > gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention  
         
        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
        0
    2. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
       
      Bonjour,

      Si tu connais le problème, pas de souci tu vas le résoudre.
      0
  4. surplus Messages postés 673 Date d'inscription   Statut Membre Dernière intervention   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

    --
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    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.
    0
    1. surplus Messages postés 673 Date d'inscription   Statut Membre Dernière intervention   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
      0
    2. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
       
      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]
      0
      1. surplus Messages postés 673 Date d'inscription   Statut Membre Dernière intervention   4 > gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention  
         
        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
        0
      1. surplus Messages postés 673 Date d'inscription   Statut Membre Dernière intervention   4 > gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention  
         
        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
        0