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 :

Trouver les trois mois précédents


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 26
    Par défaut Trouver les trois mois précédents
    Bonjour le forum,

    Je veux à partir de la date d'Aujourd'hui détérminer les trois mois précédent. Par exemple, aujourd'hui on est le 01/07/2010, je veux une macro qui me renvoie "06" , "05" et "04"

    Merci beaucoup pour vos futurs réponse.

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Une piste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Public Function MoisPrecd(ByVal ofst As Byte) As Byte
    'Si Date=01/07/2010
    'ofst: nombre de mois à retrancher
    'MoisPrecd(1)=6
    'MoisPrecd(2)=5
    'MoisPrecd(3)=4
    MoisPrecd = Month(DateAdd("m", -ofst, Date))
    End Function

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 26
    Par défaut
    Merci mercatog.
    En fait j'ai pa su comment intégrer ton code dans le mien (je suis débutante ) car mon but et de comparer les les mois obtenu avec des cellules de mon tableau. Voici mon 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
     
    Sub Mois_précédent()
    'calcul des 3 variable mois_precedent1, mois_precedent2, mois_precedent3 qui contiennent les 3 mois précédent
     
    Worksheets("Feuil1").UsedRange.Rows(9).Select
    Dim cellule As Range
    For Each cellule In Selection.Cells
    ma_date = CDate(cellule.Value)
    mon_mois = Month(ma_date)
    If (mon_mois = mois_precedent1 Or mon_mois = mois_precedent2 Or mon_mois = mois_precedent3) Then
    'cellule.Delete
    'End If
    'Next cellule
     
    End Sub
    C'est la partie en commentaire que je n'arrive pas à coder sachant que mes dates qui existent dans ma feuille excel sont de la forme "jj/mm/yyyy" donc il faut calculer les trois mois précédents sous la forme "mm" pour pouvoir comparer
    Merci.

  4. #4
    Membre Expert
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Par défaut
    Bonjour,

    La fonction DateAdd() est ton amie !

  5. #5
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Une proposition (si j'ai bien compris)
    supprimer toutes les lignes où dans la colonne I, le mois de la date s'y trouvant, correspond aux 3 derniers mois à partir du mois actuel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub Mois_precedent()
    Dim LastLig As Long, i As Long
    Application.ScreenUpdating = False
    With Sheets("Feuil1")
        LastLig = .Cells(Rows.Count, 9).End(xlUp).Row
        For i = LastLig To 2 Step -1
            If IsDate(.Range("I" & i).Value) Then
                If Month(.Range("I" & i).Value) < Month(Date) And Month(.Range("I" & i).Value) >= Month(DateAdd("m", -3, Date)) Then .Rows(i).Delete
            End If
        Next i
    End With
    End Sub

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 26
    Par défaut
    Parfait, ça m'a résolu mon problème
    Merci mercatog et pc75 pour vos réponses

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

Discussions similaires

  1. Réponses: 13
    Dernier message: 21/02/2009, 10h30
  2. Réponses: 1
    Dernier message: 12/02/2009, 16h51
  3. Réqueter sur les dates du mois précédent.
    Par Bigdeal dans le forum Access
    Réponses: 4
    Dernier message: 08/07/2006, 13h11
  4. Réponses: 4
    Dernier message: 27/04/2006, 09h22
  5. Réponses: 4
    Dernier message: 18/02/2006, 20h42

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