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

Masquer / Créer les feuilles automatiquement

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

J

jflegros

Guest
Bonjour,
j'essaie de créer un code qui ajoute ou masque des feuilles en fonction d'une plage de cellules.
Dès qu'il y a une modification dans celle-ci, la macro vérifie que les feuilles correspondent bien à la plage de cellule. Si ce n'est pas le cas , les feuilles sont masquées ou ajoutées automatiquement
Ci-joint un fichier pour mieux comprendre mon problème

Merci à ceux qui voudront bien m'aider
 

Pièces jointes

Re : Masquer / Créer les feuilles automatiquement

Bonjour à vous deux,
PJean, ton code fonctionne très bien et répond au besoin, au top !!
LWolf, dès que je sélectionne une cellule (sans la modifier), cela ajoute un onglet..
Merci à vous d'avoir pris un peu de temps
 
Re : Masquer / Créer les feuilles automatiquement

Rebonjour pierrejean, jflegros

Dans le code de pierrejean, j'ai vu que la feuille Dates se masque aussi (un peu dommage, vu que c'est la feuille principale.) J'ai donc apporté deux modifications.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("C33:I33")) Is Nothing Then
  For Each cel In Range("C33:I33")
    nom = Format(Day(cel.Value), "00") & "-" & Format(Month(cel.Value), "00")
      For Each sh In Sheets
        If sh.Name <> ActiveSheet.Name Then
          If sh.Name = nom Then
            present = True
            Exit For
          End If
        End If
      Next
      If present Then
        Sheets(nom).Visible = True
      Else
        Sheets.Add(after:=Worksheets(Worksheets.Count)).Name = nom  'ICI
      End If
      present = False
  Next
  For Each sh In Sheets
  
    For Each cel In Range("C33:I33")
      nom = Format(Day(cel.Value), "00") & "-" & Format(Month(cel.Value), "00")
      If sh.Name = nom Then
         dans = True
         Exit For
      End If
    Next
    If dans = False And sh.Name <> ActiveSheet.Name Then sh.Visible = False: Sheets("Dates").Visible = True    'ET ICI
 
dans = False
Next
End If
End Sub


A+ 😎
 
Re : Masquer / Créer les feuilles automatiquement

Re
Non La feuille Dates ne se masque pas car :
If dans = False And sh.Name <> ActiveSheet.Name Then sh.Visible = False
Mais il est vrai qu'elle est moins visible puisque la nouvelle feuille vient en tête et je suis d'accord avec
after:=Worksheets(Worksheets.Count)
 
- 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
3
Affichages
298
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…