Live-Forum - Die aktuellen Beiträge
Datum
Titel
18.04.2024 18:04:29
18.04.2024 16:33:24
Anzeige
Archiv - Navigation
984to988
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
984to988
984to988
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

auf Hintergrundfarbe zugreifen

auf Hintergrundfarbe zugreifen
10.06.2008 13:17:11
Falk
Hallo Profis,
ich habe eine riesige ausführliche Tabelle mit Daten im Arbeitsblatt 1.
Um die wichtigsten Daten in einer wesentlich kleineren Tabelle im Arbeitsblatt 2 zusammenzufassen, werden auf die Daten aus Arbeitsblatt zugegriffen.
Das funktioniert nur nicht mit Farben. Es sind mehr als 3 Hintergrundfarben, die ich im Arbeitsblatt 1 eingebe, also nur mit VBA möglich.
Das Schwierige: die Zellenschritte sind nicht identisch, d.h.
im Arbeitsblatt 2 soll sich die Spalte D von jeder einzelnen Zeile (4 bis 46) umfärben lassen von der Spalte G im Arbeitsblatt 1, wo aber die Zeilenschritte unterschiedlich sind: von Zeile 8 bis 206:
Wenn ich die Zelle G8 im Arbeitsblatt 1 färbe, soll sich die Zelle D4 im Arbeitsblatt 2 automatisch mitfärben.
Wenn ich die Zelle G13 im Arbeitsblatt 1 färbe, soll sich die Zelle D5 im Arbeitsblatt 2 automatisch mitfärben.
usw.
die Zellen der Spalte G "springen" 5 Zeilen bis G178 dann
die Zellen der Spalte G "springen" 4 Zeilen bis G202 dann
die Zellen der Spalte G "springen" 2 Zeilen bis G206
So das ist erst die erste Spalte gewesen.
nun müssen noch im Arbeitsblatt 2 die Spalten E bis AI (wieder jede einzelne Zeile (4 bis 46)) auf folgende Spalten des Arbeitsblattes 1 zugreifen: J bis CX (in den selben Sprüngen wie bei Spalte G beschrieben)
d.h.
Spalte E (Arbeitsblatt 2) greift auf Spalte J (Arbeitsblatt 1) zu
Spalte F (Arbeitsblatt 2) greift auf Spalte M (Arbeitsblatt 1) zu
Spalte G (Arbeitsblatt 2) greift auf Spalte P (Arbeitsblatt 1) zu
usw.
Ich hoffe die Beschreibung ist ausführlich genug...
Gruß
Falk

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: auf Hintergrundfarbe zugreifen
10.06.2008 17:03:33
fcs
Hallo Falk,
es gibt anderer Hilfmittel um Daten in Excel unterschiedlich darzustellen.
1. Ansichtenmanager
2. Autofilter
Mit dem Autofilter kannst du bestimmte Daten-Zeilen herausfiltern. Entweder du kannst für die vorhandenen Daten geeignet Kriterien eingben oder du machst eine Hilfsspalte mit Kreuzchen (alle Zeilen, die auf Blatt 2 erscheinen sollen erhalten ein "x".
Speichere für das Tabellenblatt/die Arbeitsmappe die Ansicht mit Darstellung aller Daten.
Setze den Autofilter für die Spalte mit den "x" und blende alle Spalten aus, die nicht dargestellt werden sollen. Speichere diese Ansicht ebenfalls.
Jetzt kannst du einfach zwischen diesen Ansichten umschalten ohne denn komplizierten Algorithmus mit dem Abgleich der Farbformatierungen zwischen den beiden Tabellenblättern.
Gruß
Franz

Anzeige
AW: auf Hintergrundfarbe zugreifen
10.06.2008 20:27:30
Falk
Hallo Franz,
das ist eine sehr gute Alternative für das Darstellen.
Nur leider für meine Zwecke unpassend.
Es sind Daten, die monatlich wechseln und einen Ausdruck bedürfen.
Im 1. Arbeitsblatt ergeben das 2 Blätter im Hochformat, die ich zusammenklebe und abhefte, wobei die Daten geradeso leserlich sind (ältere Leute brauchen eine Lupe).
Deshalb habe ich das 2. Arbeitsblatt entworfen, wobei eben die wichtigsten Daten auf einer Querseite wesentlich besser zu lesen sind.
Beim Filtern der Zeilen habe ich immer noch unnötige Spalten, die noch die Größe des Druckens beeinflussen.
Gruß
Falk

Anzeige
AW: auf Hintergrundfarbe zugreifen
10.06.2008 20:40:11
Falk
Hallo Profis,
Diese Tipps wurden mir gegeben:
Direkte Zellbezüge in der Form Range("G8") lassen sich nicht sinnvoll in
Schleifen einbinden. Verwenden Sie stattdessen Cells(iRow, iCol), wobei
"iRow" der Zeilen- und "iCol" der Spaltenzähler ist.
Eine Überführung der Farbnummer in eine Variable ist nicht nötig, einfacher
ist:
Cells(iRow, iCol).Interior.ColorIndex = Cells(iRow,
iCol+5).Interior.ColorIndex
Aber als absoluter Nichtkenner, der gerademal die Excel-Online-Schulung für Schleifen, halbwegs verstanden hat, bin ich absolut überfordert.
Und die tollen Tipps erscheinen mir logisch (was ich so bisher gelesen habe), aber anwenden kann ich sie leider nicht.
Gruß
Falk

Anzeige
AW: auf Hintergrundfarbe zugreifen
10.06.2008 21:51:00
fcs
Hallo Falk,
Ich halte nicht sehr viel davon, die Farben im Blatt2 "online" mit jeder Änderung im Blatt1 zu aktualisieren. Es reicht aus das Blatt2 zu aktualisieren, wenn man es aktiviert.
Ich hab mal basierend auf deinen Angaben ein Makro erstellt, dass die Farben der Zellen in Blatt2 entsprechend den Farben in Blatt1 anpasst.
Dieses Makro fügst du am besten in ein allgemeines Modul ein.
Für jede weitere Spalte im Blatt2 die Farben aus Blatt1 übernehmen soll muss du eine weitere Case-Zeile einfügen.
Zusätztlich muss du im VBA-Editor unter dem Blatt2 das Makro einfügen, das automatisch die Farbaktualisiereung startet.
Gruß
Franz

Sub FarbenAbgleichen()
'Aktualisieren der Zellfarben im Blatt2 entsprechend den aktuellen Farben im Blatt 1
Dim WksAlles As Worksheet, wksAuszug As Worksheet
Dim ZeileAlles As Long, ZeileAuszug As Long
Dim SpalteAlles As Long, SpalteAuszug As Long
Dim DeltaZeile As Long
Dim bolFarbeKopieren As Boolean
Set WksAlles = Worksheets("Tab1")      'Tabellenname anpassen!!!
Set wksAuszug = Worksheets("Tab2")     'Tabellenname anpassen!!!
ZeileAlles = 8 'Startzeile im Blatt mit allen Daten
ZeileAuszug = 4 'Startzeile im Blatt mit Daten-Auszug
Do Until ZeileAlles > 206
wksAuszug.Cells(ZeileAuszug, 1).Value = WksAlles.Cells(ZeileAlles, 1).Value 'Testzeile
'Zeilenschrittweite abhängig vom Zeilenwert festlegen
Select Case ZeileAlles
Case Is  Spalte D
Case 10: SpalteAuszug = 5 'Spalte J --> Spalte E
Case 13: SpalteAuszug = 6 'Spalte M --> Spalte F
Case 16: SpalteAuszug = 7 'Spalte P --> Spalte G
'für jede weitere Spaltenpaarung eine zusätzliche Case-Zeile einfügen
Case Else
bolFarbeKopieren = False
End Select
'Farbe von Blatt Alles nach Blatt mit Datenauszug übertragen
If bolFarbeKopieren = True Then
wksAuszug.Cells(ZeileAuszug, SpalteAuszug).Interior.ColorIndex = _
WksAlles.Cells(ZeileAlles, SpalteAlles).Interior.ColorIndex
End If
Next
ZeileAlles = ZeileAlles + DeltaZeile
ZeileAuszug = ZeileAuszug + 1
Loop
End Sub
'Im VBA-Editor unter Blatt2 einfügen
Private Sub Worksheet_Activate()
Call FarbenAbgleichen
End Sub


Anzeige
AW: Prozedur zu groß?
11.06.2008 00:07:00
Falk
Hi Franz,
besten Dank erst Mal für Deine Mühe.
Es funktioniert leider nur bedingt.
Die Spalte 13 in Blatt 2 wird noch gefärbt, danach nicht mehr.
Mein erster Lösungsversuch bestand darin:
Option Explicit

Private Sub Worksheet_activate()
Dim Zellfarbe
Zellfarbe = Worksheets("Tab1").Range("G8").Interior.ColorIndex
Worksheets("Tab2").Range("D4").Interior.ColorIndex = Zellfarbe
Zellfarbe = Worksheets("Tab1").Range("G13").Interior.ColorIndex
Worksheets("Tab2").Range("D5").Interior.ColorIndex = Zellfarbe         'usw.
End Sub


Irgendwann kam die Meldung Prozedur zu groß. Ich komme hiermit auch bis Spalte 13, aber nur zur Zeile 30.
Ist das nun ein hofnungsloser Fall?
Gruß
Falk

Anzeige
AW: Prozedur zu groß?
11.06.2008 08:18:00
fcs
Hallo Falk,
die Meldung "Prozedur zu groß" klingt irgendwie merkwürdig. Ich kannte diese bisher nur daher, dass die Code-Länge für die Prozeduren in einem Modul das Limit übersteigt. Diese Meldung wird aber schon beim kompilieren/speichern angezeigt. Wahrend der Code-Ausführung ist diese Meldung eher ungewöhnlich.
Falls du in deinem Code tatsächlich versucht hast jede Zelle einzeln umzuformatieren, dann könnte die max. Prozedur-Länge tatsächlich erreicht worden sein.
Ich tippe eher auf ein anderes Problem: In der Datei sind zu viele Zellen mit individuellen Faben formatiert; Excel hat auch ein Limit für die Anzahl der in einer Datei verwendeten Zellformate, zumindest in den älteren Excel-Versionen. Die Tatsache, das beide Prozeduren an einer ähnlichen Position in der Tabelle aussteigen spricht dafür. Du müßtest dich allso evtl. von einigen der "Format-Spielereien" verabschieden.
Genaueres kann ich nicht sagen; ich verfüge auch nicht über Excel 2007, um für dich irgendetwas zu testen.
Gruß
Franz
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige