Excel Schriftgröße ändern als bedingte Formatierung (VBA)

RustyRichie

Cadet 4th Year
Registriert
Jan. 2012
Beiträge
87
Hallo, ich möchte gerne eine einfache Bedingung in Excel erstellen, bei der sich die Schriftgröße in einer Spalte ändert, sobald in einer anderen Spalte ein gewisser Wert steht.
Genauer gesagt, wenn in A1 der Text 'LT' steht, dann möchte ich, das der Text in Zelle K1 die Schriftgröße 10 hat. Das gleiche dann auch mit A2 und K2,... bis mindestens A20 und K20.
Ich habe hier schon eine Vorlage gefunden (Link unten), jedoch funktioniert diese bei mir mit Excel 2013 nicht und ich habe auch zu wenig Kenntnis, um die VBA abzuändern, sodass sie meinen Vorstellungen entspricht.
https://www.gutefrage.net/frage/excel-2010-schriftgroesse-durch-bedingte-formatierung-aendern

Kann mir jemand bei meinem Vorhaben unterstützen?
 
Steht ja eigentlich alles in deinem Link :-) bei mehreren Bedingungen könnte man auch ein Select Case statement bauen. Wie gut sind deine VBA Kenntnisse genau? Wenn du ein Beispiel hier einstellst, bastelt dir vielleicht jemand was schönes :-)
 
Das Ganze wuerde ich direkt in das Change-Event einbauen und auf Spalte K begrenzen ...
Nur wenn dort etwas geaendert wird, ist es notwendig/relevant.

Die If-Abfrage koennte man dann mit relativen Bezug so aufbauen:

Code:
If Cells.(Target.row, 1).value = "blubb" Then
    blubb
else
    blobb
End if
(ungetestet)

Fragen:
Warum muss die Schriftgroeße geaendert werden?
Warum kommt keine Alternative in Frage?
 
Code:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    
    If Left(Target.Address, 3) = "$A$" Then
        
        Dim Bereich, VonSpalte, BisSpalte As String
        
        VonSpalte = "A"
        BisSpalte = "K"
                
        Bereich = VonSpalte & Target.Row & ":" & BisSpalte & Target.Row
        
        If Target = "LT" Then
            Range(Bereich).Font.Size = 20
        Else
            Range(Bereich).Font.Size = 11
        End If
    End If
    
End Sub

Den Code im VBA Editor bei deinem Blatt einfügen.
 
  • Gefällt mir
Reaktionen: RustyRichie
@rocketworm Danke. Der Code funktioniert. Allerdings ändert der Code die Schriftgröße nur dann, wenn über die Tastatur in der Spalte A der Wert "LT" eingetragen wird. Nicht jedoch dann, wenn mit Copy&Paste mehrere Daten in die Excel eingefügt werden und dann eine Zelle den Wert "LT" hat. Excel gibt in diesem Fall den Laufzeitfehler 13 aus.
Ist es möglich, dass es auch dann funktioniert, wenn die Werte eingefügt werden?

Auch ändert der Code die Schriftgröße in dem Bereich von A bis K. Mein Wunsch war, dass sich lediglich in Spalte "K" die Schriftgröße ändert. Wenn ich aber in deinem Code in der Dim-Anweisung den Bereich von Spalte "K" bis "K" ändere, dann macht der Code genau das, was ich möchte (wäre da nicht der oben genannte Fehler).

Scientist schrieb:
Warum muss die Schriftgroeße geaendert werden?
Warum kommt keine Alternative in Frage?
Mit der Excel Tabelle möchte ich Text Dateien (.txt) auswerten, die immer das gleiche Muster haben. Die Text Datei füge ich mit dem Import-Assistenten in Excel ein. Die Excel wertet mir die Daten aus und sagt mir, ob alles OK ist und gibt mir dann ab Spalte K eine schöne Tabelle aus, die ich zur Fertigstellung nur noch in einem Word-Formular (Tabelle in Word) kopieren muss/brauch. Wenn in Spalte A der Wert "LT" steht, dann ist der Wert für die Ausgabe in Spalte "K" zu lang, um diesen in der vorgegebenen Word-Datei (Tabelle) einzufügen.
Was wäre deiner Meinung nach eine Alternative?
 
Warum dann nicht standardmaeßig gleich mit Schriftgroeße 10?
Oder das Formular direkt in Excel erstellen und den Zellinhalt automatisch anpassen lassen.
(In Word wird beim auto. Anpassen leider der Text auch gestreckt ...)
 
RustyRichie schrieb:
@rocketworm Danke. Der Code funktioniert. Allerdings ändert der Code die Schriftgröße nur dann, wenn über die Tastatur in der Spalte A der Wert "LT" eingetragen wird. Nicht jedoch dann, wenn mit Copy&Paste mehrere Daten in die Excel eingefügt werden und dann eine Zelle den Wert "LT" hat. Excel gibt in diesem Fall den Laufzeitfehler 13 aus.
Ist es möglich, dass es auch dann funktioniert, wenn die Werte eingefügt werden?

Schau dir mal die events aus seinem ersten link an. Da sollten eigentlich nochmal alle dabei sein, welche dazu interessant sind. Dann sollte es auch mit Copy + Paste funktionieren.

RustyRichie schrieb:
Auch ändert der Code die Schriftgröße in dem Bereich von A bis K. Mein Wunsch war, dass sich lediglich in Spalte "K" die Schriftgröße ändert. Wenn ich aber in deinem Code in der Dim-Anweisung den Bereich von Spalte "K" bis "K" ändere, dann macht der Code genau das, was ich möchte (wäre da nicht der oben genannte Fehler).
In deinem ersten Post Stand von A bis K... Aber wie du selbst erkannt hast, kann man das einfach ändern.

Scientist schrieb:
Warum dann nicht standardmaeßig gleich mit Schriftgroeße 10?
Oder das Formular direkt in Excel erstellen und den Zellinhalt automatisch anpassen lassen.
(In Word wird beim auto. Anpassen leider der Text auch gestreckt ...)
Das Frage ich mich dann allerdings auch.
 
Zurück
Oben