Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1484to1488
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
Inhaltsverzeichnis

Zeilenfarbe durch Zellenfarbe

Zeilenfarbe durch Zellenfarbe
04.04.2016 14:07:42
Alex
Hallo liebe VBA-Freunde.
Ich habe eine Farbenzuordnung in einer Zelle (B9), die auf einem anderen Tabellenblatt hinterlegt ist -soweit auch kein Problem.
Folgenden Code habe ich hierfür verwendet:
If Sheets("FF1").Cells(i, j) = a Then Sheets("Suchfunktion").Cells(9,2).Interior.ColorIndex = Sheets("FF1").Cells(i, j).Interior.ColorIndex
Die dazugehörige Zeile wird nach meinem Suchabfrage ebenfalls anzeigt.
-Bis hierher auch kein Problem-
Jetzt das Problem:
Ich würde gerne die Zeile einblenden, die die Farbe von der Zelle B9 annimmt, jedoch nur wenn sie eingeblendet ist, da Farbe und Zeile immer unterschiedlich sein können.
Kurz gesagt: Wenn Zeile eingeblendet, dann nimm die Farbe aus der Zelle B9 an!
Habt ihr da eventuell ein Code für mich? (Keine bedingte Formatierung)
Vielen Dank im Vorraus!
Alex

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Das kann man im Prinzip so anlegen, ...
04.04.2016 15:48:15
Luc:-?
…Alex:
If Not Range("A1").EntireRow.Hidden Then
Allerdings irritiert deine WunschBeschreibung:
Ich würde gerne die Zeile einblenden, die die Farbe von der Zelle B9 annimmt, jedoch nur wenn sie eingeblendet ist, da Farbe und Zeile immer unterschiedlich sein können.
Etwas, das bereits eingeblendet ist, muss man doch nicht mehr einblenden…!? ;-]
Außerdem gebe ich zu bedenken, dass die Farbe auch erhalten bleibt, wenn die Zeile wieder ausgeblendet wird*, aber dann sieht man das ja nicht mehr. Es wäre also völlig irrelevant, falls du nicht noch etwas Anderes damit bezweckst, was du uns typischer­weise nicht verraten willst. Möglicherweise bist du auf einem Irrweg und bleibst dann da auch mangels Beschreibung deines eigentlichen Problems… ;->
Und dann empfehle ich noch, .Interior.Color zu verwenden, denn ab Xl12/2007 sind die FarbIndizes mehrfach belegt (mehrere Farben haben den gleichen Index)!
* Mit BedingtFormatierung ließe sich das leicht rückgängig machen, nur hättest du dann ein Problem mit dem Auslesen der Farbe, falls du das vorhast. Man kann die BedingtFormatierung auch per VBA erzeugen, was die Übernahme einer ZellFarbe erleichtert.
Feedback nicht unerwünscht! Gruß, Luc :-?
Besser informiert mit …

Anzeige
AW: Das kann man im Prinzip so anlegen, ...
05.04.2016 07:46:04
Alex
Oh tut mir leid,ich habe mich vertippt.
Ich meine natürlich, dass die Zeile,die eingeblendet ist,die Farbe aus B9 annimmt :)!
Die Farbe bleibt nicht immer, da ich ein LÖSCH-Button eingefügt habe.
Das mit dem Interior.Color ist ein guter Tipp!
Jedoch weiß ich nicht, wie der Code dafür aussehen soll.
Hat da jemand ein Beispiel dafür, wenn die Zeile eingeblendet ist diese in der Farbe von Zelle B9 zu färben?
Liebe Grüße Alex

AW: Das kann man im Prinzip so anlegen, ...
05.04.2016 07:50:45
Alex
Im Prinzip suche ich nur einen Code der diese Aussage wiederspiegelt - Wenn Zeile eingeblendet (Möglichkeiten von Zeile 25-102), dann färbe die Zeile bis Spalte E mit der Farbe von Zelle B9.
LG
Alex

Anzeige
AW: Das kann man im Prinzip so anlegen, ...
05.04.2016 08:25:40
Alex
Am Besten gebe ich mal ein einfaches Beispiel an:
Ich bekomme durch eine Suchanfrage 3 Werte gegeben in Zelle B5,B7,B8.Diese beziehen sich von anderen Tabellenblättern, die mit einer Farbe gefärbt sind. Somit wird in dem eigentlichen Tabellenblatt(wo gesucht wird) die 3 Werte sowie die Farbe bzw Farbenzuordnung wiedergegeben.
Diese 3 Werte sind einmalig und blenden von ca 80 Möglichen Zeilen die betreffende Werte + Zusatzinformation.
Sub Worksheet_Change(ByVal Target As Range)
If Target.Count = 1 Then
If Target.Column = 2 Then
Select Case Target.Row
Case 5, 7, 8
On Error GoTo ERREXIT
Application.EnableEvents = False
Call ZeilenFiltern(Me)
End Select
End If
End If
ERREXIT:
Application.EnableEvents = True
End Sub
Sub ZeilenFiltern(wks As Worksheet)
Application.ScreenUpdating = False
With wks
.Rows.Hidden = False
With .Range(.Cells(26, 1), .Cells(Rows.Count, 1).End(xlUp)).Offset(, 1000)
.FormulaR1C1 = "=if(and(rc1=r5c2,rc2=r7c2,rc3=r8c2),0,"""")"
.EntireRow.Hidden = True
If Application.Count(.Cells) Then
.SpecialCells(xlCellTypeFormulas, xlNumbers).EntireRow.Hidden = False
End If
.ClearContents
End With
End With
End Sub
Anhand diesem Code werden nach den 3 Kriterien gesucht und die Zelle eingeblendet!
Da es aber jetzt noch eine Farbenzuordnung gibt, möchte ich dies gerne in der eingeblendeten Zelle ebenfalls hinterlegen. Die Farbenzuordnung sieht wie folgt aus:
If Sheets("Tabelle2").Cells(i, j) = a Then Sheets("Tabelle1").Cells(9, 2).Interior.Color = Sheets("Tabelle2").Cells(i, j).Interior.Color
Dieser Code sagt im Prinzip,egal wie ich die Zelle färbe, er spuckt mir die die farbe aus.(Ist auch so gewollt)
Vielleicht könnt ihr mir es an einem einfachen Beispiel erklären oder sogar am besten den Code zukommen lassen:
Beispiel mit den obrigen Codes:
Zeilen=
A26:1, B26:1, C26:1
A27:2, B27:2, C27:2
A28:3, B28:3, C28:3
Suchergebnis:
Zelle B5:1 ; B7:1 ; B8:1
Farbenzuordnung z.B. Gelb
(Wenn jetzt B5:2 ; B7:2 ; B8:2 dann z.B. grün)
Jetzt wird die Zeile 26 eingeblendet- Alles gut soweit!Jetzt will ich sagen, egal welche Zelle eingeblendet wird, färbe diese mit der Farbe von Zelle B9.
Ein Code für dieses "einfache" Beispiel wäre super!
Vorab vielen Dank!
Alex
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige