Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1948to1952
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Funktion erweitern

Funktion erweitern
18.10.2023 15:44:01
Jochen
Hallo,

ich möchte gerne in die nachfolgende Funktion noch eine Bedingung zusätzlich einbauen, scheitere aber daran.

Function FarbsummeJ10(Bereich As Range, Farbe As Integer)

Dim MyDate, MyMonth
MyDate = DateSerial(Year(Date), 10, 1)
MyMonth = Month(MyDate)

Dim Zelle As Range
Application.Volatile
For Each Zelle In Bereich
If Zelle.Interior.ColorIndex = 35 And Month(Zelle.Offset(, -1)) = Month(MyDate) - 1 And Zelle.Offset(0, 1).Value Like "Amazon*" Then
FarbsummeJ10 = FarbsummeJ10 + Zelle
End If
Next
End Function

Um diese Zeilen geht es:
...
If Zelle.Interior.ColorIndex = 35 And Month(Zelle.Offset(, -1)) = Month(MyDate) - 1 And Zelle.Offset(0, 1).Value Like "Amazon*" Then
FarbsummeJ10 = FarbsummeJ10 + Zelle
...

mit angedachter Erweiterung (Farbe 35, Vormonat und Amazon plus Farbe 35, aktueller Monat und nicht Amazon:

Meine Idee:
...
If Zelle.Interior.ColorIndex = 35 And Month(Zelle.Offset(, -1)) = Month(MyDate) - 1 And Zelle.Offset(0, 1).Value Like "Amazon*" And Month(Zelle.Offset(, -1)) = Month(MyDate) And Not Zelle.Offset(0, 1).Value Like "Amazon*" Then
FarbsummeJ10 = FarbsummeJ10 + Zelle
...

Leider rechnet die Funktion mit der Erweiterung nicht richtig. Ist eine Lösung möglich?

Grüße
Jochen

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Funktion erweitern
18.10.2023 15:51:01
onur
If Zelle.Interior.ColorIndex = 35 And Month(Zelle.Offset(, -1)) = Month(MyDate) - 1 And Zelle.Offset(0, 1).Value Like "Amazon*" Then 

???
Laut
MyDate = DateSerial(Year(Date), 10, 1)

MyMonth = Month(MyDate)

ist MyDate immer der ERSTE Oktober des aktuellen Jahres. und somit ist MyMonth IMMER eine 10.
Warum trägst du dann nicht direkt oben
....And Month(Zelle.Offset(, -1)) = 9 ......

ein ?
AW: Danke
18.10.2023 23:03:55
Jochen
Hallo onur,

danke für die Tipps. Ich habe mein Problem anders mit Hilfe von zwei getrennten Funktionen (Farbsummen) gelöst, die ich dann verknüpft habe.

VG
Anzeige
AW: Funktion erweitern
18.10.2023 16:00:10
onur
Zweite Frage:
Warum hast du die Variable MyMonth eingeführt, wenn du stattdessen doch nur
....= Month(MyDate) - 1....

benutzt?
AW: Funktion erweitern
18.10.2023 16:08:19
Yal
Hallo Jochen,

erzeuge lieber eine Formel, die dir die Färbung einer Zelle zurückgibt:
Public Function ZelleFarbeIndex(ByVal Target As Range)

ZelleFarbeIndex = Target.Interior.ColorIndex
End Function

Füge z.B. in B1
=ZelleFarbeIndex(A1)

Dann bearbeite deinen Summen mit Excel-Formeln, u.a. SUMMEWENN und SUMMEWENNS
Oder gar eine Pivottabelle.

VG
Yal

Anzeige
AW: Danke
18.10.2023 23:05:18
Jochen
Hallo Yal,

danke für die Tipps. Ich habe mein Problem anders mit Hilfe von zwei getrennten Funktionen (Farbsummen) gelöst, die ich dann verknüpft habe.

VG
AW: Funktion erweitern
18.10.2023 17:07:47
daniel
Hi

das ist komplex und du hast hier quasi ein XOR, also ein Exlusiv-Oder.

ich empfehle, bei sowas nicht alle Bedingungen in eine Zeile zu packen, mehrere IF-Blöcke zu bilden, zumindest jedes AND sollte ein eigenes IF bekommen:
Das kann sich sogar positiv auf die Berechungszeit auswirken (bei Volatilen Funktionen besonders interessant)

also nach diesem Prinzip (Code nur schematisch)

IF Farbe = 35 Then

if Händler = Amazon Then
if Monat = Vormonat Then Summierung
else
if Monat = GleicherMonat Then Summierung
end if
end if


noch ein kleiner Tip:
deine Bildung des Vormonats funktioniert nicht für den Januar, denn der Vormonat von 1 ist 12 und nicht 0.

Gruß Daniel
Anzeige
AW: Danke
18.10.2023 23:08:53
Jochen
Hallo Daniel,

danke für deine Tipps. Ich habe mein Problem mittlerweile anders mit Hilfe von zwei getrennten Funktionen (Farbsummen) gelöst, die ich dann zwecks Gesamtsummenbildung verknüpft habe.
Danke auch für den Hinweis für den Januar, da es den Vormonat des Vorjahres ja nicht im aktuellen Jahr gibt. Daran habe ich auch gedacht und konnte es richtig berücksichtigen.

VG

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige