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 :

Déterminer 1er et dernier jour du trimestre


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    85
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Avril 2007
    Messages : 85
    Points : 33
    Points
    33
    Par défaut Déterminer 1er et dernier jour du trimestre
    Bonjour,

    Je souaite déterminer les 1er et dernier jours des trimestres


    J'ai effectué cela

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for j = 1 to 10 step 3
    'Dernier jour du mois
            MsgBox CDate("01/" & j + 3 & "/" & Worksheets("Garde").Range("F15").Value) - 1
    'Premier jour du mois
            MsgBox CDate("01/" & j & "/" & Worksheets("Garde").Range("F15").Value)
    Next j
    Mon pb concerne le dernier jour du 4eme trimestre
    Ds cet exemple il me ressort le 12/01/2007.

    Auriez-vous une idée...


    Merci

    Fred

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    262
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 262
    Points : 304
    Points
    304
    Par défaut
    Bonjour,

    Je ne comprends pas trop ce que tu cherches à faire... les 1ers et derniers jours d'un trimestre sont fixes

    Dans ton code, tu parles du 1er et dernier jour du mois... alors, trimestre ou mois ?

  3. #3
    Expert éminent Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 754
    Points : 9 396
    Points
    9 396
    Par défaut
    essai avec ce code

    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
     
    Dim j As Integer
    Dim dte As Date
     
    dte = CDate("01/01/2007")
     
    For j = 1 To 4
     
     
        MsgBox Format(CDate("01/" & Month(dte) & "/" & "2007"), "dddd dd mmm yyyy") & " - " & _
                Format(DateAdd("d", -1, "01/" & Month(DateAdd("q", 1, dte)) & "/2007"), "dddd dd mmm yyyy")
     
        dte = DateAdd("q", 1, dte)
     
    Next j

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 6
    Points : 6
    Points
    6
    Par défaut Par défaut Déterminer 1er et dernier jour du trimestre
    Salut,
    VBA n'aime pas le mois n° 13.
    Essaye ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    'Dernier jour du mois
            MsgBox CDate("01/" & (j + 2) Mod 12 + 1 & "/" & 2007 + Int(j / 10)) - 1
    Bye
    Gerard123

  5. #5
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    85
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Avril 2007
    Messages : 85
    Points : 33
    Points
    33
    Par défaut
    Superbe merci bcp...

    J'ai utilisé la version de gerard.

    Pour info, pour flo_flo, d'après mon appli, je suis obligé de passer par là, bien que sachant que les dates de debut et fin de "Trimestre" (mea culpa) ne changent pas.

    Merci bcp à vous

    Fred

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    =DATE(ANNEE(madate);((ENT((MOIS(madate)+2)/3)-1)*3)+1;1)
    =DATE(ANNEE(madate);((ENT((MOIS(madate)+2)/3)-1)*3)+1+3;0)

  7. #7
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 537
    Points
    5 537
    Par défaut
    Bonjour,

    L'utilisation de Dateserial permet toutes les fantaisies (c'est ainsi que l'a voulu VB), y compris les jours 0, les mois 0, les mois 13, etc...) !

    Voilà le dernier jour d'un mois, donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Command1_Click()
      annee = 2007
      mois = 12
      MsgBox DateAdd("d", -1, DateSerial(annee, mois + 1, 1))
    End Sub
    Il n'est autre que le jour précédant le 1er jour du mois suivant (ainsi dirait Monsieur de la Palice).

    Bonne continuation ...

  8. #8
    Membre averti Avatar de mordrhim
    Inscrit en
    Avril 2007
    Messages
    270
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Avril 2007
    Messages : 270
    Points : 314
    Points
    314
    Par défaut
    moi aussi je veux jouer !!
    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
    Sub tester()
        Trimestre = 0
        For j = 1 To 1500 Step 3
        'Premier jour du mois
            Trimestre = Trimestre + 1
            Test = MsgBox("Début T" & Trimestre & " : " & CDate("01/" & j Mod 12 & "/" & Range("F15").Value + Int((j + 3) / 12)), vbOKCancel)
            If Test = 1 Then
                'Dernier jour du mois
                Test = MsgBox("Fin T" & Trimestre & " : " & CDate("01/" & (j + 3) Mod 12 & "/" & Range("F15").Value + Int((j + 3) / 12)) - 1, vbOKCancel)
                If Test <> 1 Then Exit For
            Else
                Exit For
            End If
        Next j
    End Sub
    mois 13 ca passe pas donc il faut faire un modulo(12) pour le mois et la partie entiere divisée par 12 pour l'année

    pour 1<j<12, j mod 12 = j, Int(j/12) = 0
    pour j = 13, j mod 12 = 1 remet le mois à Janvier, Int(j/12) = 1 Passe à l'année suivante.

  9. #9
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 537
    Points
    5 537
    Par défaut
    Binjour, Mordrhim,

    Evidemment, qu'il ne passe pas ainsi, ton "mois 13", et que tu t'en trouves de ce fait embarqué dans de l'inutilement complexe.

    Tu viens peut-être de découvrir que Dateserial (que tu n'utilises pas, toi) fonctionne de manière différente et permet beaucoup d'autres petites choses.

  10. #10
    Membre averti Avatar de mordrhim
    Inscrit en
    Avril 2007
    Messages
    270
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Avril 2007
    Messages : 270
    Points : 314
    Points
    314
    Par défaut

    ouais, en meme temps ca ne fais que depuis avril que je programme VBA

Discussions similaires

  1. Réponses: 7
    Dernier message: 06/08/2013, 16h59
  2. Connaitre 1er et dernier jour du mois d'une date donnée
    Par kerido dans le forum Général Java
    Réponses: 4
    Dernier message: 14/05/2012, 14h18
  3. Trouver le 1er et dernier jour du mois
    Par Furil dans le forum Langage
    Réponses: 4
    Dernier message: 15/02/2012, 08h55
  4. Retourner les 1er et dernier jours de l'année
    Par khaoula_14_05 dans le forum Général Java
    Réponses: 2
    Dernier message: 07/05/2008, 16h23
  5. Objet personnel - Calcul 1er et dernier jour du mois
    Par amiral59 dans le forum Deski
    Réponses: 8
    Dernier message: 26/04/2007, 08h42

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