6.8k Aufrufe
Gefragt in Tabellenkalkulation von ekg Mitglied (303 Punkte)
Hallo

ich brauche eine Idee wie ich Zellen farbig einfärben kann.
Allerdings möchte ich wenn in einer Zelle ein kleiner Wert steht soll nur
eine kleine Anzahl Zellen farbig sein.
Wenn in einer Zelle ein großer Wert steht soll nur eine größere Anzahl
Zellen farbig sein.


Also je größer der Wert dsto mehr Zellen farbig.

Gruß Erwin

20 Antworten

0 Punkte
Beantwortet von ekg Mitglied (303 Punkte)
Hallo M.O.

diese Lösung ist perfekt genau wie ich es haben wollte.
werde das makro in meine Orginal Datei einbinden und dort weiter
testen.

Vielen Vielen Dank und einen schönen Feiertag

Gruß Erwin
0 Punkte
Beantwortet von ekg Mitglied (303 Punkte)
Hallo M.O.

beim testen ist mir aufgefallen das es gut wäre wenn alle Zeilen sich
auf einmal einfärben würden. Da in Visual Basic nicht so gut bin,
möchte ich dich bitten die Möglichkeit mit einzubauen.

Danke im Vorraus

Gruß Erwin
0 Punkte
Beantwortet von m-o Profi (22.9k Punkte)
Hallo Erwin,

hier die geänderte Datei: Download!

Und noch viel Spaß beim Probieren und noch einen schönen Rest- Feiertag :-).

Gruß

M.O.
0 Punkte
Beantwortet von ekg Mitglied (303 Punkte)
Hallo M.O.

perfekt. Eine Bitte hätte ich noch.
Da ich wie bereits geschrieben nicht so richtig fit bin in Visual Basic
wäre es schön das du mir ein paar Kommentare hinter die einzelnen
Befehlszeilen schreiben könntest. Damit ich verstehe wie das Makro
arbeitet.

Gruß Erwin
0 Punkte
Beantwortet von ekg Mitglied (303 Punkte)
Hallo M.O.
ich habe mich glaube ich etwas unklar ausgedrückt.
was ich nicht verstehe ist wie du die Farbe un die Menge der zu
färbenden Zellen bestimmst.

'hier werden die Farben und die Länge des Zeitraums in Variablen
geschrieben
Select Case spalte
Case 3
farbe = 37
laenge = 16
Case 4
farbe = 3
laenge = 14
Case 5
farbe = 6
laenge = 12
Case 6
farbe = 8
laenge = 14
Case 7
farbe = 9
laenge = 2
Case 8
farbe = 10
laenge = 2
Case 9
farbe = 26
laenge = 1
Case 10
farbe = 38
laenge = 1
Case 11
farbe = 46
laenge = 0
End Select

'neue Farben erstellen
Range(Cells(zeile, ende), Cells(zeile, ende +
laenge)).Interior.ColorIndex = farbe
ende = ende + laenge + 1
0 Punkte
Beantwortet von ekg Mitglied (303 Punkte)
Hallo M.O.

vergess die beiden letzten Fragen.

Habe alles bis auf die letzte Zeile verstanden.

'neue Farben erstellen
Range(Cells(zeile, ende), Cells(zeile, ende +
laenge)).Interior.ColorIndex = farbe
ende = ende + laenge + 1

Tschuldigung für den vielen Text.

Gruß Erwin
0 Punkte
Beantwortet von m-o Profi (22.9k Punkte)
Hallo Erwin,

zu deiner letzten Frage. Hier wird der Zeitstrahl erstellt.

Mit Range wird der Bereich definiert, der eingefärbt wird.
Da der Bereich variabel ist, wird der Bereich mit Range und Cells definiert (du kannst dir ja mal das hier anschauen: Range).
zeile = Variable für den Zeilendurchlauf - aktuelle Zeile, die bearbeitet wird
ende = Variable, die den Anfang des zu markierenden Bereichs bestimmt (habe ich "ende" genannt, da der vorherige Bereich hier endet; hätte es auch anfang nennen können :-)).
laenge = Länge des einzufärbenden Bereichs - abhängig von der Zeit
Cells(zeile, ende) = Zelle, in der der einzufärbende Bereich beginnt
Cells(zeile, ende + laenge) = Zelle, in der der einzufärbende Bereich endet
Und mit .Interior.ColorIndex = farbe wird der definierte Bereich eingefärbt.
Da ja mehrere Zeitstrahlen hintereinander dargestellt werden sollen, muss das Ende des bisher markierten Bereiches, also die Variable ende, neu berechnet werden:
Beginn des nächsten Zeitstrahls = bisheriges Ende + Länge des eben eingefärbten Bereiches + 1 (da der nächste Zeitstrahl ja eine Zelle weiter beginnen soll).
Daher also: ende = ende + laenge + 1

Ich hoffe, meine Erklärung ist nachvollziehbar :-).

Gruß

M.O.
0 Punkte
Beantwortet von ekg Mitglied (303 Punkte)
Hallo M.O.

deine Erklärung ist sehr gut zu verstehen. Danke.

Gibt es auch noch eine Möglichkeit das in den farbigen Zellen noch der
Text aus der Zelle (Spalte C-K) darüber in den Zellen auftaucht?
Siehe Beispiel Zeile 3 Variante 1 oder Variante 2 usw.

http://www.file-upload.net/download-8883620/Upload-Zeitstrahl-
neu2.xlsm.html

Gruß Erwin
0 Punkte
Beantwortet von m-o Profi (22.9k Punkte)
Hallo Erwin,

ich hoffe, ich verstehe dich richtig:

Ersetze
'neue Farben erstellen
Range(Cells(zeile, ende), Cells(zeile, ende + laenge)).Interior.ColorIndex = farbe
ende = ende + laenge + 1

durch
'neue Farben erstellen
Range(Cells(zeile, ende), Cells(zeile, ende + laenge)).Interior.ColorIndex = farbe
Cells(zeile, ende) = Cells(3, spalte)
ende = ende + laenge + 1


Gruß

M.O.
0 Punkte
Beantwortet von m-o Profi (22.9k Punkte)
Hallo,

noch etwas:

Außerdem ersetze

'ggf. alte Farben in Spalten P bis AN löschen
Range(Cells(3, 16), Cells(lzeile, 40)).Interior.ColorIndex = 0


durch

'ggf. alte Farben und Inhalte in Spalten P bis AN löschen
With Range(Cells(3, 16), Cells(lzeile, 40))
.Interior.ColorIndex = 0
.ClearContents
End With


Gruß

M.O.
...