Microsoft Excel

Herbers Excel/VBA-Archiv

bedingte formatierung per VBA

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

  

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


  

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


  

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


  

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


  

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


  

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


  

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



  

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


 

Beiträge aus den Excel-Beispielen zum Thema "bedingte formatierung per VBA"