Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Summe

Forumthread: Summe

Summe
02.08.2002 16:23:14
André
Hallo,

ich brauche dringend Eure Hilfe!

Wie geht das?
Ich habe eine Tabelle erstellt, in der mehrere Blöcke untereinander stehen. Jeder Block besteht aus 6 Zeilen und 2Spalten! Die Zellen in den Zeilen 1-5 sind zusammengefastt, nur die letzte Zeile nicht. Davon die rechte Zeile steht in Abhängigkeit mit der ersten Zeile deren Hintergrundfarbe. Ich habe mehrere dieser Blöcke untereinanderstehen und möchte nun in Abhängigkeit der Hintergrundfarbe z.B. rot (colorindex 3), den Wert in der letzten Zeile eines Blockes rechts irgendwo summiert haben.

Private Sub Worksheet_SelectionChange(byval target as Excel.Range)

If Range("A1:B1").interior.colorindex=3 then
Range("D9").value = Range("B6")
Else
Range("D9").value = 0
End IF
End Sub

Wenn ich das für jeden Block mache, dann wird der Code unter VBA zu lang! Besteht vielleicht die Möglichkeit ein Funktion zu programmieren, die in Abhängigkeit der Farbe den Wert in einer anderen Zelle (Position des Wertes in allen Blöcken gleich) summiert???

Gruß André

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Summe
02.08.2002 16:49:32
Charlie
Hallo, André!

Ich bin mir zwar nicht ganz sicher, ob ich die Aufgabenstellung richtig geschnallt habe, aber hier ein erster Versuch.

Es werden im UsedRange des aktiven Blattes alle Zellen auf ihre Hintergrundfarbe geprüft und der Wert der um 5 Zeilen darunter sowie 1 Spalte rechts versetzten Zelle aufsummiert. Das Ergebnis wird in Zelle D9 geschrieben.

Anstelle von .UsedRange kannst Du natürlich auch einen Bereich verwenden, z.B. Range("B1:C100") oder so.

Viel Erfolg,
Charlie

Anzeige
Re: Summe
02.08.2002 19:11:09
André
Hi Charly

Ich versuche gerade eine Art Funktion dafür zu schreiben, bloß ich finde nun den Fehler nicht?

Function farbe(rngbereich As Object, intcolor As Long)

Dim rngact As Range
Dim farbe As Double

For Each rngact In rngbereich
If rngact.Interior.ColorIndex = intcolor Then
farbe = farbe + rngact.Cells(rngact.Row + 5, rngact.Column + 1)
End If
Next rngact
farbe = farbe

End Function

Findest Du den?

Anzeige
Re: Summe
02.08.2002 19:19:32
Charlie
Hallo, André!

Der Fehler lag in der Zeile
Farbe = Farbe + rngAct.Cells(rngAct.Row + 5, rngAct.Column + 1)

Das rngAct in rngAct.Cells(... war ein rngAct zuviel. Außerdem war die letzte Zeile im Code "farbe = farbe" unnötig. Es ist Nonsens, einer Variablen den Wert zuzuweisen, den sie ohnehin schon hat(te).

So funktioniert die Function

Viel Erfolg,
Charlie

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige