IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Code VBA pour obtention de date début / fin de mois


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Septembre 2008
    Messages
    384
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 384
    Par défaut Code VBA pour obtention de date début / fin de mois
    Bonjour,


    Je cherche a créer 2 fonctions VBA qui me permettrait :

    - Obtenir la date de début ET fin de mois à partir de 2 cellules préremplies. ( cellules vertes dans le fichier exemple ci joint )
    - Obtenir la date de début ET fin de mois à partir de la date actuelle.

    Je suis parvenu à le faire par le biais de formules Excel, mais pas par VBA.
    Pourriez vous m'indiquer le code VBA correspondant s'il vous plait ?

    Cordialement,
    Fichiers attachés Fichiers attachés

  2. #2
    Membre Expert
    Inscrit en
    Décembre 2002
    Messages
    993
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 993
    Par défaut
    Salut, voici 2 fonctions qui font le job, j'ai aussi mis une petite macro que tu peux tester sur ta feuille.
    Tu devras peut-être adapter le résultat en sortie en fonction de tes besoins.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Function DatesFromCells(monthNumber As Long, yearNumber As Long) As String
        Dim startOfMonth As Date
        Dim endOfMonth As Date
     
        ' Construire la date de début du mois en utilisant le numéro du mois et l'année
        startOfMonth = DateSerial(yearNumber, monthNumber, 1)
     
        ' Construire la date de fin du mois en ajoutant 1 mois à la date de début du mois,
        ' puis en soustrayant 1 jour pour obtenir la dernière date du mois en cours
        endOfMonth = DateSerial(yearNumber, monthNumber + 1, 0)
     
        ' Formater et renvoyer les dates de début et de fin du mois sous forme de texte
        DatesFromCells = "Début du mois: " & Format(startOfMonth, "dd/mm/yyyy") & vbCrLf & _
                         "Fin du mois: " & Format(endOfMonth, "dd/mm/yyyy")
    End Function
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Function DatesFromToday() As String
        Dim currentDate As Date
        Dim startOfMonth As Date
        Dim endOfMonth As Date
     
        ' Obtenir la date actuelle
        currentDate = Date
     
        ' Construire la date de début du mois actuel en utilisant le mois et l'année actuels
        startOfMonth = DateSerial(Year(currentDate), Month(currentDate), 1)
     
        ' Construire la date de fin du mois actuel en ajoutant 1 mois à la date de début du mois,
        ' puis en soustrayant 1 jour pour obtenir la dernière date du mois en cours
        endOfMonth = DateSerial(Year(currentDate), Month(currentDate) + 1, 0)
     
        ' Formater et renvoyer les dates de début et de fin du mois sous forme de texte
        DatesFromToday = "Début du mois en cours: " & Format(startOfMonth, "dd/mm/yyyy") & vbCrLf & _
                         "Fin du mois en cours: " & Format(endOfMonth, "dd/mm/yyyy")
    End Function
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub test()
    Dim mois As Long
    Dim annee As Long
     
    mois = Range("B6").Value
    annee = Range("C6").Value
    Range("E5").Value = DatesFromCells(mois, annee)
    Range("E8").Value = DatesFromToday
     
    End Sub

  3. #3
    Membre éclairé
    Inscrit en
    Septembre 2008
    Messages
    384
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 384
    Par défaut
    Je vous remercie beaucoup, c'est parfaitement ce que je recherchais.

    Merci d'avoir commenté le code, c'est très ludique.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 27/08/2019, 11h17
  2. [AC-2013] Code VBA pour une date
    Par boulser dans le forum Access
    Réponses: 2
    Dernier message: 30/07/2015, 22h17
  3. [XL-2010] code vba pour formule de calcul de frequence date
    Par JENNIFER27950 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 21/11/2014, 17h32
  4. [Toutes versions] Code VBA pour comparer des dates
    Par Tagada_Or dans le forum VBA Access
    Réponses: 17
    Dernier message: 24/09/2014, 09h08
  5. [XL-2010] Code VBA pour ajout d'une date lorsqu'elle n'existe pas
    Par Jey14 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 25/10/2013, 13h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo