Ouvrir excel sur la date du jour

Fermé
Simon1331 Messages postés 11 Date d'inscription mardi 21 juillet 2015 Statut Membre Dernière intervention 31 juillet 2015 - 27 juil. 2015 à 16:35
Mike-31 Messages postés 18310 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 29 mars 2024 - 31 juil. 2015 à 16:36
Bonjour,
Je suis débutant et j'ai besoin de votre aide.

Voila, j'ai crée dans un fichier excel 52 feuilles qui correspondent au 52 semaines de l'année et dans chaque feuil on retrouve les jours de la semaine du Lundi au Vendredi avec la date pour chaque jour.
Ma question : je veux, dés que j'ouvre mon fichier, il se met directement sur la date du jour.

Merci d'avance pour votre aide :)
A voir également:

10 réponses

jc80 Messages postés 4149 Date d'inscription mardi 5 février 2013 Statut Membre Dernière intervention 25 février 2019 1 422
27 juil. 2015 à 16:47
Bonjour

Regarde ci-dessous peut-être une réponse

https://forum.excel-pratique.com/viewtopic.php?forum_uri=excel&t=1705&start=
Cordialement
1
skk201 Messages postés 938 Date d'inscription jeudi 11 septembre 2008 Statut Membre Dernière intervention 16 octobre 2016 54
27 juil. 2015 à 17:15
Bonjour

C'est fesable. Mais il faut connaitre le nom des feuilles. C'est genre 1 à 52 ?

--
  • Vous pouvez mettre en forme votre code grâce à la flèche en haut a droite de l'éditeur de texte.

Pensez mettre vos messages en [Résolu] et cliquer sur le + des conseil qui vous ont été utiles."
1
Bonjour
Voila une macro qui recherche la date du Jour
a condition que la date se trouve dans la colonne 1
Sub NumSemJour()
Dim DateTest, Semaine
DateTest = DateValue(Now)
Semaine = Format(DateTest, "ww", vbMonday, vbFirstFourDays)
Sheets(Semaine).Select
   If IsError(Application.Match(Val(CDbl(Now)), Columns(1), 0)) Then
      MsgBox "Date non trouvée ?"
     Else
      Application.Goto Range("A" & Application.Match(Val(CDbl(Now)), Columns(1), 0)), True
   End If
End Sub

A+
Maurice
1
Bonjour

La meme macro test la Ligne 1
Sub NumSemJour()
Dim DateTest, Semaine, Nlig
DateTest = DateValue(Now)
Semaine = Format(DateTest, "ww", vbMonday, vbFirstFourDays)
On Error GoTo Fin
   Sheets(Semaine).Select
   Nlig = 1 ' numero de Ligne
      If IsError(Application.Match(Val(CDbl(Now)), Rows(Nlig), 0)) Then
            MsgBox "Date non trouvée ?", vbCritical
        Else
            Application.Goto Cells(Nlig, Application.Match(Val(CDbl(Now)), Rows(1), 0)), True
      End If
   Exit Sub
Fin:
   Select Case Err.Number
      Case 9
          MsgBox "Impossible de trouver la feuille à afficher.", vbCritical
   End Select
End Sub

A+
Maurice
1
Simon1331 Messages postés 11 Date d'inscription mardi 21 juillet 2015 Statut Membre Dernière intervention 31 juillet 2015
28 juil. 2015 à 12:38
J'ai crée la macro et j'ai copié ce code la et j'ai changé le numéro de ligne vu qe moi je suis en ligne 19 mais il m'affiche toujours " Impossible de trouver la feuille à afficher "
0
Bonjour
en ce moment il cherche la semaine 31 ?
sinmon if faux voir la syntaxe des onglets
A+
Maurice
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bonjour

il manque un espace dans la macro
pour la macro de skk201

Me.Sheets(" " & CStr(WeekNum(Date))).Activate

et la miene
Sub NumSemJour()
Dim DateTest, Semaine, Nlig
DateTest = DateValue(Now)
Semaine = Format(DateTest, "ww", vbMonday, vbFirstFourDays)
On Error GoTo Fin
   Sheets(" " & Semaine).Select
   Nlig = 19 ' numero de Ligne
      If IsError(Application.Match(Val(CDbl(Now)), Rows(Nlig), 0)) Then
            MsgBox "Date non trouvée ?", vbCritical
        Else
            Application.Goto Cells(Nlig, Application.Match(Val(CDbl(Now)), Rows(Nlig), 0)), True
      End If
   Exit Sub
Fin:
   Select Case Err.Number
      Case 9
          MsgBox "Impossible de trouver la feuille à afficher.", vbCritical
   End Select
End Sub

A+
Maurice
1
skk201 Messages postés 938 Date d'inscription jeudi 11 septembre 2008 Statut Membre Dernière intervention 16 octobre 2016 54
29 juil. 2015 à 16:18
Yep c'est bien ça le problème :)

'Code by Skk201 // www.commentcamarche.net
Private Sub Workbook_Open()
On Error GoTo fin
Me.Sheets(" " & CStr(WeekNum(Date))).Activate
Exit Sub
fin:
On Error GoTo -1
MsgBox "Impossible de trouver la feuille à afficher.", vbCritical
End Sub

'Function by Wigi www.mrexcel.com
Function WeekNum(D As Date) As Integer
WeekNum = CInt(Format(D, "ww", 2))
End Function
0
Mike-31 Messages postés 18310 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 29 mars 2024 5 073
Modifié par Mike-31 le 30/07/2015 à 13:52
Bonjour le fil,

à tester, coller ce code dans un module

Sub test()
Dim NumSem As Byte
Dim i As Integer
On Error Resume Next
Sheets(DatePart("ww", Date, 0, 0) + 1).Activate
Do
Cells(19, i + 1).Activate
If Cells(19, i + 1) = Date Then
ActiveWindow.ScrollRow = i + 1
Exit Do
End If
i = i + 1
Loop
End Sub


ou plus simple
Sub test()
Dim Plage, Cell As Range
On Error Resume Next
Sheets(DatePart("ww", Date, 0, 0) + 1).Activate
Set Plage = Range("D19:H19")
On Error Resume Next
Sheets(DatePart("ww", Date, 0, 0) + 1).Activate
For Each Cell In Plage
If Cell.Value = Date Then Cell.Select
Next
End Sub


dans la Thiswokbook coller attention un seul code "Private Sub Workbook_Open()"

Private Sub Workbook_Open()
Call test
End Sub


A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
1
Mike-31 Messages postés 18310 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 29 mars 2024 5 073
31 juil. 2015 à 16:36
Re,

si j'ai bien suivi, colle ce code dans un module


Sub test()
Dim Plage, x, Cell As Range
On Error Resume Next
Sheets(DatePart("ww", Date, 0, 0) + 1).Activate ' ---------- sélectionne l'onglet correspondant au numéro semaine de la date courante
Set Plage = Range("D19:H19") ' ----------------------------- plage contenant les dates dans tous les onglets
On Error Resume Next
' ------------------------------------- boucle sur tous les onglets
For x = 1 To Worksheets.Count
Sheets(x).Range("D19:H19").Interior.ColorIndex = 6 ' -- rétabli la couleur jaune sur la plage des dates
Sheets(x).Tab.Color = RGB(226, 226, 226) ' ------------ rétabli la couleur système des onglets
Next
ActiveSheet.Tab.ColorIndex = 3 ' ------------- colorise l'onglet actif correspondant au n° semaine en cours
' -------------------------------------------- boucle sur la plage pour sélectionner la cellule de la date en cours
For Each Cell In Plage
If Cell.Value = Date Then Cell.Interior.ColorIndex = 4
Next
End Sub


et dans la Thiswokbook tu dois avoir si tu ne l'as pas supprimé ce code

Private Sub Workbook_Open()
Call test
End Sub

1
Simon1331 Messages postés 11 Date d'inscription mardi 21 juillet 2015 Statut Membre Dernière intervention 31 juillet 2015
28 juil. 2015 à 08:59
Bonjour,

skk201 : Oui, les noms de mes feuilles c'est de 1 à 52.
Dans ce cas la, qu'est ce que tu me propose comme solution ??
Merci d'avance.

Maurice : Merci pour ton aide mais dans mon cas j'ai dans chaque colonne une date, par exemple : colonne D : 27/08/2015, Colonne E : 28/07/2015 jusqu'a colonne H : 31/07/2015.

Simon1331
0
skk201 Messages postés 938 Date d'inscription jeudi 11 septembre 2008 Statut Membre Dernière intervention 16 octobre 2016 54
28 juil. 2015 à 10:07
Je te donne le code tout de suite ;)
0
skk201 Messages postés 938 Date d'inscription jeudi 11 septembre 2008 Statut Membre Dernière intervention 16 octobre 2016 54
Modifié par skk201 le 28/07/2015 à 10:27
Essaye de mettre ce code dans ThisWorkbook. (Explication plus bas si tu ne comprends pas)

'Code by Skk201 // www.commentcamarche.net
Private Sub Workbook_Open()
On Error GoTo fin
Me.Sheets(CStr(WeekNum(Date))).Activate
Exit Sub
fin:
On Error GoTo -1
MsgBox "Impossible de trouver la feuille à afficher.", vbCritical
End Sub

'Function by Wigi www.mrexcel.com
Function WeekNum(D As Date) As Integer
WeekNum = CInt(Format(D, "ww", 2))
End Function


Tu ouvres ton classeur excel, tu fais [ALT]+[F11], sur la gauche de la fenêtre qui s'ouvre tu as un arborésence. Tu doubles-clic sur "ThisWorkbook" et tu colles le code ci-dessus.

Ensutie tu enregistres le classeur au format .xlsm pour enregister la macro, finalement la prmière fois que tu l'ouvrira tu devrais activer les macros. Si tu utilise MS Office 2010 ou supérieur, il faudra s'implement cliquer sur "Activer" dans une barre jaune qui apparaitra au sommet d'excel. Si le fichier est sur un réseau c'est possible que tu ai un message sup

Et voilà ça devrait marcher. Tiens nous au courant.

EDIT : Pour information, la première semaine est la semaine qui contient le 1er janvier et le premier jour de la semaine est le Lundi. Si tu veux modfier ces paramètres je peux t'expliquer comment faire.
0
Simon1331 Messages postés 11 Date d'inscription mardi 21 juillet 2015 Statut Membre Dernière intervention 31 juillet 2015
28 juil. 2015 à 12:40
J'ai suivis tes instructions à la lettre mais chaque fois il m'affiche " Impossible de trouver la feuille à afficher " que dois je faire ??
Merci Bcp pour ton aide :)
0
skk201 Messages postés 938 Date d'inscription jeudi 11 septembre 2008 Statut Membre Dernière intervention 16 octobre 2016 54
Modifié par skk201 le 28/07/2015 à 13:19
C'est simple Est-ce que le nom des feuilles est bel et bien "1","2","3",... ou est-ce qqchose du genre : "Semaine 1", "Semaine 2", "Semaine 3", ...

Si tu le souhaite tu peux utiliser un site comme cjoint.com pour nous transmettre ton fichiers.
0
Simon1331 Messages postés 11 Date d'inscription mardi 21 juillet 2015 Statut Membre Dernière intervention 31 juillet 2015
29 juil. 2015 à 15:26
Bonjour,

Je m'excuse d'avoir pris du retard pour répondre.
voila, je vous transmets mon fichier comme ça vous pouvez voir ou je bloque.
Merci d'avance pour votre aide :)

https://www.cjoint.com/c/EGDnzjgvcUz
0
Simon1331 Messages postés 11 Date d'inscription mardi 21 juillet 2015 Statut Membre Dernière intervention 31 juillet 2015
30 juil. 2015 à 08:34
Bonjour,

Milles merci pour votre aide :)
Une ptite question si ça vous dérange pas bien sur : comment on fait pour ajouter une couleur sur la semaine en cours ??

Merci d'avance.
0
skk201 Messages postés 938 Date d'inscription jeudi 11 septembre 2008 Statut Membre Dernière intervention 16 octobre 2016 54
30 juil. 2015 à 10:25
Une couleur sur l'onglet ?
0
Simon1331 Messages postés 11 Date d'inscription mardi 21 juillet 2015 Statut Membre Dernière intervention 31 juillet 2015
30 juil. 2015 à 10:55
oui voila une couleur sur l'onglet.
0
skk201 Messages postés 938 Date d'inscription jeudi 11 septembre 2008 Statut Membre Dernière intervention 16 octobre 2016 54 > Simon1331 Messages postés 11 Date d'inscription mardi 21 juillet 2015 Statut Membre Dernière intervention 31 juillet 2015
Modifié par skk201 le 31/07/2015 à 09:54
With ActiveWorkbook.Sheets("Feuil2").Tab
.ThemeColor = xlThemeColorAccent6 'Mettre en Orange
.TintAndShade = 0
End With

With ActiveWorkbook.Sheets("Feuil2").Tab
.Color = 255 ' Mettre en Rouge (Vif)
.TintAndShade = 0
End With

With ActiveWorkbook.Sheets("Feuil2").Tab
.Color = 192 ' Mettre en Rouge foncé
.TintAndShade = 0
End With


Voilà Code à adapter. Dis moi quel couleur tu veux et je l'appliquerais au code qu'on t'as déjà fait.

Si tu veux me donner une couleur précise :

Ouvre excel, MEnu "Affichage", Dans "Macro, tu as l'enregistreur de macro. Tu l'actives, tu clique droit sur l'onglet, tu choisis la couleur qui te plaît. Ensuite sur la barre d'état en bas a gauche d'excel tu clique sur le petit carrée bleu. Finalement tu fais [ALT]+[F11] pour afficher l'éditeur de macro, tu vas dans le module1 et là tu auras le code des actions que tu viens de faire. Tu nous transmets ce code comme ça on saura exetement la couleur que tu souhaites.

(Ou alors tu nous dis tout simplement rouge :D)
0
Simon1331 Messages postés 11 Date d'inscription mardi 21 juillet 2015 Statut Membre Dernière intervention 31 juillet 2015
31 juil. 2015 à 11:18
Bonjour,
Vasy pour le rouge :)
Merci d'avance skk201
0
skk201 Messages postés 938 Date d'inscription jeudi 11 septembre 2008 Statut Membre Dernière intervention 16 octobre 2016 54
31 juil. 2015 à 11:48
'Code by Skk201 // www.commentcamarche.net
Private Sub Workbook_Open()
On Error GoTo fin
Dim wn As Integer
wn = WeekNum(Date)
Me.Sheets(" " & CStr(wn-1)).Tab.ColorIndex = xlAutomatic
Me.Sheets(" " & CStr(wn)).Tab.Color = 255
Me.Sheets(" " & CStr(wn)).Activate
Exit Sub
fin:
On Error GoTo -1
MsgBox "Impossible de trouver la feuille à afficher.", vbCritical
End Sub

'Function by Wigi www.mrexcel.com
Function WeekNum(D As Date) As Integer
WeekNum = CInt(Format(D, "ww", 2))
End Function


Voilà ça mets en rouge la semaine en court et enlève le rouge dans la semaine précédente.
0