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
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
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" <thierry@nospam.fr> a écrit dans le message de news: %23lOVUaqJGHA.1288@TK2MSFTNGP09.phx.gbl...
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" <thierry@nospam.fr> a écrit dans le message de news: OzdoFxpJGHA.2040@TK2MSFTNGP14.phx.gbl...
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
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