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

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


Auteur
Sujet : Macro Excel date
Ch'lin
Vétéran
Membre # 17192

 Avatar du membre
Lieu : Grenoble

Messages :
2986 (0.64 par jour)


Score :

Message du 27-11-2012 @ 14:53   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   


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 ?
----------
Boitier Lian-Li V351B | Intel Pentium Dual Core G6950 | Zalman CNPS 8700 | Gigabyte H55M-S2H | 2*2Go DDR3 OCZ Gold 10666 | ATI HD 5770 Sapphire | Alim Seasonic M12 500Watts | Disques durs Seagate Barracuda 7200.11 1To + Seagate Barracuda 7200.12 500Go | Clavier Logitech Illuminated | Souris Logitech G5 | Ecran BenQ 20.1" FP202W
Asus EEE PC 701 powered !
- Haut de page -
Ch'lin
Vétéran
Membre # 17192

 Avatar du membre
Lieu : Grenoble

Messages :
2986 (0.64 par jour)


Score :

Message du 27-11-2012 @ 15:43   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

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".

----------
Boitier Lian-Li V351B | Intel Pentium Dual Core G6950 | Zalman CNPS 8700 | Gigabyte H55M-S2H | 2*2Go DDR3 OCZ Gold 10666 | ATI HD 5770 Sapphire | Alim Seasonic M12 500Watts | Disques durs Seagate Barracuda 7200.11 1To + Seagate Barracuda 7200.12 500Go | Clavier Logitech Illuminated | Souris Logitech G5 | Ecran BenQ 20.1" FP202W
Asus EEE PC 701 powered !
- Haut de page -
Knuckles
Master
Membre # 25793

 
Lieu : Lille

Messages :
917 (0.23 par jour)


Score :

Message du 27-11-2012 @ 16:13   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

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]
----------
Core i7 4790K / MSI Z97 GAMING 3 / GTX 970 Phantom / G.Skill 2x4 Go 2133 MHz CAS9 / Crucial MX100 256Go + WD Caviar Green 2To / CoolerMaster Silencio 550 / Windows 7 Pro 64 bits
- Haut de page -
B2000
Administrateur
Membre # 185

 Avatar du membre
Lieu : France/Poitiers/juste à côté...

Messages :
9757 (1.56 par jour)




Message du 27-11-2012 @ 23:39   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

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



----------
Intel i5 2500K | Asus P8P67 Pro Rev3.1 | 2x Corsair Vengeance 4Go DDR3-12800 CAS 8 | Sandisk Ultra Plus 256Go | Sony AD-7280S | Logitech QuickCam Pro 5000 | Microsoft Natural Ergonomic 4000 | Logitech Cordless Optical Mouse | 2x Iiyama ProLite E2472HDD

Lenovo T430s : i5 3320m / 2x8Go / SAMSUNG 840 Pro 512Go / station Mini Dock serie 3 / LG 34um95 3440x1440 34" / SAMSUNG SyncMaster SA450 1920x1200 24"/ Clavier et souris Lenovo Ultraslim sans fil

Nexus 6 64Go Android 6.0.1 | Garmin Forerunner 305 | Nikon COOLPIX S9200 + Transcend SDHC 8GB | Canon PIXMA IP4850 | ADSL neufbox de SFR

Pour dialoguer en live, le chat TTH ou par mIRC sur irc://porsche.webchat.org:6667/tt-hardware

Rejoignez la team EBuyClub TTH !!!

Un jour j'ai mangé une pomme...
- Haut de page -
Ch'lin
Vétéran
Membre # 17192

 Avatar du membre
Lieu : Grenoble

Messages :
2986 (0.64 par jour)


Score :

Message du 28-11-2012 @ 22:22   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

Merci ! Je testerai ça !
----------
Boitier Lian-Li V351B | Intel Pentium Dual Core G6950 | Zalman CNPS 8700 | Gigabyte H55M-S2H | 2*2Go DDR3 OCZ Gold 10666 | ATI HD 5770 Sapphire | Alim Seasonic M12 500Watts | Disques durs Seagate Barracuda 7200.11 1To + Seagate Barracuda 7200.12 500Go | Clavier Logitech Illuminated | Souris Logitech G5 | Ecran BenQ 20.1" FP202W
Asus EEE PC 701 powered !
- Haut de page -


Aller dans le forum :  

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.046 secondes