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 :

Calcule la somme entre deux dates en condition sur 6 mois [XL-2013]


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 51
    Points : 32
    Points
    32
    Par défaut Calcule la somme entre deux dates en condition sur 6 mois
    Bonjour a tous,

    je n'arrive pas a faire la somme sur deux colonnes en utilisant la fonction isDansSixMois
    cette fonction me permet de pointer les lignes d'une date (date actua) qui se trouvent dans une table et des dates qui se trouve dans une colonne (c_alpha)
    comme condition je fais la sommes dans les six mois
    PI : 183 jours = 6 mois
    le resultat que j'obtiens ne prends pas en compte la condition entre les deux dates :-(

    je ne sais pas si me demande en clair ????

    ci-dessous la fonction isDansSixMois
    merci d'avance pour votre aide.

    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
    Function isDansSixMois(ByVal l As Integer, mois_actuel As Integer) As Boolean
    'renvoie si la ligne l a une date fin  dans les 6 mois de mois_actuel
    'mois_actuel est le mois dont on souhaite la MAJ dans l'onglet Table
     
    Dim c_alpha As Integer
    c_alpha = 10 ' colonne date fin
     
    Dim rep As Boolean
    rep = False
     
    'Dim D6mois As Integer
    D6mois = 183 'nombre de jour entre deux date
     
     
    Dim date_actua As Long
    date_actua = Worksheets("Table").Cells(13, mois_actuel + 2)
     
     
    If (Cells(l, c_alpha).Value - date_actua < D6mois) Then
        rep = True
    End If
     
    isDansSixMois= rep
    End Function

  2. #2
    Invité
    Invité(e)
    Par défaut Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If DateDiff("m", Cells(l, c_alpha).Value, date_actua) < D6mois Then

  3. #3
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par undo74 Voir le message
    le resultat que j'obtiens ne prends pas en compte la condition entre les deux dates :-(
    Ta fonction ne peut pas marcher puisqu'à aucun moment tu ne renseignes "isDansSixMois".
    J'ai l'impression que cette fonction s'appelait auparavant "isInfSixMois" et que tu as oublié de faire la modif dans le code.

    Citation Envoyé par rdurupt Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If DateDiff("m", Cells(l, c_alpha).Value, date_actua) < D6mois Then
    Attention, pour que ça marche, il faudra que D6mois soit égal à 6 et non à 183..
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  4. #4
    Invité
    Invité(e)
    Par défaut
    et oui mas j'ai vue D6mois j'ai conclue... mais apparemment c'est pas bon j'ai pas tout lue! désolé
    Dernière modification par AlainTech ; 04/08/2014 à 01h14. Motif: Suppression de la citation inutile

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 51
    Points : 32
    Points
    32
    Par défaut
    Bonjour Menhir;
    Effectivement la fonction porté le nom isInfSixMois désolé pour l'erreur: oops:
    merci

    Bonjour rdurupt , Menhir,

    j'ai testé la solution de rdurupt j'obtiens pas bon résultat
    J'ai retravaillé mon code et j'obtiens les bonnes infos je ne sais pas si c'est conforme mais ça marche
    mais je suis quand même preneur d'autres solutions :
    Merci a vous
    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
    27
    28
     
    Function isDansSixMois (ByVal l As Integer, mois_actuel As Integer) As Boolean
    'renvoie vrai si la ligne l a une date fin entre 0 et 6 mois de mois actuel
     
    Dim c_alpha As Integer
    c_alpha = 10
     
    Dim rep As Boolean
    rep = False
     
    Dim Debutmois As Integer
    Debutmois = 0
     
    Dim Finmois As Integer
    Finmois = 184
     
     
    Dim date_actua As Date
    date_actua = Worksheets("Table").Cells(18, mois_actuel + 2)
     
     
    If ((Cells(l, c_alpha) - date_actua < Finmois) And _
        (Cells(l, c_alpha) - date_actua > Debutmois)) Then
            rep = True
    End If
     
    isDansSixMois  = rep
    End Function

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

Discussions similaires

  1. [Toutes versions] Calcul moyenne entre deux dates selon condition par vba
    Par bboy-eazy dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 27/05/2015, 13h08
  2. Calcul d'une somme entre deux dates
    Par Pierre67 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 23/03/2010, 22h48
  3. Calculer la différence entre deux dates
    Par drthodt dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 18/12/2007, 08h27
  4. Requête pour calculer le temps entre deux dates
    Par Badboy62cfp dans le forum Access
    Réponses: 2
    Dernier message: 19/05/2006, 13h50
  5. [VBA] Calculer la différence entre deux dates
    Par T'chab dans le forum Access
    Réponses: 13
    Dernier message: 11/05/2006, 15h12

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