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 :

comparer date vba-excel


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2010
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 60
    Par défaut comparer date vba-excel
    Bonjour tout le monde,
    Au fait j'ai un tableau qui se présente comme suit:
    agence Janv-10 Fev-10 Mar-10 avr-10.....
    A 12 15 18 20
    B 22 12 52 25
    ..
    ..
    ..

    Ma macro doit comparer à chaque fois la date d'aoujourd'hui avec la date du tableau

    si la date d'ajourd'hui est superieur à la date du tableau il prend le cumul jusqu'au mois d'avant mon mois

    ex: si on est en avril ; il me calcule le cumul JANV+FEV+MARS
    si on est en juillet; il me calcule JANV+FEV+MARS+AVRIL+MAI+JUIN

    et ainsi de suite

    J'ai essayé la macro suivante mais ça n'a pas marché.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub cumul()
    Dim ligne As Integer, colonne As Integer
    For ligne = 14 To 27
      For colonne = 3 To 14
        If Cells(12, colonne) < Cells(1, 5) Then
          Cells(ligne,colonne).formula="sum(cells(ligne,colonne))"
        End If
      Next colonne
    Next ligne
    End Sub

    avec cell(1,5) c'est une case ou j'ai du inserer la date d'aujourd'hui dans ma feuille excel.


    Merci de bien vouloir m'aider

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    633
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 633
    Par défaut
    Bonsoir

    ex: si on est en avril ; il me calcule le cumul JANV+FEV+MARS
    si on est en juillet; il me calcule JANV+FEV+MARS+AVRIL+MAI+JUIN
    ou faut-il écrire le résultat?

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2010
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 60
    Par défaut
    Bonjour zyhack,
    Il faut écrire le résultat dans un tableau à part comportant les mois.
    AU fait si je reprend mon exemple: en juillet il me calcule le cumul des mois JAN, FEV,MARS,AVRIL,MAI,JUIN et il laisse les valeurs des autres mois intacts. le tableau de présentera comme suit:

    colonne1: agence(A,B,.....)
    colonne2: Les chiffres cumulés jusqu'au juin
    colonne3:Valeur mois de juillet
    colonne4:Valeur mois d'aout
    ...
    ...
    ...

    Merci de ton effort

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    633
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 633
    Par défaut
    Bonjour

    peut-être à adapter suivant tes feuilles
    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
    Sub Cumul()
    Dim wsh2 As Worksheet, C As Range, derligne As Long
    Dim lmois As Long, lparc As Integer, total As Long, B As Integer
     
    Set wsh2 = Worksheets("Feuil2")'le nom de la feuille ou tu écris
    lmois = 13 'ligne ou est la ligne des mois
    lparc = 14 '1er ligne des valeurs a totaliser
     
    With Worksheets("Feuil1")'le nom de la feuille à totaliser
      Do While .Cells(lparc, 1) <> ""
        total = 0
        For B = 3 To 14
          If DatePart("m", .Cells(lmois, B)) < DatePart("m", .Cells(1, 5)) Then
            If .Cells(lparc, B) <> "" Then total = total + .Cells(lparc, B)
          End If
        Next
        'parcours dans feuil2 la ligne des mois
        derligne = wsh2.Cells(Rows.Count, 1).End(xlUp).Row
        For B = 2 To 14
          'si le mois actuel est trouvé dans la deuxième feuille
          If DatePart("m", .Cells(1, 5)) = DatePart("m", wsh2.Cells(1, B)) Then
            'vérifier si l'agence existe déja
            Set C = wsh2.Range("A2:A" & derligne).Find(.Cells(lparc, 1), LookIn:=xlValues, lookat:=xlWhole)
            If Not C Is Nothing Then
              'si oui on écrit la valeur dans la ligne correspondante
              wsh2.Cells(C.Row, B) = total
              Exit For
            Else
              'sinon on écrit le nom de l'agence en plus
              wsh2.Cells(derligne + 1, 1) = .Cells(lparc, 1)
              wsh2.Cells(derligne + 1, B) = total
              Exit For
            End If
          End If
        Next
        lparc = lparc + 1
      Loop
    End With
    End Sub

Discussions similaires

  1. [XL-2010] tuto ou article DATES VBA / EXCEL?
    Par galopin01 dans le forum Excel
    Réponses: 2
    Dernier message: 05/01/2015, 22h46
  2. Problème de date Vba excel
    Par larosse dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/11/2009, 18h33
  3. recherche par date vba excel
    Par fred014 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 29/03/2007, 13h35
  4. [VBA-E] Compatibilité de Date dans VBA Excel
    Par dorschner dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 21/05/2006, 19h25
  5. [VBA Excel] convertir une date francaise au format anglais
    Par loacast dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 15/12/2005, 16h52

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