Signaler

Je veux écrire une date dans une Macro [Résolu]

Posez votre question Magikarp1990 4Messages postés mercredi 4 octobre 2017Date d'inscription 4 octobre 2017 Dernière intervention - Dernière réponse le 4 oct. 2017 à 22:36 par fabien25000
Bonjour à tous,

Je suis pris devant un problème que je ne suis point capable de surmonté. Je veux écrire une macro qui enregistre des information d'un formulaire Excel su un autre document Excel qui me sert de registre. Ma macro est fonctionnel et elle marche très bien... pour l'instant. Considérant que la feuille du registre dans laquelle sont enregistré mes information est nommé "2017", je veux être capable 'en 2018 d,enregistré mes informations dans une autre feuille appelé "2018".
En gros je veux etre capable d'écrire la formule =année(aujourdhui()) en plein centre de ma macro.

Merci énormément de l'attention que vous portez à mon problème.
Utile
+0
plus moins
Bonjour,

=année(aujourdhui()) se traduit en VBA par
Year(Now)

Magikarp1990 4Messages postés mercredi 4 octobre 2017Date d'inscription 4 octobre 2017 Dernière intervention - 4 oct. 2017 à 18:42
Merci pour ta réponse, malheureusement le problème persiste ...

voici la ligne de ma macro que je dois modifier:
Set wb = ThisWorkbook
Set wbreg = Application.Workbooks.Open("P:\Dept\Commun\REGISTRE DDD\DATABASE.xlsx") 'Base de donnée
Set reg = wbreg.Worksheets("2017")
Comme on peut le voir le 2017 est le nom de la feuille je peux donc pas simplement le remplacer par Year(now).
devrais-je l'obligé a regarder en quel année nous sommes pour qu'il puisse ensuite choisir dans quel page enregistré les données?
Répondre
fabien25000 265Messages postés mercredi 5 octobre 2016Date d'inscription 16 octobre 2017 Dernière intervention - 4 oct. 2017 à 19:05
re

J'ai fait exactement ça au boulot la semaine derniére

Si tu écris Worksheets(year(now)) VBA ira dans la feuille qui a pour nom l'année en cours.

Pour ne pas avoir de bug au retour des congés de fin d'année, j'ai aussi écrit un code dans l'évenement _open du classeur qui teste la date.

A son ouverture en 2018, il est programmé pour créer une feuille nommée 2018 et les infos que je traiterai seront dirigées sur la nouvelle feuille.
Répondre
Magikarp1990 4Messages postés mercredi 4 octobre 2017Date d'inscription 4 octobre 2017 Dernière intervention - 4 oct. 2017 à 21:08
OMG... J'ai trouvé un moyen de le faire grâce à ccm81 mais ton truc est nettement plus simple. Je vais l’utiliser dans le future.

Merci beaucoup

considérant que c'est ma première question je ne suis pas sur de ce que je suis censé faire avec ma question. dois-je attendre que ccm81 ai répondu a ta question avant d'écrire résolu ou bien le l'écrit tout de suite?
Répondre
fabien25000 265Messages postés mercredi 5 octobre 2016Date d'inscription 16 octobre 2017 Dernière intervention - 4 oct. 2017 à 22:36
non passe le sujet en résolu, bonne soirée
Répondre
Donnez votre avis
Utile
+0
plus moins
Bonjour

Peut être quelque chose comme ça
Dim nomf As String
nomf = Trim(Str(Year(Date)))
Sheets(nomf).Range("A1").Value = 1

Cdlmnt
Magikarp1990 4Messages postés mercredi 4 octobre 2017Date d'inscription 4 octobre 2017 Dernière intervention - 4 oct. 2017 à 19:24
Le tout commence à faire du sens dans ma tête. mais je ne comprend pas pourquoi excel m’envoie un message d'erreur lorsqu'il arrive à la troisième ligne et suige supposer remplacer le "2017" par nomf
Répondre
fabien25000 265Messages postés mercredi 5 octobre 2016Date d'inscription 16 octobre 2017 Dernière intervention - 4 oct. 2017 à 19:40
bonjour ccm81

Trim(Str(Year(Date)))

tu peux expliqué stp je ne comprend pas

Edit : j'ai fait F1; j'ai compris.. dans mon cas ça n'a pas été utile
Répondre
Donnez votre avis

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !