Ouvrir classeur excel sur la feuille souhaité

Fermé
me.mans - Modifié par me.mans le 27/12/2010 à 23:09
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 - 28 déc. 2010 à 07:59
Bonsoir,
Je cherche à trouver une formule VBA qui me permettrait d'ouvrir mon classeur Excel sur la feuille souhaitée.
Mon fichier est un planning mensuel qui se compose de 5 feuilles : semaine 1, semaine 2, semaine 3, semaine 4, semaine 5.
Chaque feuille va du lundi au vendredi.
Je souhaite que le classeur s'ouvre automatiquement à la semaine 5 par exemple pour ce mois-ci, étant donné que nous sommes le 27/12 et que nous sommes la semaine 5 du mois de décembre.
Est-ce que quelqu'un peut m'aider ?
D'avance merci...
A voir également:

2 réponses

Mytå Messages postés 2973 Date d'inscription mardi 20 janvier 2009 Statut Contributeur Dernière intervention 20 décembre 2016 949
Modifié par Mytå le 28/12/2010 à 03:31
Salut le forum

Code à mettre dans ThisWorkbook
Private Sub Workbook_Open()    
Sheets("Semaine " & num_sem(Date)).Activate    
End Sub

Code à mettre dans un Module
Function num_sem(D As Date) As Long    
'Auteur: Laurent Longre. X-Cell    
' La fonction suivante renvoie le numéro de semaine conforme 
' à la norme ISO, utilisée dans les pays européens (la première 
' semaine d'un mois étant définie comme la première semaine 
' comportant au moins quatre 'jours dans le mois).    
D = Int(D)    
num_sem = DateSerial(Year(D + (8 - Weekday(D)) Mod 7 - 3), 1, 1)    
num_sem = ((D - num_sem - 3 + (Weekday(num_sem) + 1) Mod 7)) \ 7 + 1    
End Function

Mytå
Merci de donner suite à votre question, nous ne sommes pas des robots...
Versions installées [MsProject 2003(FR), Excel 2003-2007(FR)]
0
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
28 déc. 2010 à 07:59
Bonjour,
Bonjour Mytå, Je ne pense pas que la fonction que tu présente réponde à la demande de me.mans qui veux le N° de semaine dans le mois et non dans l'année.
Une fonction qui peu répondre à la demande...
Function num_sem(DT As Variant) As Integer
Dim W As Long
    W = Weekday(DateSerial(Year(DT), Month(DT), 1), vbMonday)
    num_sem = Int((Day(DT) - W + 1) / 5)
End Function

Le code dans Open restant bien évidemment le même.
A+
0