Excel Makro Schriftart ändern

Hallo,

ich möchte, dass im Bereich des Arbeitsplattes B3:AI159, bei Eingabe des Buchstaben „n“ immer die Schriftart auf wingdings geändert wird (automatisch).
Wie muss hierfür das Makro aussehen?
Viele Grüße

Hallo pauli-hasi,

wenn du unter worksheet folgenden Code eingibst, dann wird nachdem du ein „n“ oder „N“ eingegeben hast, die Schriftart für diese Zelle in Wingdings geändert:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
x = ActiveCell.Row
y = ActiveCell.Column
If y = 2 And x > 2 And x

Hallo pauli-hasi,

nachfolgenden Code im Scriptmodus (Alt+F11) in Tabelle1(Tabelle1) eingeben.
Wird nun in das Tabellenblatt(nicht auf Scriptebene) in Zelle-B3 ein ‚n‘ eingegeben, wird die Schrift von ‚Arial‘ in ‚Wingdings‘ umgewandelt.
Ein bisschen musst due auch noch selbst tun…

’ Ändert die Schriftart auf Wingdings bei Eingabe
’ des Buchstaben „n“ in Zelle-B3
Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Target.Address
Case „$B$3“
Cells(3, 2).Select
With Selection.Font
.Name = „Wingdings“
.Size = 10
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With
End Select
End Sub

mfg
Softoldi

Grüezi Pauli-hasi

ich möchte, dass im Bereich des Arbeitsplattes B3:AI159, bei
Eingabe des Buchstaben „n“ immer die Schriftart auf wingdings
geändert wird (automatisch).
Wie muss hierfür das Makro aussehen?

Kopiere die folgenden Zeilen ins Codemodul des Tabellenblattes, dann müsste das bereits passen:

Private Sub Worksheet\_Change(ByVal Target As Range)
Dim rngBereich As Range
Dim rngZelle As Range

 Set rngBereich = Intersect(Target, Range("B3:Ai159"))

 If Not rngBereich Is Nothing Then
 For Each rngZelle In rngBereich
 If rngZelle.Value = "n" Then
 rngZelle.Font.Name = "Wingdings"
 End If
 Next rngZelle
 End If
End Sub

Was soll denn passieren wenn Du anschliessend einen anderen Text statt ‚n‘ in eine dieser Zellen schreibst?

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Hallo pauli-hasi

das entsprechende Ereignis-Makro schaut wie folgt aus.

Gruß
Franz

'Code im Tabellenmodul des Tabellenblatts, in dem die "n" eingetragen werden
Private Sub Worksheet\_Change(ByVal Target As Range)
 Dim Zelle As Range
 If Not Intersect(Range("B3:AI159"), Target) Is Nothing Then
 For Each Zelle In Intersect(Range("B3:AI159"), Target)
 Select Case Zelle.Value
 Case "n"
 Zelle.Font.Name = "Wingdings"
 Case Else
 Zelle.Font.Name = "Arial"
 End Select
 Next Zelle
 End If
End Sub

ich kann dzt. leider nicht helfen

schließe mich franz an und würde schreiben:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Zelle As Range
If Not Intersect(Range(„B3:AI159“), Target) Is Nothing Then
For Each Zelle In Intersect(Range(„B3:AI159“), Target)
With Zelle
If .Value = „n“ Then .Font.Name = „Wingdings“ Else .Font.Name = „Arial“
End With
Next Zelle
End If
End Sub

Hallo pauli-hasi,

da habe ich nicht ausreichend Kenntnisse. Da kann ich nicht helfen.

Gruß Hugo

Hallo Thomas,

großartig, vielen Dank für Dein Makro - es funktioniert bestens!!
Wenn kein „n“ eingegeben wird, soll auch nichts passieren und genau so läuft es ja jetzt auch.

Ich bin begeistert!
Vielen Dank für die schnelle Hilfe.
Liebe Grüße
Daniela

Hallo Franz,
Danke für die schnell Info.
Habe mich zwar jetzt für die Version von Thomas entschieden - aber nur, weil ich die aufgrund bereits vorhandener Makros zumindest ansatzweise verstehe…
Bin leider Makro-Anfänger.
Liebe Grüße
Daniela

Grüezi Daniela

großartig, vielen Dank für Dein Makro - es funktioniert
bestens!!
Wenn kein „n“ eingegeben wird, soll auch nichts passieren und
genau so läuft es ja jetzt auch.

Ich bin begeistert!

Danke für das nette Feedback :smile:

Mein Gedanke ging dahin, dass wenn das einmal eingetragene ‚n‘ gelöscht, resp. durch etwas anderes ersetzt wird. Dann ist die Zelle ja noch immer mit WingDings formatiert.

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Hallo,
soll dann auf Wingdings geändert werden, wenn nur, bzw. allein der Buchstabe ‚n‘ in einer Zelle steht, oder auch wenn der Buchstabe ‚n‘ mitten im Wort steht?
Gruß,
Ptonka

hm, meine Erfahrung ist, dass wenn er die ganze Zeit alles durcharbeiten muss, kann das recht rechenintensiv werden. Da gibt es aber sicher andere, die dir besser helfen können.