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 :

Manipulation de dates, année bissextile [XL-MAC 2016]


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2020
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2020
    Messages : 4
    Par défaut Manipulation de dates, année bissextile
    Bonjour,

    Tous mes voeux pour cette année 2020.

    Je n'arrive pas à configurer un programme VBA. On me demande de créer une fonction à partir des composantes d’une date et qui retourne sous forme de texte le joue X-1 (donc la veille) tout en tenant compte de la bissextilité.
    Donc :
    1. si l'année est divisible par 4 et non divisible par 100, ou
    2. si l'année est divisible par 400.

    Ce qui j'aimerais faire :
    Pour le premier bouton commande :
    - Avoir un message Box ou l'on écrirait la date par exemple : 12/02/2014
    - Cette date s'afficherait dans une cellule
    - indiquer si oui ou non l'année est bissextile
    Pour le second bouton commande :
    - qu'il retourne la date X-1 en tenant compte de la bissextilité.

    Mon code est le suivant :

    POUR LE PREMIER BOUTON :
    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
    Sub Choixdeladate()
    Dim SerieDate As Variant
    SerieDate = InputBox("SerieDate()", "EcrireJour/Mois/Année", 1)
    Range("C4").Value = SerieDate
     
    If Year(SerieDate) Mod 4 = 0 And (Year(SerieDate) Mod 100 <> 0 Or Year(SerieDate) Mod 400 = 0) Then
    Range("B17").Select
            IsBissextil = Oui
        Else
    Range("C17").Select
            IsBissextil = Non
        End If
    End Sub
     
           POUR LE SECOND BOUTON : 
    Sub Laveilleduchoixdeladate()
    Range("E4").Select
    ActiveCell.Value = SerieDate - 1
    End Sub
    PS : évitez les critiques s'il vous plait, je sais que mon code est ridicule, mais j'essaie.

    Merci pour vos réponses,
    Cordialement,

  2. #2
    Membre Expert Avatar de jerome.vaussenat
    Homme Profil pro
    Formateur Bureautique
    Inscrit en
    Janvier 2011
    Messages
    1 629
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Formateur Bureautique
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 629
    Par défaut
    Salut,

    Voici une proposition de code.
    J'ai mis des commentaires pour t'aider à comprendre ce que j'ai modifié.

    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
    20
    21
    22
    23
    24
    25
    26
    Sub Choixdeladate()
    Dim SerieDate As Date
     
    On Error Resume Next
     
    'boucle pour forcer la saisie d'une date dans la msgbox
    Do
        Err.Number = 0
        SerieDate = InputBox("Merci de saisir une date", "EcrireJour/Mois/Année", 1)
    Loop Until Err.Number = 0
     
    'on place le contenu de la msgbox dans la feuille
    Range("C4").Value = SerieDate
     
    'on teste si c'est une année bixestile
    If Year(SerieDate) Mod 4 = 0 And (Year(SerieDate) Mod 100 <> 0 Or Year(SerieDate) Mod 400 = 0) Then
    Range("B17").Value = "Oui"  'on met oui dans la feuille
        Else
    Range("C17").Value = "Non"   'on met non dans la feuille
        End If
    End Sub
     
    Sub Laveilleduchoixdeladate()
        'on récupère le contenu de la feuille pour faire -1
        Range("E4").Value = Range("C4").Value - 1
    End Sub
    Bonne utilisation. Et dis nous si çà te va.

    Cordialement.

    GG

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2020
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2020
    Messages : 4
    Par défaut
    Re,

    Je vous remercie, le code est parfait.

    Agréable soirée,

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

Discussions similaires

  1. Date avec Année bissextile
    Par brice97431 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 31/03/2016, 15h14
  2. [VxiR2] Date d'anniversaire année bissextile
    Par Unsurgent dans le forum Webi
    Réponses: 2
    Dernier message: 21/02/2012, 15h11
  3. Date anniversaire et années bissextiles
    Par MiJack dans le forum Langage SQL
    Réponses: 8
    Dernier message: 20/09/2011, 13h34
  4. Réponses: 1
    Dernier message: 07/03/2011, 08h32
  5. [Dates] Liste déroulante date et années bissextiles
    Par Jiraiya42 dans le forum Langage
    Réponses: 7
    Dernier message: 03/07/2007, 00h04

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