Logo du forum
 

Forum TTH-News

| Inscription | | Recherche | | FAQ | | Accueil | | Liste des membres |
| Calendrier |
 
Vous n'êtes pas identifié! [Connexion] ou [Inscription] Forum » Programmation » [VB / VBA / VBS] » Macro Excel date
Login Mot de passe

4 visiteurs sur ce topic (0 membre(s), 4 invité(s) )

Auteur
Sujet : Macro Excel date
Ch'lin



 






Message du 27-11-2012 @ 14:53


Bonjour tout le monde,

Voilà j'aimerai faire une macro qui se lance à l'ouverture du classeur et qui va me récupérer les jours de la semaine courante, et mettre chaque jour dans une cellule de toutes mes feuilles (la cellule est la même pour chaque feuille, en gros il y a une feuille par jour de la semaine, mais elles sont toutes identiques).

Exemple :

J'ai 6 feuilles : Lundi, Mardi, Mercredi, Jeudi, Vendredi, Samedi.

J'aimerai qu'au lancement du classeur, la macro me fasse par exemple pour la semaine en cours :

Feuille 1, cellule A1 : Lundi 26 Novembre 2012
Feuille 2, cellule A1 : Mardi 27 Novembre 2012
Feuille 3, cellule A1 : Mercredi 28 Novembre 2012
Ect...

Et ainsi de suite. Je me suis penché sur DatePart mais je n'y arrive pas...

Des idées ?
- Haut de page -
Ch'lin



 






Message du 27-11-2012 @ 15:43

Bon pour vous motiver, voilà mon code :

Code :


Private Sub Workbook_Open()

For Each Feuille In ActiveWorkbook.Sheets
Feuille.Activate
Range("F3:I3") = DatePart("ww", Date, 2)
Next

End Sub




Ce code me met une date dans la plage F3:I3 de toutes mes feuilles, mais mon problème c'est qu'il me met une date farfelue : "Samedi 18 Février 1900".

- Haut de page -
Knuckles



 






Message du 27-11-2012 @ 16:13

Et un truc sans macro, du style :
=SI(JOURSEM(AUJOURDHUI())=1;AUJOURDHUI+x;[etc avec =2, =3]) en changeant x de 0 à 7 selon l'onglet ?

Enfin bon, ça fait assez amateur mais ça pourrait marcher !

edit :
1er onglet =SI(JOURSEM(AUJOURDHUI())=2;AUJOURDHUI();AUJOURDHUI()+2-JOURSEM(AUJOURDHUI()))
2ème onglet =SI(JOURSEM(AUJOURDHUI())=3;AUJOURDHUI();AUJOURDHUI()+3-JOURSEM(AUJOURDHUI()))
Enfin bon, y'a moyen de simplifier la formule mais tu vois le topo ! Ca fait ce qu'il te faut ?

[message édité le 27-11-2012 @ 16:28 Par Knuckles]
- Haut de page -
B2000



 






Message du 27-11-2012 @ 23:39

pour trouver le jour courant de la semaine : DatePart("w", Date, vbMonday)
pour calculer les jours de la semaine il faut soustraire le jour courant de la semaine à la date courante pour tomber sur le lundi et ensuite incrémenter en partant de 0 pour trouver les différents jour de la semaine : Date - DatePart("w", Date, vbMonday) + jour
d'où ceci :
Code :


Private Sub Workbook_Open()
jour = 0
For Each Feuille In ActiveWorkbook.Sheets
Feuille.Range("F3").Value = Date - DatePart("w", Date, vbMonday) + jour
jour = jour + 1
Next
End Sub



- Haut de page -
Ch'lin



 






Message du 28-11-2012 @ 22:22

Merci ! Je testerai ça !
- Haut de page -

Plan du forum | Contacter l'administrateur

Powered by SoulBB 3.0.1
© Soulmanto, 2003-2010

Valid XHTML 1.0 Transitional

Page générée en 0.028 secondes