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

RustyRichie

Cadet 4th Year
Dabei seit
Jan. 2012
Beiträge
83
#1
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?
 

Janush

Lt. Junior Grade
Dabei seit
Mai 2008
Beiträge
413
#2
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 :-)
 
Dabei seit
Apr. 2018
Beiträge
181
#3
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?
 

rocketworm

Lt. Junior Grade
Dabei seit
Mai 2017
Beiträge
387
#4
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.
 

RustyRichie

Cadet 4th Year
Ersteller dieses Themas
Dabei seit
Jan. 2012
Beiträge
83
#5
@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).

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?
 
Dabei seit
Apr. 2018
Beiträge
181
#6
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 ...)
 

rocketworm

Lt. Junior Grade
Dabei seit
Mai 2017
Beiträge
387
#7
@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.

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.

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.
 
Top