Microsoft Excel

Herbers Excel/VBA-Archiv

Formatierung per VBA geht nicht | Herbers Excel-Forum


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

Nun wollte ich dieselbe Formatierung auf eine anderes Tabellenblatt anwenden. Leider geht das ganze nicht (womöglich weil die Zellen die formatiert werden sollen Formeln beinhalten?) über die Bedingte Formatierung funktionert es, dort reichen mir aber die Bedingungen nicht aus.

Problem 2:
Gleiches Tabellenblatt, ähnliches Problem: Ich möchte in einer Tabelle bei der Zeilen hinzukommen, dass die Zeile einen Rahmen bekommt. Habe es schon mit der Bedingten Formatierung versucht, bin aber zu keinem Ergebnis gekommen

Ich füge die Datei als Anhang bei (Es handelt sich um das Tabellenblatt Monatsübersicht)

Vielen Dank für eure Antworten

https://www.herber.de/bbs/user/67687.xls

  

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?! :-)


Beiträge aus den Excel-Beispielen zum Thema "Formatierung per VBA geht nicht"