Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
360to364
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
360to364
360to364
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

bedingte Formatierung @Josef Ehrensberger

bedingte Formatierung @Josef Ehrensberger
12.01.2004 14:32:30
Marco
> Hallo werte Excel-Profis.
>
> Ich sitze an einer für euch sicher gar nicht erwähnungsbedürftigen Frage.
> So möchte ich mehrere bedingte Formatierungen per VBA möglichst
> ressourcenschonend lösen.
> Es sollen 3 jeweils untergeordnete Abfragen gestartet werden und denen
> entsprechend eine von 3 jeweils vordefinierten Formatierungen für die Zelle
> B11 realisiert werden.
> Hört sich sicher noch komplizierter an als es ist.
> B11 ist übrigens ein Datumsfeld.
> Wenn der Inhalt der Zelle J11 eine Zahl ist (und somit kein Text bzw.
> Sonderzeichen) so sollte B11 als Schriftfarbe rot und als Schriftart Tahoma > erhalten.
> Wenn dies jedoch nicht zutrifft müsste geprüft werden ob B11 ungleich (also
> größer oder kleiner) "01.01.1900" ist. Dann sollte eine schwarze
> Schriftfarbe und Times New Roman als Schriftart verwendet werden.
> Danach sollte geprüft werden ob B11 evtl. gleich "01.01.1900" ist. Dann
> sollte die Schriftfarbe rot sein und die Schriftart wieder Times New Roman.
> Vielen Dank im Voraus für eure Mühe und die hilfreichen Tipps!
>
> Bye bye,
> Marco.

----------------------------------
Hallo Marco,
schreib diesen Code in das Modul des Tabellenblattes.


Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [B11,J11]) Is Nothing Then Exit Sub
With [B11]
If IsNumeric([J11]) Then
.Font.Name = "Tahoma"
.Font.ColorIndex = 3
Else
If .Value <> DateValue("01.01.1900") Then
.Font.Name = "Times New Roman"
.Font.ColorIndex = 1
Else
.Font.Name = "Times New Roman"
.Font.ColorIndex = 3
End If
End If
End With
End Sub

Gruß Sepp
----------------------------
Hallo Sepp.
Leider kann ich mich erst jetzt melden.
Dein Code funktioniert in der Form bei mir nicht.
Hat sich ein Fehler eingeschlichen?
Was bedeutet eigentlich die 2. Zeile?
Damit kann ich gar nichts anfangen.
Gruß,
Marco.

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

Betreff
Datum
Anwender
Anzeige
AW: bedingte Formatierung @Josef Ehrensberger
13.01.2004 16:24:22
andre
hallo marco,
kleine änderung - schaue dir mal die elses und end ifs an:

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [B11,J11]) Is Nothing Then Exit Sub
With [B11]
If IsNumeric([J11]) Then
.Font.Name = "Tahoma"
.Font.ColorIndex = 3
End If
If .Value <> DateValue("01.01.1900") Then
.Font.Name = "Times New Roman"
.Font.ColorIndex = 1
Else
.Font.Name = "Times New Roman"
.Font.ColorIndex = 3
End If
End With
End Sub

gruss andre
Scriptanpassung
15.01.2004 19:58:21
Marco
Kann mir jemand sagen was die "intersect"-Anweisung bedeutet und abprüft?
Wie kann mir jemand dabei helfen, das Script so anpassen, dass es sich nicht nur auf Zelle B11 und J11 sondern auf die gesamte Spalte B und J bezieht?
Ich möchte nämlich die Funktionalität nicht nur für Zeile 11 sondern alle Zeilen.
Da dies sicherlich nicht ressourcenschonend und etwas rechenaufwendig ist wäre es sicherlich ideal, wenn es nur die mit Daten gefüllten Zellen überprüfen muss. Dazu bräuchte es nur abprüfen welche Zeile in Spalte B einen Wert enthält.
Vielen Dank für eure Mühe& euer Verständnis für einen VBA-Dummie.
Anzeige
AW: Scriptanpassung
15.01.2004 20:13:22
andre
hallo marco,
1. intersect prüft, ob sich bereiche schneiden. target ist der, denn du verändert hast.
2. nimm diese zeile
If Intersect(Target, Columns(2)) Is Nothing And Intersect(Target, Columns(10)) Is Nothing Then Exit Sub
gruss andre
Vielen Dank!!!
24.01.2004 14:40:28
Marco
Vielen Dank für deine Hilfe.
Ich werde es mal ausprobieren und hoffe doch, dass es so funktioniert, wie ich es mir vorgestellt habe.
Danke nochmal!
Gruß,
Marco.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige