Herbers Excel-Forum - das Archiv

bedingte formatierung per VBA

Bild

Betrifft: bedingte formatierung per VBA
von: Tom

Geschrieben am: 07.08.2008 14:50:06

Hallo,
ich probiere mich schon eine ganze Weile an einer bedingten Formatierung.
Ich hab es mittels der in Excel eingebauten "Bedingten Formatierung" probiert, aber leider nichts gefunden.
Ich kann zwar die Zellenfarbe und Schriftart ändern, daas war ich aber nicht kann ist die Textausrichtung.
Ich würde gern alle Zellen in Spalte D soweit formatieren, dass bei Änderung der Zelle der Wert
Hauptprojekt
soll: Fett, Arial 10 (ist ja meist sowieso so), LINKSBÜNDIG, Hintergrund in .ColorIndex = 40
Teilprojekt
soll: normal, Arial 10 (ist ja meist sowieso so), RECHTSBÜNDIG, Hintergrund in .ColorIndex = 36
Ich peils einfach nicht.
Danke schonmal!
Der Tom

Bild

Betrifft: AW: bedingte formatierung per VBA
von: Daniel

Geschrieben am: 07.08.2008 15:04:39
Hi
die Bedingte Formatierung kann auch noch keine Ausrichtung beieinflussen, spätere Excelvarianten vielleicht, aber 2002 und wahrscheinlich auch 2003 nicht.
aber du kannst ja Haupt- und Teilprojekte mit dem Autofilter filtern (Benutzerdefiniert; Beginnt mit "H") und dann die Formate von Hand einstellen.
so schnell wird sich ein Teilprojekt nicht in ein Hauptprojekt umwandeln, als das hier ein Schnelles reagieren mit der Bedingten Formatierung erforderlich wäre.
btw ich würde trotzdem die Teil- und Hauptprojekt-benennungen in unterschiedliche Spalten aufteilen.
Gruß, Daniel

Bild

Betrifft: AW: bedingte formatierung per VBA
von: Tom
Geschrieben am: 07.08.2008 15:12:27
Aber mittels VBA kann ich doch einer Zelle die Formatierung - und auch links rechts zuweisen?!
Dass muss gehen...hab ich schon mal gesehen!
Der Tom

Bild

Betrifft: das geht ja auch ...
von: Matthias L

Geschrieben am: 07.08.2008 15:35:05
Hallo Tom
... aber Du hast nach bedingter Formatierung gefragt.
Mit VBA ist es kein Problem, aber Du solltest evtl. genauer erläutern, was wann wo und warum passieren soll.


In VBA gibt es diese z.B. Befehle
.Font.Bold = True
.Font.Name = "Arial"
.HorizontalAlignment = xlLeft


Gruß Matthias

Bild

Betrifft: AW: das geht ja auch ...
von: Daniel

Geschrieben am: 07.08.2008 15:52:29
Hi Tom
da muss ich Matthias recht geben.
aber auch wenn du eine VBA-Lösung schreibst, würde ich den autofilter verwenden, um unsinnige Schleifen zu vermeiden.
Gruß, Daniel

Bild

Betrifft: Erstelle Dir doch selbst eine bedingte ...
von: Backowe

Geschrieben am: 07.08.2008 15:40:16
Hi Tom,
... Formatierung. Anbei mal ein kleines Beispiel wie man sowas umsetzen kann, Code kommt in das Tabellenblatt!
VBA-Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Columns("D")) Is Nothing And Target.Count = 1 Then
  With Target
    Select Case Target
      Case 1
        .Font.Name = "Arial"
        .Font.Size = 10
        .HorizontalAlignment = xlLeft
        .Interior.ColorIndex = 40
      Case 2
        .Font.Name = "Arial"
        .Font.Size = 10
        .HorizontalAlignment = xlRight
        .Interior.ColorIndex = 36
      Case Else
        .Font.Name = "Arial"
        .Font.Size = 10
        .HorizontalAlignment = xlGeneral
        .Interior.ColorIndex = xlNone
    End Select
  End With
End If
End Sub
Code eingefügt mit Syntaxhighlighter 4.15

Gruss Jürgen

Bild

Betrifft: AW: Erstelle Dir doch selbst eine bedingte ...
von: Tom
Geschrieben am: 07.08.2008 15:55:39
Ja aber wie weis denn jetzt Case 1, dass er das nur machen soll wenn in der Zelle Hauptprojekt steht?
Der Tom

Bild

Betrifft: Case 1 heißt nur, wenn in der Zelle ..
von: Backowe

Geschrieben am: 07.08.2008 16:10:51
Hi,
... eine 1 steht, formatiert er nach der ersten Bedingung, bei 2 nach der zweiten Bedingung und wenn irgendetwas anderes dasteht als 1 oder 2 wird die Zelle auf "Standard" gesetzt.
Ich kenne Deine Bedingungen nicht, ich habe was gelesen von Haupt und Teilprojekt. Ich tippe jetzt einfach mal ins Blaue.
VBA-Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Columns("D")) Is Nothing And Target.Count = 1 Then
  With Target
    Select Case Target
      Case "Hauptprojekt"
        .Font.Name = "Arial"
        .Font.Size = 10
        .HorizontalAlignment = xlLeft
        .Interior.ColorIndex = 40
      Case "Teilprojekt"
        .Font.Name = "Arial"
        .Font.Size = 10
        .HorizontalAlignment = xlRight
        .Interior.ColorIndex = 36
      Case Else
        .Font.Name = "Arial"
        .Font.Size = 10
        .HorizontalAlignment = xlGeneral
        .Interior.ColorIndex = xlNone
    End Select
  End With
End If
End Sub
Code eingefügt mit Syntaxhighlighter 4.15

Bild

Betrifft: AW: Erstelle Dir doch selbst eine bedingte ...
von: Tom

Geschrieben am: 07.08.2008 17:06:45
So...genau so!
War ja auch zum nachdenken klar.... Aber ich werd wohl meinen Urlaub im Kopf haben....also...ich werd dann mal für eine Woche die Füße hochlegen!
Vielen Dank für die Hilfe!
Der Tom

 Bild
Excel-Beispiele zum Thema "bedingte formatierung per VBA"
Bedingter Mittelwert Jahreskalender und bedingte Formatierung
Bedingte Übergabe des Focus und Setzen der Schreibmarke im Dialog Bedingte Formatierung auslesen
Über die bedingte Formatierung den Minimalwert markieren Über bedingte Formatierung Hintergrundfarbe bei Zelleingabe ändern
Bedingte Formatierung in Abhängigkeit eines Zellkommentars Markierung von Formeln über bedingte Formatierung
Zeitabhängige Zellmarkierungen über bedingte Formatierung setzen Tabellenvergleich über die bedingte Formatierung