Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
144to148
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
144to148
144to148
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

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é

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

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

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige