2015-07-16 1 views
1

J'ai une feuille avec des informations de prix stockées qui sont datées. La colonne A contient une liste de dates stockées et les colonnes K, L et M doivent être additionnées et soustraites par la somme de la colonne E, si elles se situent dans la plage de dates indiquée. Q1 est l'emplacement dans lequel vous choisissez la date de début au format "7/15/15", et Q2 est l'emplacement dans lequel vous choisissez la date de fin de la plage souhaitée. Voici quelques images pour aider à ce que je décris:Somme de plusieurs cellules entre les dates

enter image description here

Mépris la seconde image cellule "moyenne Profit", qui devrait être intitulé "Total Profit"

enter image description here

+0

Avez-vous vu mon dernier commentaire hier? L'emplacement dans lequel vous choisissez la date de fin de la plage souhaitée n'est pas Q2, mais plutôt Q4 et c'est probablement pourquoi il renvoie 0. Il semble que les lignes 2 et 3 soient masquées. – rwilson

+0

Wow, super attrape! Bien que, même après la fixation de la macro, je reçois toujours 0 .. était sûr que votre trouvaille était la solution .. – user3059686

+0

Hmm. La formule que je vous ai fournie il y a quelques jours fonctionne-t-elle après avoir fait ce changement? – rwilson

Répondre

0

Ici, mon approche pour votre problème avec VBA.

Public Sub summarizeValue() 

    Dim total As Long 
    Dim row As Integer 

    'Set start row 
    row = 5 

    'Work with sheet 
    With Sheets("sheetname") 

     'Loop until date cell is blank 
     Do While .Range("A" & row) <> "" 

      'If all date cell are valid 
      If IsDate(.Range("A" & row)) And IsDate(.Range("Q1")) And IsDate(.Range("Q4")) Then 

       'If date is valid between two range. 
       If .Range("Q1") <= .Range("A" & row) And .Range("A" & row) <= .Range("Q4") Then 

        total = total + .Range("K" & row) + .Range("L" & row) + .Range("M" & row) - .Range("E" & row) 

       End If 

      End If 

      row = row + 1 

     Loop 

     .Range("Q7") = total 

    End With 

End Sub 
+0

Je suis passé par le code et tout semble aller bien, pour moi, cela devrait fonctionner. Mais après l'exécution du script, "0" a été renvoyé .. VBA semble être la meilleure solution cependant. Peut-être qu'un peu de bricolage va résoudre le problème. – user3059686

+0

Vous devez modifier le nom de votre feuille à l'adresse "With Sheets" ("sheetname") '. Si c'est le cas, cela fonctionnera bien. Je l'ai déjà testé. Je pense que vous devriez déboguer le code, si pas sûr. –

+0

J'ai déjà corrigé le code avant de l'exécuter. Le nom de feuille correct est dans le VBA et renvoie toujours "0". – user3059686