Macro excel : le premier du mois en cours
Résolu
Lebeaupat
Messages postés
219
Statut
Membre
-
Lebeaupat Messages postés 219 Statut Membre -
Lebeaupat Messages postés 219 Statut Membre -
Bonjour,
Je suis actuellement sur un projet sour Excel 2003.
Je dois insérer dans une cellule (A1 par exemple) :
- le premier du mois précédent si on est dans la première quinzaine du mois
- le premier du mois en cours si on est dans la deuxième quinzaine du mois
Et dans une seconde cellule (A2) :
- la date de la veille (J-1).
Le tout au format JJ/MM/YYYY.
Je vous remercie pour votre aide et vous souhaite une bonne journée.
Au plaisir.
Je suis actuellement sur un projet sour Excel 2003.
Je dois insérer dans une cellule (A1 par exemple) :
- le premier du mois précédent si on est dans la première quinzaine du mois
- le premier du mois en cours si on est dans la deuxième quinzaine du mois
Et dans une seconde cellule (A2) :
- la date de la veille (J-1).
Le tout au format JJ/MM/YYYY.
Je vous remercie pour votre aide et vous souhaite une bonne journée.
Au plaisir.
3 réponses
-
Bonjour,
pas besoin de macro pour ca!
début mois=SI(jour(AUJOURDHUI())>=15;FIN.MOIS(AUJOURDHUI();-1)+1;FIN.MOIS(AUJOURDHUI();-2)+1)
à mettre au format date (format-cellule-nombre-date)
fin;mois activé par les unitaires d'analyse(outils-macros complémentaires)
la date de la veille
=aujourdhui()-1
a mettre au format date
maintenant si tu tiens absolument à une macro, tu dis et on fera :-)
:-x-
-
Bonjour tout le monde,
Trouvé ici :
1er jour du mois précédent :Dim dFirst As Date dFirst = CDate("1/" & Format(DateAdd("m", -1, Date), "mm/yyyy"))
Ce qui donne donc avec un test pour la quinzaine :If CInt(Format(Date, "d")) < 15 Then [A1] = CDate("1/" & Format(DateAdd("m", -1, Date), "mm/yyyy")) Else [A1] = CDate("1/" & Format(DateAdd("m", 0, Date), "mm/yyyy")) End If
pour la date de la veille en A2 :[A2] = CDate(Date - 1)
-
Tu aurais pu te donner la peine de tester ma proposition à la quelle il manquait quelque chose :-(
en tant que "robot à ton service", je te propose une macro déclenchée dans la zone A1:F10 par un clic droit
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) If Intersect(Target, Range("A1:F10")) Is Nothing Then: Exit Sub Cancel = True If Day(Date) >= 15 Then Target = Date - Day(Date) + 1 Else Target = DateSerial(Year(Date), Month(Date) - 1, 1) End If End Sub
a installer dans le module feuille concernée:
copier cette macro
clic droit dans le nom de l'onglet
visualiser le code
coller
si tu préfères déclencher par un double clic
remplace
Private Sub Worksheet_BeforeRightClick
par
Worksheet_BeforeDoubleClick -
-
La macro de pijaku fonctionne à merveille !!!!
Merci pour votre travail !!
Quant-à vous, michel_m, non vous n'êtes pas un robot, et encore moins à mon service...
Par contre votre macro me semble être plus simple (textuellement parlant) et aussi efficace !
Merci pour à tous pour votre aide, et bonne journée !
Au plaisir.
-
-
Y a encore des gens sous excel 2003 ?
Change de boite ! -
Je vais t'envoyer un collegue qui est specialiste des macros.
Mais il me semble important que tu saches qu'il existe des solutions gratuites bien plus performantes que windows.
C'etait juste pour t'aider.
;-)-
Je te remercie.
Je sais qu'il existe des solutions gratuites, mais actuellement ils utilisent Excel 2003, et je n'ai pas d'autre choix que de faire avec...
Je leur ai demandé s'ils pouvaient changer, mais ils ne veulent pas car (je cite) "Excel fonctionne très bien et nous avons déjà les licences"...
Je pense surtout qu'ils (les informaticiens) sont un peu faignants sur les bords... M'enfin bon.
Merci à toi ^^
++ -
-
Je ne voulais pas parler des informaticiens en général, mais de ceux qui sont dans mon entreprise !!!
Je suis moi-même informaticien, mais novice... Je suis encore étudiant...
Et je ne vais pas aller taper sur le dos de ceux qui m'ont aidé, ce serait traitre !
En tout cas merci et à bientôt !
Au plaisir.
-