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

Excel 2003 : se positionner sur la bonne feuille

8 réponses
Avatar
Zéphyrin
Bonsoir,

Ne connaissant pas le langage macro, je ne sais pas s'il est possible de
répondre au besoin suivant :

Un fichier mensuel est composé de 4 ou 5 feuilles, une pour chaque
semaine du mois.
A l'ouverture de ce fichier, est-il possible positionner automatiquement
comme active la feuille de la semaine correspondant au jour de la date
système ?

Merci d'avance de vos conseils éclairés.

Cordialement,
Zéphyrin

8 réponses

Avatar
isabelle
bonjour Zéphyrin,

peut tu donner un exemple du nom des onglets de ce fichier ?

isabelle

Zéphyrin a écrit :
Bonsoir,

Ne connaissant pas le langage macro, je ne sais pas s'il est possible
de répondre au besoin suivant :

Un fichier mensuel est composé de 4 ou 5 feuilles, une pour chaque
semaine du mois.
A l'ouverture de ce fichier, est-il possible positionner
automatiquement comme active la feuille de la semaine correspondant au
jour de la date système ?

Merci d'avance de vos conseils éclairés.

Cordialement,
Zéphyrin


Avatar
Caetera
"Zéphyrin" a écrit dans le message de news:


Ne connaissant pas le langage macro, je ne sais pas s'il est possible de
répondre au besoin suivant :
Un fichier mensuel est composé de 4 ou 5 feuilles, une pour chaque semaine du
mois.
A l'ouverture de ce fichier, est-il possible positionner automatiquement comme
active la feuille de la semaine correspondant au jour de la date système ?



********************

A défaut de plus amples renseignements, à mettre dans le module ThisWorbook

Private Sub Workbook_Open()
For i = 1 To Sheets.Count
Sheets(i).Select
On Error Resume Next
Cells.Find(What:Úte, LookIn:=xlFormulas).Select
If Err.Number = 0 Then Exit For
Next
End Sub

Etc
Avatar
Zéphyrin
Bonjour,

Par exemple onglet 1 "1ère semaine", onglet 2 "2ème semaine", etc ...
pour ne pas devoir modifier les noms chaque mois.
Aujourd'hui 06 octobre, le fichier s'ouvrirait sur l'onglet "2ème semaine".
Zéphyrin

isabelle a écrit :
bonjour Zéphyrin,

peut tu donner un exemple du nom des onglets de ce fichier ?

isabelle

Zéphyrin a écrit :
Bonsoir,

Ne connaissant pas le langage macro, je ne sais pas s'il est possible
de répondre au besoin suivant :

Un fichier mensuel est composé de 4 ou 5 feuilles, une pour chaque
semaine du mois.
A l'ouverture de ce fichier, est-il possible positionner
automatiquement comme active la feuille de la semaine correspondant au
jour de la date système ?

Merci d'avance de vos conseils éclairés.

Cordialement,
Zéphyrin




Avatar
michdenis
Bonjour Zéphyrin,

Dans le ThisWorkbook de ton fichier :

Worksheets(X).Select
Le X représente l'index de la feuille
Cela suppose que tes feuilles sont en
ordre croissant.... à moins que tes feuilles
porte le nom 1 ,2,3,4,5 comme onglet...

'---------------------------------------
Private Sub Workbook_Open()
Dim X As Integer
X = Application.WorksheetFunction.Ceiling((Day(Date)) / 7, 1)
X = 5
If X <= Worksheets.Count Then
Worksheets(X).Select
Else
MsgBox "La feuille """ & X & """ & est introuvable"
End If
End Sub
'---------------------------------------



"Zéphyrin" a écrit dans le message de groupe de discussion :

Bonsoir,

Ne connaissant pas le langage macro, je ne sais pas s'il est possible de
répondre au besoin suivant :

Un fichier mensuel est composé de 4 ou 5 feuilles, une pour chaque
semaine du mois.
A l'ouverture de ce fichier, est-il possible positionner automatiquement
comme active la feuille de la semaine correspondant au jour de la date
système ?

Merci d'avance de vos conseils éclairés.

Cordialement,
Zéphyrin
Avatar
FFO
Salut à toi

Je te propose ce code à mettre dans le ThisWorbook du classeur :

Private Sub Workbook_Open()
For i = 1 To 30
If Format(i & Format(Date, "/mm/yy"), "dddd") = "lundi" Then
Exit For
End If
Next
For J = 1 To 5
If i + n >= Format(Date, "dd") * 1 Then
Exit For
End If
n = n + 7
Next
Sheets("Semaine " & J).Activate
End Sub

Sur ce lien un exemple

Fais des essais et dis moi !!!!!!


http://www.cijoint.fr/cjlink.php?file=cj200910/cijp47sNjF.xls
Avatar
isabelle
bonjour Zéphyrin,

essaie ceci :

Sub Macro1()
Dim n As Integer
n = Application.Ceiling((Day(Date)) / 7, 1)
For Each f In Worksheets
If Left(f.Name, 1) = n Then f.Select
Next
End Sub

isabelle

Zéphyrin a écrit :
Bonjour,

Par exemple onglet 1 "1ère semaine", onglet 2 "2ème semaine", etc ...
pour ne pas devoir modifier les noms chaque mois.
Aujourd'hui 06 octobre, le fichier s'ouvrirait sur l'onglet "2ème
semaine".
Zéphyrin

isabelle a écrit :
bonjour Zéphyrin,

peut tu donner un exemple du nom des onglets de ce fichier ?

isabelle

Zéphyrin a écrit :
Bonsoir,

Ne connaissant pas le langage macro, je ne sais pas s'il est
possible de répondre au besoin suivant :

Un fichier mensuel est composé de 4 ou 5 feuilles, une pour chaque
semaine du mois.
A l'ouverture de ce fichier, est-il possible positionner
automatiquement comme active la feuille de la semaine correspondant
au jour de la date système ?

Merci d'avance de vos conseils éclairés.

Cordialement,
Zéphyrin






Avatar
Caetera
"Zéphyrin" a écrit dans le message de news:


Par exemple onglet 1 "1ère semaine", onglet 2 "2ème semaine", etc ... pour ne
pas devoir modifier les noms chaque mois.
Aujourd'hui 06 octobre, le fichier s'ouvrirait sur l'onglet "2ème semaine".



T'as essayé la solution que je t'ai donnée ?

(S'il y a des dates dans tes feuilles évidemment)

Etc
Avatar
Zéphyrin
Bonsoir,

Bravo, cela marche du feu de Dieu ! Même en sauvegardant le fichier avec
un autre onglet actif, on réouvre le 06 octobre sur la "semaine 2".

Grand merci à FFO et à tous ceux qui m'ont proposé une solution.

Bonne soirée.
Zéphyrin


FFO a écrit :
Salut à toi

Je te propose ce code à mettre dans le ThisWorbook du classeur :

Private Sub Workbook_Open()
For i = 1 To 30
If Format(i & Format(Date, "/mm/yy"), "dddd") = "lundi" Then
Exit For
End If
Next
For J = 1 To 5
If i + n >= Format(Date, "dd") * 1 Then
Exit For
End If
n = n + 7
Next
Sheets("Semaine " & J).Activate
End Sub

Sur ce lien un exemple

Fais des essais et dis moi !!!!!!


http://www.cijoint.fr/cjlink.php?file=cj200910/cijp47sNjF.xls