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 :

Incrémenter le dernier jour du mois, mois par mois et année par année


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 112
    Points : 68
    Points
    68
    Par défaut Incrémenter le dernier jour du mois, mois par mois et année par année
    Mes AMIS du Forum Bonjour ,

    Je desire creer dans les cellules C3 à C10 et dans les colonnes suivantes avril Mai etc soit C3 à C10 D3 a D10 Etc la valeur contenant le dernier jour de chaque mois (ex 31/03/XXXX) ou XXXX serais 2011 puis l'Année suivante 2012 ..... Etc. Impossible d'ecrire le code pouvant réalider cela auriez vous une p'tit idée pour m'aider ???? D'avance Merci Cordialment GDS35 Bonne soirée

  2. #2
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonjour.

    Pour la partie calcul des dates, voici une méthode. Par exemple, caluler les dates pour les 1 premiers mois, en commençant au 31/3/2011.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub subgds35()
    Dim dte As Date
    Dim i As Integer
     
    dte = #3/31/2011#'cette date est la dernière d'un mois.
    For i = 0 To 3
        dte = DateAdd("m", 1, dte + 1) - 1
        MsgBox dte
    Next i
     
    End Sub
    Il te reste à adapter à ta feuille.

    Cordialement

    PGZ
    pluritas non est ponenda sine necessitate - Le rasoir d'Okham
    Ne jamais attribuer à la malignité ce que la stupidité peut expliquer -Le rasoir d'Hanlon

  3. #3
    Membre émérite Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Points : 2 662
    Points
    2 662
    Par défaut
    Bonjour (Salut PGZ)

    Une autre méthode:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub CreaDate()
    Dim R As Byte, C As Byte
     
    For C = 3 To 8 'Boucle sur colonne => 5 années commençant par l'année en cours dans la colonne C
        For R = 3 To 10 'Boucle sur les lignes de 3 à 10 suivant Post Dvp, ligne 3 = Mars
            Sheets("Tafeuille").Cells(R, C) = DateSerial(Year(Date) + C - 3, R + 1, 1) - 1
        Next R
    Next C
     
    End Sub
    A+
    N'oubliez pas le si votre problème est solutionné.

  4. #4
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonsoir Frédéric.

    Ce que tu proposes répond plus précisément à la question posée.

    Amitiés,

    PGZ
    pluritas non est ponenda sine necessitate - Le rasoir d'Okham
    Ne jamais attribuer à la malignité ce que la stupidité peut expliquer -Le rasoir d'Hanlon

  5. #5
    Membre expérimenté
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    673
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2007
    Messages : 673
    Points : 1 580
    Points
    1 580
    Par défaut
    Bonjour,
    J'ajoute une petite astuce pour vous simplifier la vie : il n'est pas obligatoire de fournir à la fonction DateSerial les paramètres exacts, si on lui donne des numéros de jour ou de mois hors des bornes, elle calcule la date correspondante.
    C'est très utile pour trouver par exemple le dernier jour du mois : DateSerial(2011, 3, 0) = 28 février 2011 !

Discussions similaires

  1. Requête par client avec ventilation par mois
    Par eclisse dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 10/01/2013, 17h08
  2. Réponses: 3
    Dernier message: 23/06/2009, 15h45
  3. question sur 6 jours ouvrés par mois de préavis du syntec
    Par Filippo dans le forum Droit du travail
    Réponses: 21
    Dernier message: 14/06/2006, 13h20
  4. dernier jour d'un mois comme oracle
    Par looc 6699 dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 07/11/2005, 11h09
  5. Comment connaître le dernier jour d'un mois donné ?
    Par Le Pharaon dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 11/07/2005, 10h48

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