OVH Cloud OVH Cloud

Masquer les onglets correspondant aux dimanches

11 réponses
Avatar
Patrick BASTARD
Bonsoir à toutes et tous.

Mon classeur contient, entre autres, des feuilles nommées (sans les
guillemets) "01.02.2006", "02.02.2006", ..."28.02.2006"
Quelle boucle permettrait de masquer les feuilles correspondant aux
dimanches ?
(valeur 1 renvoyée par joursem())

Dim Sh As Worksheet
For Each Sh In ThisWorkbook.Sheets
If Sh.Name = XXXXXXXXXXX 'c'est là que je coince
Sh.visible = false

D'avance, merci pour vos suggestions.

Bien amicordialement,
P. Bastard

1 réponse

1 2
Avatar
ThierryP
C'est bien comme ça que je l'ai compris :-)))))))))

Bonjour Thierry,

Je n'ai pas dit que cela ne fonctionnait pas,
j'apportais seulement des informations supplémentaires.


Salutations!


"Thierryp" a écrit dans le message de news: %
Bon d'accord, ce n'était pas parfait :-(((
Chez moi ça marchait tel que je l'ai écrit....mais j'apprend, j'apprend

@+ thierryp

Bonjour Thierry,

Tu y étais presque ...

Ta ligne de code problème....!
If Weekday(CDate(date_onglet), vbSunday) = 1 Then

Une date quand elle est écrite sous forme d'une chaîne de caractère,
excel utilise toujours en vba le format américain des dates ( MM / JJ / AAAA)

Fais ce petit test :

Dim D as String
D = "10/02/06"
Range("A1") = D
Range("A1") = 2 octobre 2006

Dim C as Date
C = "10/02/06"
Range("A2") = C
Range("A2") = 10 février 2006

La raison est simple, lorsque tu présentes en VBA, une chaîne de caractère,
comme tu ne donnes pas d'indication précise sur la manière que vba doit
interpréter le format de la date, VBA utilise le format américain de date par défaut.
Si tu utilises la déclaration de variable Dim C As Date ou une fonction Date quelconque
comme : DateValue() , Cdate() , VBA utilise le format date défin dans le panneau
de configuration comme format de référence.

S'ajoute à ceci, la capacité d'excel à reconnaitre "de facto" un certain nombre de formats
de date....qui peut modifier légèrement les énoncés précédentes.


Salutations!





"Thierryp" a écrit dans le message de news:
Bonsoir Patrick,

je suis ému....C'est la première fois que j'aide un contributeur :-)))))
Avec un truc de ce genre (si tes onglets sont tous nommés avec les mêmes
règles :

Sub toto()
Dim Sh As Worksheet
For Each Sh In ThisWorkbook.Sheets
jour = Left(Sh.Name, 2)
mois = Right(Left(Sh.Name, 5), 2)
année = Right(Sh.Name, 4)
date_onglet = jour & "/" & mois & "/" & année
If Weekday(date_onglet) = 1 Then 'c'est là que je coince
Sh.Visible = False
End If
Next
End Sub

@+ thierryp

Bonsoir à toutes et tous.

Mon classeur contient, entre autres, des feuilles nommées (sans les
guillemets) "01.02.2006", "02.02.2006", ..."28.02.2006"
Quelle boucle permettrait de masquer les feuilles correspondant aux
dimanches ?
(valeur 1 renvoyée par joursem())

Dim Sh As Worksheet
For Each Sh In ThisWorkbook.Sheets
If Sh.Name = XXXXXXXXXXX 'c'est là que je coince
Sh.visible = false

D'avance, merci pour vos suggestions.

Bien amicordialement,
P. Bastard









--
@+ thierryp



1 2