Betrifft: Formatierung per VBA geht nicht
von: Jens
Geschrieben am: 02.02.2010 13:24:34
Hallo Leute!
Problem 1:
Ich habe einen Plan mit verschiedenen Tabellenblättern erstellt. In einem Tabellenblatt lasse ich über ein Makro bei bestimmtem Inhalt der Zelle die Hintergrundafrbe ändern.
Code:
Private Sub Worksheet_Change(ByVal Target As Range) On Error GoTo Fehlerwert With Target.Interior Select Case LCase(Target) Case "fb": .ColorIndex = 35 Case "mk": .ColorIndex = 36 Case "eks": .ColorIndex = 37 Case "eko": .ColorIndex = 42 Case "dp": .ColorIndex = 43 Case "ham": .ColorIndex = 44 Case "rds": .ColorIndex = 45 Case "log": .ColorIndex = 40 Case "vs": .ColorIndex = 50 Case "it": .ColorIndex = 46 Case "kon": .ColorIndex = 24 Case "fe": .ColorIndex = 48 Case Else: .ColorIndex = xlNone End Select End With Exit Sub Fehlerwert: End Sub
Betrifft: AW: Formatierung per VBA geht nicht
von: Ptonka
Geschrieben am: 02.02.2010 13:31:58
Hallo Jens,
zunächst einmal Dein Problem 2:
Trage bei der bedingten Formatierung z.B. in Zelle B9 folgendes ein:
Formel ist =WENN(B9<>"";WAHR)
und setze dann als Formatierung einen komppletten Rahmen.
Zu Deinem 1. Problem melde ich mich gleich noch einmal.
Gruß,
Ptonka
Betrifft: AW: Formatierung per VBA geht nicht
von: Jens
Geschrieben am: 02.02.2010 13:43:11
Hallo Ptonka!
Das ging ja schnell!
Das war es (fast) :-)
Wenn ich z.B. in Zeile 13 (B13:E13) auswähle und unter Bedingte Formatierung Formel ist =WENN(B13<>"";WAHR) eingebe, dann macht er mir um B13 immer einen Rahmen. Auch wenn ich z.B. Januar oben im Dropdown auswähle. Wähle ich einen anderen Monat bei dem Zeile 13 auch gefüllt ist macht er mir die anderen Zellen auch umrahmt.
Was ist da eventuell noch falsch?
Betrifft: AW: Formatierung per VBA geht nicht
von: Ptonka
Geschrieben am: 02.02.2010 13:49:20
Hallo Jens,
wenn ein Leerzeichen enthalten ist, dann ist die BeEdingung
=WENN(B13<>"";WAHR)
nicht erfüllt.
Ist ggf. ein Leerzeichen in der Zelle?
Falls ja, dann kannst beide Fälle abfangen
=Wenn(oder(B13<>"";B13=" ");WAHR)
Gruß,
Ptonka
Betrifft: Debugge die EventProc doch mal dort,...
von: Luc:-?
Geschrieben am: 02.02.2010 13:52:52
...Jens,
denn eigentl sieht sie sehr ordentlich aus. Dass die Zellinhalte über Fmln erzeugt wdn, sollte keine Rolle spielen, Hptsache, genau die abgefragten Inhalte wdn von den Fmln auch geliefert. Viell wird die Proz auch gar nicht aufgerufen, weil es keine Änderung (Change) in der jeweiligen Zielzelle (Target) gibt!? Oder die Ereignisreaktion (Application.EnableEvents) ist auf dem anderen PC aus irgendeinem Grund abgeschaltet (...= False).
Wenn du die richtigen Zelleigenschaften [.Borders(XlBordersIndex)...] belegst, kannst du so auch Rahmen erzeugen.
Gruß Luc :-?
Betrifft: AW: Debugge die EventProc doch mal dort,...
von: Ptonka
Geschrieben am: 02.02.2010 13:56:58
Hallo,
ich muß Luc Recht geben.
Das Ereignis kann nicht durchgeführt werden, weil in den Zellen, in denen die Formeln stehen, keine Aktualisierung stattfindet. Das kann man testen, in dem man in die Zelle klickt und die Formel noch einmal bestätigt. Dann wird die Zelle eingefärbt.
Mir fällt aber momentan keine Möglichkeit ein, diese Aktualisierung per Makro umzusetzen.
Sorry,
Ptonka
Betrifft: AW: Debugge die EventProc doch mal dort,...
von: Ptonka
Geschrieben am: 02.02.2010 14:04:14
Hallo Jens,
mit einem separaten Makro aus einem Modul könnte man natürlich die Formatierung auf das andere Tabellenblatt kopieren. Vielleicht wäre das ein Ansatz.
Gruß,
Ptonka
Betrifft: AW: Debugge die EventProc doch mal dort,...
von: Jens
Geschrieben am: 02.02.2010 14:11:20
Hallo,
ihr habt mir jedenfalls schon mal sehr geholfen. Leider stehe ich immer noch irgendwie auf dem Schlach was die Sache anbelangt, da ich in VBA nun wirklich kein Profi bin...
Irgendwie muss dass doch auch einfach gehen, oder nicht?! :-)