2.1k Aufrufe
Gefragt in Tabellenkalkulation von
Hallo,

ich habe folgenden Code der auch funktioniert:
Dim current_Wertstrom As String
Dim sum_DB41Wertstrom As Double
Dim sum_DB4z1Wertstrom As Double
Dim sum_UmsWertstrom As Double
Dim sum_VerkWertstrom As Double

Dim i1Wertstrom As Integer
Dim b1Wertstrom As Integer
Dim hilfWertstrom As Double
Dim lngLetzteWertstrom As Long

Worksheets("Hilf_Mon").Range("F1").Value = "DB4"
Worksheets("Hilf_Mon").Range("G1").Value = "DB4 zentral"
Worksheets("Hilf_Mon").Range("H1").Value = "Umsatz"
Worksheets("Hilf_Mon").Range("I1").Value = "Verkaufsmenge"

sum_DB41Wertstrom = 0
sum_DB4z1Wertstrom = 0
sum_UmsWertstrom = 0
sum_VerkWertstrom = 0

'für Wertstrom DB4 und DB4zentral Summe bilden

For b1Wertstrom = 2 To Sheets("hilf_mon").Cells(Rows.Count, 5).End(xlUp).Row
current_Wertstrom = Worksheets("hilf_mon").Range("e" & b1Wertstrom)
For i1Wertstrom = 2 To Sheets("Data_neu_Mon").Cells(Rows.Count, 7).End(xlUp).Row
If Worksheets("Data_neu_Mon").Range("R" & i1Wertstrom) = current_Wertstrom Then
sum_DB41Wertstrom = sum_DB41Wertstrom + Worksheets("Data_neu_Mon").Range("o" & i1Wertstrom).Value
sum_DB4z1Wertstrom = sum_DB4z1Wertstrom + Worksheets("Data_neu_Mon").Range("p" & i1Wertstrom).Value
sum_UmsWertstrom = sum_UmsWertstrom + Worksheets("Data_neu_Mon").Range("k" & i1Wertstrom).Value
sum_VerkWertstrom = sum_VerkWertstrom + Worksheets("Data_neu_Mon").Range("j" & i1Wertstrom).Value
End If
Next

Worksheets("hilf_Mon").Range("F" & b1Wertstrom).Value = sum_DB41Wertstrom
Worksheets("hilf_Mon").Range("G" & b1Wertstrom).Value = sum_DB4z1Wertstrom
Worksheets("hilf_Mon").Range("H" & b1Wertstrom).Value = sum_UmsWertstrom
Worksheets("hilf_Mon").Range("I" & b1Wertstrom).Value = sum_VerkWertstrom

sum_DB41Wertstrom = 0
sum_DB4z1Wertstrom = 0
sum_UmsWertstrom = 0
sum_VerkWertstrom = 0

Next


Nun möchte ich anstatt nur nach Wertstrom zu prüfen noch eine zweite Bedingung nämlich Monat mit Abfragen. Dieser steht im Tabellenblatt Hilf_Mon in Spalte B und im Blatt Data_neu_Mon in Spalte T.
Wie kann ich meinen Code anpassen?

7 Antworten

0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo Isibell,

wenn ich dich richtig verstehe, müsstest du bei der Zeile
If Worksheets("Data_neu_Mon").Range("R" & i1Wertstrom) = current_Wertstrom Then

die von dir gewünschte Abfrage des Datums einbauen. Das könnte etwa so aussehen:
If Worksheets("Data_neu_Mon").Range("R" & i1Wertstrom) = current_Wertstrom And If Month(Worksheets("Data_neu_Mon").Range("T" & i1Wertstrom)) = Suchmonat Then

Den Code musst du natürlich auf deine Verhältnisse anpassen.

Ggf. könnte man das auch einfacher über Application.WorksheetFunction.SumIfs (Summewenns) lösen.

Gruß

M.O.
0 Punkte
Beantwortet von
Vielen Dank erst Mal für die schnelle Antwort.
Dein Vorschlag mit dem Einbauen des "And if" hatte ich schon probiert. Leider funktioniert das aber nicht. Vergesse ich evt etwas? Ich bekomme als Fehlermeldung Fehler beim Kompilieren: Erwartet Ausdruck
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo Isibell,

wie sieht denn dein Code mit der erweiterten IF-Abfrage aus (bitte poste den kompletten Code)?

Gruß

M.O.
0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi all ^^

das zweite if ist zuviel

gruss nighty
0 Punkte
Beantwortet von
Ohne das zweite if gehts perkekt. Vielen Dank schon mal.
0 Punkte
Beantwortet von
Hallo nochmal,

ich hatte den Code oben probiert und es funktionierte mit einem hart in den Code eingetragenen Suchmonat.
Nun wird es jedoch noch etwas komplizierter.
Ich möchte die Ergebnisse nicht nur für einen Suchmonat, sondern für Mehrere. Diese stehen dann wie gesagt im Tabellenblatt "hilf_Mon" in Spalte B untereinander.
Die Ergebnisse möchte ich dann in Zeilen nach den Wertströmen untereinander (so wie es eh schon funktioniert hat) und spaltenweise nach Monaten. Also, dass es nicht mehr nur in Spalte F sum_DB41Wertstrom steht, sondern in Spalte F die Summe je Wertstrom für den ersten Suchmonat, in Spalte J für den zweiten Suchmonat etc.
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo Isibell,

es wäre ganz gut, wenn du mal eine Beispieldatei hochladen würdest, z.B. hier, und den entsprechenden Link dann hier postest.
Die Datei sollte im Aufbau deiner echten Datei entsprechen und ein paar Dummy-Datensätze enthalten. Und wenn du auch noch dein gewünschtes Ergebnis darstellen würdest, wäre es super ;-).

Gruß

M.O.
...