Monatszahlen summieren

  • VB6

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von Alex2000.

    Monatszahlen summieren

    Hallöchen,

    ich habe Excel 2002.

    Ich habe ein Programm erhalten welches noch nicht ganz auf meine Bedürfnisse abgestimmt ist. Ich habe schon ein paar Sachen verändert, aber hier komm ich nicht weiter. Es ist so: Bei dem folgenden Code werden die Zahlen pro Monat in die dafür vorgesehenen Zellen eingefügt. Allerdings bräuchte ich immer die Summe vom Januar bis zum jeweiligen Monat, d.h. im Januar brauche ich nur die Zahl vom Januar, im Februar die Zahl vom Januar plus Februar usw. Jetzt habe ich mir überlegt dass da eine Schleife rein muss, bin mir aber nicht im klaren wie das Aussehen soll. Das Problem ist nämlich dass nicht jeder Monat eine Zahl hat, das bedeutet das Programm muss die letzte eingetragene Zahl suchen, allerdings ist die Spalte nicht unbegränzt nach oben offen, da dort schon die anderen Tabellen anfangen. Zwischen den Tabellen gibt es immer eine grauunterlegte Zeile, kann man dies als Stoppsignal nehmen? Wenn ja, wie stell ich das an?

    Damit es euch ein wenig verständlicher wird ist unten der Code.

    Danke schon mal im vorraus

    Visual Basic-Quellcode

    1. Sub AddKstToJahresdiagramm(ByVal kst As Integer, ByVal wert As Integer, ByVal month As Integer)
    2. ' Finden des Projekts zu der Kostenstelle
    3. Dim projektName As String
    4. If wert = 0 Then
    5. Exit Sub
    6. End If
    7. With Tabelle3
    8. ' finde das projekt zu der kst
    9. Dim currZeile As Integer
    10. currZeile = 7
    11. Do While (.Cells(currZeile, 4).Value <> "" Or .Cells(currZeile, 5).Value <> "" Or .Cells(currZeile, 6).Value <> "")
    12. If .Cells(currZeile, 4).Value = kst Then
    13. projektName = .Cells(currZeile, 8).Value
    14. Exit Do
    15. End If
    16. currZeile = currZeile + 1
    17. Loop
    18. If projektName = "" Then
    19. MsgBox "Kein Projektname für Kostenstelle " & kst & " gefunden"
    20. Exit Sub
    21. End If
    22. ' Finden der Tabelle für dieses Projekt in der Jahresübersicht
    23. currZeile = jahresdiagrammZeile
    24. Do While (.Cells(currZeile, 1).Value <> "ENDE DER TABELLE")
    25. If .Cells(currZeile, 1).Value = projektName Then
    26. ' Suche den passenden monat
    27. Dim i As Integer
    28. For i = 1 To 24
    29. If .Cells(currZeile + i, 1).Value = month Then
    30. ' Finden der Kostenstelle-Spalte
    31. Dim j As Integer
    32. j = 1
    33. Do While (.Cells(jahresdiagrammZeile, j).Value <> "")
    34. If .Cells(jahresdiagrammZeile, j).Value = kst Then
    35. ' Gibt es bereits einen Wert für diese Konstelation?
    36. Dim neuerWert As Integer
    37. If .Cells(currZeile + i, j).Value <> "" Then
    38. neuerWert = .Cells(currZeile + i, j).Value + wert
    39. Else
    40. neuerWert = wert
    41. End If
    42. ' den neuen Wert eintragen
    43. .Cells(currZeile + i, j).Value = neuerWert
    44. End If
    45. j = j + 1
    46. Loop
    47. End If
    48. Next i
    49. End If
    50. currZeile = currZeile + 1
    51. Loop
    52. End With
    53. End Sub