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

Daten von zweitem Sheet verarbeiten

Daten von zweitem Sheet verarbeiten
24.10.2007 11:53:00
zweitem
Hallo,
nach einem intensiven Selbststudium (Danke an die Fern-Uni Hagen) in VBA heute Nacht bin ich leider mit meinem Problem noch nicht weiter gekommen. Jetzt habe ich aber zumindest schon mal die meisten Begrifflichkeiten und den Syntax drauf.
Ich habe eine Excel Datei mit 2 Blättern mit identischem Layout (gleiche Anzahl Spalten und Reihen ca. 2500 Zellen).
Ich möchte alle Zellen gleicher Farbe und Schriftfarbe auf Blatt2 zählen
und die Werte aus den Zellen mit den gleichen Koordinaten auf Blatt1 addieren.
Einfaches Beispiel:
Blatt2 B6 und H7 sind rot mit schwarzer Schrift
dann sollen die Werte von B6 und H7 auf Blatt1
addiert und auf Blatt2 in einer anderen Zelle ausgegeben werden.
Ich brauche das ganze um von einem Storage Subsystem die einzelnen logischen Laufwerke zu verwalten. Auf dem Worksheet "LUNs" befinden sich alle logischen Platten mit ihren Adressen und zusammengehörige Zellen (alle, die zu einer bestimmten Anwendung gehören) sind entsprechend farbig markiert.
Auf dem Worksheets "Splits" steht in der gleicher Zelle die jeweilige Kapazität dieser logischen Platte.
Hier meine Function:
'Zählt alle Zellen mit der Hintergrundfarbe und der Textfarbe

Function Farbe_Zählen_Text_farbig(Bereich As Range, HGFarbe As Byte, TxtFarbe As Byte)
Dim cc As Single
Application.Volatile
For Each Zelle In Bereich.Cells
If ((Zelle.Interior.ColorIndex = HGFarbe) And (Zelle.Font.ColorIndex = TxtFarbe)) Then cc = cc + _
1
>>> Hier würde ich gerne von dem Worksheets "Splits" den Wert der gleichen Zelle ermitteln und  _
in einer Variablen cap aufaddieren 


Ich freue mich über jeden Tip.
cheers Michael

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten von zweitem Sheet verarbeiten
24.10.2007 12:15:23
zweitem
Hallo Michael, mit
Zelle.Row bzw. Zelle.Column erhältst Du Zeile und Spalte der Zelle, die gerade dran ist. Mit Sheets("Splits").Cells(Zelle.Row,Zelle.Column) kannst Du also die korrespondierende Zelle im anderen Blatt ansprechen.
Gruß, Wolli

AW: Daten von zweitem Sheet verarbeiten
24.10.2007 12:43:00
zweitem
Hallo Wolli,
vielen Dank für deine schnelle Antwort. Anscheinend reicht meine Kenne noch nicht aus,
das richtig zum implementieren. :-(
Ich habe folgende Funktion gebaut, bekomme mit ihr aber den Fehler #Wert! zurück.
'Zählt alle Zellen der Anwendung (xyz) und kalkuliert die Gesamtkapazität

Function Calc_Cap(Bereich As Range, HGFarbe As Byte, TxtFarbe As Byte)
Dim cc, cap As Single
Application.Volatile
For Each Zelle In Bereich.Cells
If ((Zelle.Interior.ColorIndex = HGFarbe) And (Zelle.Font.ColorIndex = TxtFarbe)) Then
cc = cc + 1
cap = cap + Sheets("Splits").Cells(Zelle.Row, Zelle.Column).Value
End If
Next
Calc_Cap = cap
End Function


Ich habe es mit ".Value" und ohne versucht und auch mal cap als Variant deklariert.
Was mache ich noch falsch?
Gruß Michael

Anzeige
AW: Daten von zweitem Sheet verarbeiten
24.10.2007 12:54:00
zweitem
Hallo Michael,
das sollte es tun:

Option Explicit  ' immer zu empfehlen
Function Calc_Cap(Bereich As Range, HGFarbe As Byte, TxtFarbe As Byte)
Dim Zelle As Range
If ActiveSheet.Name  "LUNs" Then Exit Function
Application.Volatile
For Each Zelle In Bereich
With Zelle
If ((.Interior.ColorIndex = HGFarbe) And (.Font.ColorIndex = TxtFarbe)) Then _
Calc_Cap = Calc_Cap + Sheets("Splits").Cells(.Row, .Column)
End With
Next
End Function

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

AW: Daten von zweitem Sheet verarbeiten
24.10.2007 13:31:31
zweitem
Hallo Erich,
ich hoffe, daß ich mich nicht zu dumm anstelle, aber ich bekomme immer nur 0 als Wert zurück.
Ich habe meine Tabelle mal hochgeladen, vielleicht wird es dann leichter.
https://www.herber.de/bbs/user/47052.xls
Gruß
Michael

Anzeige
AW: Daten von zweitem Sheet verarbeiten
24.10.2007 13:58:00
zweitem
Hallo Erich,
ich habe es jetzt hinbekommen. Ich muß wohl noch ein paar VBA Hausaufgaben machen. Mit der obigen Funktion ist alles ok.
Danke und Gruß
Michael

AW: Daten von zweitem Sheet verarbeiten
24.10.2007 12:30:00
zweitem
Hallo Michael,
was soll dann mit der Variablen cap passieren? Ermitteln könntest du sie z. B. so:

Option Explicit  ' immer zu empfehlen
Function Farbe_Zählen_Text_farbig(Bereich As Range, HGFarbe As Byte, TxtFarbe As Byte)
Dim Zelle As Range, cc As Single, cap As Double
If ActiveSheet.Name  "LUNs" Then Exit Function
Application.Volatile
For Each Zelle In Bereich.Cells
With Zelle
If ((.Interior.ColorIndex = HGFarbe) And (.Font.ColorIndex = TxtFarbe)) Then
cc = cc + 1
cap = cap + Sheets("Splits").Cells(.Row, .Column)
End If
End With
Next
MsgBox cap
Farbe_Zählen_Text_farbig = cc
End Function

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: Daten von zweitem Sheet verarbeiten
24.10.2007 13:12:16
zweitem
Hallo Erich,
das ist ja prima, daß ich noch mehr Hilfe bekomme...
Ich möchte cap als Rückgabewert der Function einer Zelle auf dem Worksheet LUNs zuweisen.
Beispiel:
=Calc(C6:BM113;45)
Wenn ich deine Variante der Function ausführe, kommt in der MsgBox eine 0 zurück. Vielleicht lade ich mal die Arbeitsmappe hoch.
https://www.herber.de/bbs/user/47052.xls
Gruß
Michael

AW: Daten von zweitem Sheet verarbeiten
24.10.2007 13:37:00
zweitem
Hallo Michael,
versuchs mal mit =Calc(C6:BM113;45;-4105)
Dazu musst du allerdings den Parameter TxtFarbe von Byte auf Integer umstellen.
Schwarz ist Standard, alsonicht immer 1.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige