Macro excel : le premier du mois en cours

Résolu
Lebeaupat Messages postés 198 Date d'inscription   Statut Membre Dernière intervention   -  
Lebeaupat Messages postés 198 Date d'inscription   Statut Membre Dernière intervention   -
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.


A voir également:

3 réponses

michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
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
1
Lebeaupat Messages postés 198 Date d'inscription   Statut Membre Dernière intervention   21
 
Merci, mais je dois absolument utiliser une macro... Il ne serait pas possible de "transformer" cette fonction en macro ?
Je vous remercie et vous souhaite une bonne journée.
Au plaisir.
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
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)
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
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
0
Lebeaupat Messages postés 198 Date d'inscription   Statut Membre Dernière intervention   21
 
Je teste tout ça et je vous tiens au courant.
En tout cas je vous remercie pour votre aide.
A très vite.
0
Lebeaupat Messages postés 198 Date d'inscription   Statut Membre Dernière intervention   21
 
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.
0
peugeot504 Messages postés 142 Date d'inscription   Statut Membre Dernière intervention   20
 
Y a encore des gens sous excel 2003 ?
Change de boite !
0
Lebeaupat Messages postés 198 Date d'inscription   Statut Membre Dernière intervention   21
 
La boite dans laquelle je travaille n'a pas forcément les moyens d'installer Excel 2007 ou Excel 2010 sur 400 postes...
Donc oui il y a encore des gens sous Excel 2003 et non je ne changerais pas de boite...
Merci quand-même pour ton intervention car très utile... J'avance beaucoup.
0
peugeot504 Messages postés 142 Date d'inscription   Statut Membre Dernière intervention   20
 
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.

;-)
0
Lebeaupat Messages postés 198 Date d'inscription   Statut Membre Dernière intervention   21
 
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 ^^
++
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
Je pense surtout qu'ils (les informaticiens) sont un peu faignants sur les bords.

UN GRAND MERCI POUR LES INFORMATICIENS QUI ESSAYENT DE T'AIDER!

Et si, toi aussi, tu te mettais au boulot !
0
Lebeaupat Messages postés 198 Date d'inscription   Statut Membre Dernière intervention   21
 
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.
0