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
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
- Sub AddKstToJahresdiagramm(ByVal kst As Integer, ByVal wert As Integer, ByVal month As Integer)
- ' Finden des Projekts zu der Kostenstelle
- Dim projektName As String
- If wert = 0 Then
- Exit Sub
- End If
- With Tabelle3
- ' finde das projekt zu der kst
- Dim currZeile As Integer
- currZeile = 7
- Do While (.Cells(currZeile, 4).Value <> "" Or .Cells(currZeile, 5).Value <> "" Or .Cells(currZeile, 6).Value <> "")
- If .Cells(currZeile, 4).Value = kst Then
- projektName = .Cells(currZeile, 8).Value
- Exit Do
- End If
- currZeile = currZeile + 1
- Loop
- If projektName = "" Then
- MsgBox "Kein Projektname für Kostenstelle " & kst & " gefunden"
- Exit Sub
- End If
- ' Finden der Tabelle für dieses Projekt in der Jahresübersicht
- currZeile = jahresdiagrammZeile
- Do While (.Cells(currZeile, 1).Value <> "ENDE DER TABELLE")
- If .Cells(currZeile, 1).Value = projektName Then
- ' Suche den passenden monat
- Dim i As Integer
- For i = 1 To 24
- If .Cells(currZeile + i, 1).Value = month Then
- ' Finden der Kostenstelle-Spalte
- Dim j As Integer
- j = 1
- Do While (.Cells(jahresdiagrammZeile, j).Value <> "")
- If .Cells(jahresdiagrammZeile, j).Value = kst Then
- ' Gibt es bereits einen Wert für diese Konstelation?
- Dim neuerWert As Integer
- If .Cells(currZeile + i, j).Value <> "" Then
- neuerWert = .Cells(currZeile + i, j).Value + wert
- Else
- neuerWert = wert
- End If
- ' den neuen Wert eintragen
- .Cells(currZeile + i, j).Value = neuerWert
- End If
- j = j + 1
- Loop
- End If
- Next i
- End If
- currZeile = currZeile + 1
- Loop
- End With
- End Sub