Macro excel : le premier du mois en cours

Résolu
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.

3 réponses

  1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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
    1. Lebeaupat Messages postés 219 Statut Membre 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
    2. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      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
    3. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      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
    4. Lebeaupat Messages postés 219 Statut Membre 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
    5. Lebeaupat Messages postés 219 Statut Membre 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
  2. peugeot504 Messages postés 181 Statut Membre 20
     
    Y a encore des gens sous excel 2003 ?
    Change de boite !
    0
    1. Lebeaupat Messages postés 219 Statut Membre 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
  3. peugeot504 Messages postés 181 Statut Membre 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
    1. Lebeaupat Messages postés 219 Statut Membre 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
    2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      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
    3. Lebeaupat Messages postés 219 Statut Membre 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