Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Cacher ou Afficher des onglets

4 réponses
Avatar
Sanaell
Bonjour,
je voudrais simplement en fonction du mois (Case A2) qui est sous forme
numérique, masquer ou afficher les onglets correspondant aux jours
voici la forme du classeur
N°Onglet - Nom
1 - Configuration
2 - 01
3 - 02
4 - 03
5 - 04
etc....
jusqu'a 32 - 31

sachant que le document est remis à jour chaque mois (on archive et on copie
pour faire une mise à jour)
Merci d'avance
ceci m'aiderait vraiment

4 réponses

Avatar
Ange Ounis
Si j'ai bien compris :

''''''''''''dans un module ordinaire :
Sub FeuillesMois()
Dim DernierJour, sht As Worksheet
DernierJour = Day(DateSerial(Year(Date), Sheets("Config").Range("A2").Value +
1, 0))
Application.ScreenUpdating = False
For Each sht In Sheets
sht.Visible = True
Next sht
If DernierJour <> 31 Then
For i = DernierJour + 1 To 31
Sheets(Format(i, "00")).Visible = False
Next i
End If
End Sub

''''''''''''dans le module de la feuille de configuration :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$2" Then FeuillesMois
End Sub

----------
Ange Ounis
----------

Bonjour,
je voudrais simplement en fonction du mois (Case A2) qui est sous forme
numérique, masquer ou afficher les onglets correspondant aux jours
voici la forme du classeur
N°Onglet - Nom
1 - Configuration
2 - 01
3 - 02
4 - 03
5 - 04
etc....
jusqu'a 32 - 31

sachant que le document est remis à jour chaque mois (on archive et on copie
pour faire une mise à jour)
Merci d'avance
ceci m'aiderait vraiment



Avatar
Ange Ounis
Ma proposition suppose qu'en A2 on ait le chiffre du mois (1 pour janvier, 2
pour février, etc.).

----------
Ange Ounis
----------

Bonjour,
je voudrais simplement en fonction du mois (Case A2) qui est sous forme
numérique, masquer ou afficher les onglets correspondant aux jours
voici la forme du classeur
N°Onglet - Nom
1 - Configuration
2 - 01
3 - 02
4 - 03
5 - 04
etc....
jusqu'a 32 - 31

sachant que le document est remis à jour chaque mois (on archive et on copie
pour faire une mise à jour)
Merci d'avance
ceci m'aiderait vraiment



Avatar
Sanaell
C'est parfait.

mais j'ai oublié qqch

je n'arrive pas avec le Rows... à faire qqch

sachant que mon document contient 32 onglets, (config + les jours du mois)
et que dans ces onglets (jour du mois) j'ai 31 lignes chaque jour :)

les lignes vont de 4 à 35
la ligne 36 étant une valeur

je voudrais afficher toutes les lignes par défaut, puis cacher uniquement
les dernieres lignes si elles n'existent pas dans le mois

j avais fait qqch avec
For each rw in sht.Rows.... mais cela ne fonctionne pas
rw.Hidden = True...
enfin voilà
Merci si tu as des lumières
je voulais le mettre dans ton code
For Each sht In Sheets
sht.Visible = True
------------ICI--------------

Next sht




Si j'ai bien compris :

''''''''''''dans un module ordinaire :
Sub FeuillesMois()
Dim DernierJour, sht As Worksheet
DernierJour = Day(DateSerial(Year(Date), Sheets("Config").Range("A2").Value +
1, 0))
Application.ScreenUpdating = False
For Each sht In Sheets
sht.Visible = True
Next sht
If DernierJour <> 31 Then
For i = DernierJour + 1 To 31
Sheets(Format(i, "00")).Visible = False
Next i
End If
End Sub

''''''''''''dans le module de la feuille de configuration :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$2" Then FeuillesMois
End Sub

----------
Ange Ounis
----------

Bonjour,
je voudrais simplement en fonction du mois (Case A2) qui est sous forme
numérique, masquer ou afficher les onglets correspondant aux jours
voici la forme du classeur
N°Onglet - Nom
1 - Configuration
2 - 01
3 - 02
4 - 03
5 - 04
etc....
jusqu'a 32 - 31

sachant que le document est remis à jour chaque mois (on archive et on copie
pour faire une mise à jour)
Merci d'avance
ceci m'aiderait vraiment






Avatar
Ange Ounis
les lignes vont de 4 à 35
la ligne 36 étant une valeur


Si les lignes en question correspondent bien aux 31 jours maximum d'un mois,
alors c'est +tôt 4 à 34 ou 5 à 35.
Ceci dit, pour cacher les lignes qui n'existent pas dans un mois (les dates de 1
à 31 vont des lignes 5 à 35 :

Sub essai()
CacheJours CByte(InputBox("mois ?"))
End Sub

Sub CacheJours(Mois)
Dim DerJourMois, i As Long
Rows(5 & ":" & 35).Hidden = False
DerJourMois = Day(DateSerial(Year(Date), Mois + 1, 0))
If DerJourMois = 31 Then Exit Sub
For i = 35 To DerJourMois + 5 Step -1
Range("A" & i).EntireRow.Hidden = True
Next
End Sub

----------
Ange Ounis
----------

C'est parfait.

mais j'ai oublié qqch

je n'arrive pas avec le Rows... à faire qqch

sachant que mon document contient 32 onglets, (config + les jours du mois)
et que dans ces onglets (jour du mois) j'ai 31 lignes chaque jour :)

les lignes vont de 4 à 35
la ligne 36 étant une valeur

je voudrais afficher toutes les lignes par défaut, puis cacher uniquement
les dernieres lignes si elles n'existent pas dans le mois

j avais fait qqch avec
For each rw in sht.Rows.... mais cela ne fonctionne pas
rw.Hidden = True...
enfin voilà
Merci si tu as des lumières
je voulais le mettre dans ton code
For Each sht In Sheets
sht.Visible = True
------------ICI--------------

Next sht




Si j'ai bien compris :

''''''''''''dans un module ordinaire :
Sub FeuillesMois()
Dim DernierJour, sht As Worksheet
DernierJour = Day(DateSerial(Year(Date), Sheets("Config").Range("A2").Value +
1, 0))
Application.ScreenUpdating = False
For Each sht In Sheets
sht.Visible = True
Next sht
If DernierJour <> 31 Then
For i = DernierJour + 1 To 31
Sheets(Format(i, "00")).Visible = False
Next i
End If
End Sub

''''''''''''dans le module de la feuille de configuration :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$2" Then FeuillesMois
End Sub

----------
Ange Ounis
----------

Bonjour,
je voudrais simplement en fonction du mois (Case A2) qui est sous forme
numérique, masquer ou afficher les onglets correspondant aux jours
voici la forme du classeur
N°Onglet - Nom
1 - Configuration
2 - 01
3 - 02
4 - 03
5 - 04
etc....
jusqu'a 32 - 31

sachant que le document est remis à jour chaque mois (on archive et on copie
pour faire une mise à jour)
Merci d'avance
ceci m'aiderait vraiment