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

cibleo

XLDnaute Impliqué
Bonjour le forum,

Dans mon fichier, les onglets sont formatés comme ci-dessous avec les jours de l'année.

Ne figurent pas les samedis et dimanches.

Aujourd'hui samedi 24 octobre 2009, j'ai ouvert le fichier avec ce message d'erreur, puisque la feuille datée au 24 octobre n'existe pas.

A l'ouverture de mon fichier un samedi ou dimanche, j'aimerais donc activer la feuille correspondante au Lundi suivant soit pour aujourd'hui le lundi 26 octobre.

Code:
Private Sub Workbook_Open()
Sheets(Format(Date, "dd mm yy")).Activate
End Sub


Open.jpg

Pouvez-vous m'aider à modifier le code ci-dessus ?

Cibleo
 
Re : Workbook Open

Bonjour Cibleo, bonjour le forum,

Peut-être comme ça :
Code:
Private Sub Workbook_Open()
Dim datouv As Date 'déclare la variable datouv (DATe OUVerture)
 
If Weekday(Date) = 1 Then
    datouv = Date + 2 'si le jour de la semaine est samedi, daoutouv = date plus 2 jours
ElseIf Weekday(Date) = 7 Then
    datouv = Date + 1 'si le jour de la semaine est dimanche, daoutouv = date plus 1 jour
Else
    datouv = Date 'sinon datouv = date
End If
Sheets(Format(datouv, "dd mm yy")).Activate
End Sub
 
Re : Workbook Open

Bonjour Robert,

J'ai toujours le même message d'erreur à l'ouverture et donc pas d'activation de la page datée au lundi 26 octobre 😕

Je clique sur débogage, vois la ligne surlignée en jaune.

Est-ce normal que datouv = 25/10/2009 ?

Date est bien égale à 24/10/2009

Open1.jpg

Cibleo
 
Re : Workbook Open

Bonjour



Une presque similaire façon de faire

Code:
Sub test()
Dim x As Byte
x = Weekday(Date, 2)
Select Case x
Case 6
Sheets(CStr(Format(Date + 2, "dd mm yy"))).Activate
Case 7
Sheets(CStr(Format(Date + 1, "dd mm yy"))).Activate
End Select
End Sub


PS: code à mettre dans WorkBook_Open()
(test ok sur Excel 200)
 
Re : Workbook Open

Bonjour Staple1600, Jean-Marcel 🙂

Les 2 codes fonctionnent, c'est tout bon, la feuille du 26 octobre s'active à l'ouverture, reste à tester demain.

Une dernière petite question :
Nous sommes en 2010, j'ouvre le fichier, le message d'erreur va de nouveau apparaître, si j'ai bien compris.

Ne peut-on pas inclure une nouvelle condition :

Si Date est différent de 2009, alors activer la dernière feuille du classeur.

Merci à vous tous
Cibleo
 
Dernière édition:
Re : Workbook Open

Re


En modifiant ainsi par exemple

Code:
Sub test2()
Dim x As Byte, y$
y = Year(Date)
If y = "2009" Then
x = Weekday(Date, 2)
Select Case x
Case 6
Sheets(CStr(Format(Date + 2, "dd mm yy"))).Activate
Case 7
Sheets(CStr(Format(Date + 1, "dd mm yy"))).Activate
End Select
Else
Sheets(Sheets.Count).Activate
End If
End Sub
 
Dernière édition:
Re : Workbook Open

Bonjour le forum,
Bonjour Staple1600, Jean-Marcel, Robert

Voilà j'ai testé et j'ai complété comme ceci :

Code:
Private Sub Workbook_Open()
Dim x As Byte, y$
y = Year(Date)
If y = "2009" Then
x = Weekday(Date, 2)
[COLOR=black]Select Case x[/COLOR]
[COLOR=navy]Case 1, 2, 3, 4, 5[/COLOR]
[COLOR=navy]Sheets(CStr(Format(Date, "dd mm yy"))).Activate[/COLOR]
Case 6
Sheets(CStr(Format(Date + 2, "dd mm yy"))).Activate
Case 7
Sheets(CStr(Format(Date + 1, "dd mm yy"))).Activate
End Select
Else
Sheets(Sheets.Count).Activate
End If
End Sub

A+ Cibleo
 
- 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

Discussions similaires

Réponses
12
Affichages
1 K
Réponses
3
Affichages
951
Réponses
4
Affichages
697
Réponses
5
Affichages
2 K
Compte Supprimé 979
C
Réponses
5
Affichages
1 K
Réponses
2
Affichages
2 K
Retour