Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA Schriftgröße ändern

VBA Schriftgröße ändern
27.11.2014 09:55:14
Bastian
Hallo zusammen,
ich benutze folgenden Code um in meiner Arbeitsmappe die Schriftgröße bei einer bestimmten Bedingung zu ändern:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim objCell As Range
For Each objCell In Target
If Not Intersect(objCell, Range("A1:COD150")) Is Nothing Then
With objCell
Select Case .Value
Case 99 To 999
.Font.Name = "Calibri"
.Font.Size = 7
.Font.Bold = False
End Select
End With
End If
Next
End Sub

Dies funktioniert auch ganz gut. Nur ich möchte jetzt, dass diese ganze Funktion erst bei Klick auf einen Commandbutton ausgelöst wird. Also ich möchte den Code in einen Commandbutton integrieren. Leider steh ich total auf dem Schlauch wie ich das bewerkstelligen kann.
Könnt ihr mir da weiterhelfen?
Grüße

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Schriftgröße ändern
27.11.2014 10:02:07
yummi
Hallo Bastian,
Du musst den Code in ein Modul auslagern (anstatt Private Sub Work... schreibst Du function deinName
Dann legst du deinen Commandbutton an, weißt diesem ein neues Makro zu.
Inhalt
deinName
Damit rufst du dann deine function auf und es wird nur noch auf Buttonklick ausgeführt.
Gruß
yummi

Anzeige
AW: VBA Schriftgröße ändern
27.11.2014 11:49:04
Bastian
Hallo,
ich habe den Code jetzt so:
Private Sub CheckBox1_Change()
If CheckBox1.Value = True Then
Call Schr
End If
End Sub
Function Schr(ByVal Target As Range)
Dim objCell As Range
For Each objCell In Target
If Not Intersect(objCell, Range("A1:COD150")) Is Nothing Then
With objCell
Select Case .Value
Case 99 To 999
.Font.Name = "Calibri"
.Font.Size = 7
.Font.Bold = False
End Select
End With
End If
Next
End Function leider funktioniert das ganze nicht. Er sagt mir "Argument ist nicht optional"

Anzeige
AW: VBA Schriftgröße ändern
27.11.2014 12:17:15
yummi
Hallo Bastian,
wofür willst du denn das ByVal Target as Range haben, wenn du es eh nicht benutzt?
Mach mal die Zeile Function Schr(ByVal Target As Range)
so
Function Schr
Gruß
yummi

AW: VBA Schriftgröße ändern
27.11.2014 14:54:50
Klaus
Hallo yummi,
For Each objCell In Target

funktioniert dann aber nicht mehr!
Bastian, wenn der Code nicht mehr automatisch triggert muss er ja auch keine Function mehr sein. Das sollte besser funktionieren (ungetestet)

Sub Schr()
Dim objCell As Range
For Each objCell In Selection
If Not Intersect(objCell, Range("A1:COD150")) Is Nothing Then
With objCell
Select Case .Value
Case 99 To 999
.Font.Name = "Calibri"
.Font.Size = 7
.Font.Bold = False
End Select
End With
End If
Next objCell
End Sub
Grüße,
Klaus M.vdT.

Anzeige
AW: VBA Schriftgröße ändern
27.11.2014 16:53:39
Bastian
Danke euch, jetzt funktioniert es so wie ich gewollt habe :)

Danke für die Rückmeldung! owT.
27.11.2014 18:23:17
Klaus
.
;
Anzeige
Anzeige

Infobox / Tutorial

VBA Schriftgröße ändern in Excel


Schritt-für-Schritt-Anleitung

  1. Öffne den VBA-Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu:

    • Rechtsklicke auf VBAProject (DeinArbeitsblatt) und wähle Einfügen > Modul.
  3. Schreibe die Funktion:

    • Füge den folgenden Code in das Modul ein:
    Sub Schr()
       Dim objCell As Range
       For Each objCell In Selection
           If Not Intersect(objCell, Range("A1:COD150")) Is Nothing Then
               With objCell
                   Select Case .Value
                       Case 99 To 999
                           .Font.Name = "Calibri"
                           .Font.Size = 7
                           .Font.Bold = False
                   End Select
               End With
           End If
       Next objCell
    End Sub
  4. Füge einen CommandButton hinzu:

    • Gehe zurück zu Deinem Arbeitsblatt. Wähle Entwicklertools > Einfügen und ziehe einen CommandButton auf das Arbeitsblatt.
  5. Verlinke den Button mit der Funktion:

    • Rechtsklicke auf den Button und wähle Eigenschaften. Setze das OnAction-Feld auf Schr.
  6. Teste den Code:

    • Klicke auf den Button, um die Schriftgröße in den Zellen A1 bis COD150 zu ändern, wenn die Bedingungen erfüllt sind.

Häufige Fehler und Lösungen

  • Fehler: „Argument ist nicht optional“:

    • Achte darauf, dass die Funktion Schr keine Parameter hat, wenn sie durch den Button aufgerufen wird. Der Parameter ByVal Target As Range ist nicht notwendig.
  • Die Schriftgröße ändert sich nicht:

    • Stelle sicher, dass Du eine Zelle in dem Bereich A1:COD150 auswählst, bevor Du den Button klickst.
  • Schriftart nicht geändert:

    • Vergewissere Dich, dass die Zellwerte im Bereich zwischen 99 und 999 liegen, um die Calibri Schriftgröße zu aktivieren.

Alternative Methoden

  • Direktes Ändern in der Arbeitsmappe: Du kannst auch die Excel Schriftgröße ändern, indem Du die Zellen manuell auswählst und über die Menüleiste die Schriftart und Größe anpasst.

  • Verwendung von Formatvorlagen: Nutze die Formatvorlagen in Excel, um einheitliche Schriftgrößen und -arten in Deinem Arbeitsblatt festzulegen.


Praktische Beispiele

  • Beispiel für die Verwendung von CheckBox: Wenn Du eine Checkbox nutzen möchtest, um die Schriftgröße zu ändern, kannst Du den folgenden Code verwenden:

    Private Sub CheckBox1_Change()
       If CheckBox1.Value = True Then
           Call Schr
       End If
    End Sub
  • Anpassung der Excel VBA Schriftart: Um die Schriftart für einen bestimmten Bereich zu ändern, kannst Du Folgendes verwenden:

    Range("A1:COD150").Font.Name = "Arial"
    Range("A1:COD150").Font.Size = 10

Tipps für Profis

  • Verwende Option Explicit: Setze dies am Anfang Deines Moduls, um sicherzustellen, dass alle Variablen deklariert sind, was Fehler vermeidet.

  • Nutze With-Anweisungen: Verwende die With-Anweisung, um den Code klarer und effizienter zu gestalten, besonders bei mehrfachen Eigenschaften einer Zelle.

  • Dokumentiere Deinen Code: Füge Kommentare in Deinen VBA-Code ein, um die Funktionsweise zu erklären, was besonders nützlich ist, wenn Du später Änderungen vornehmen möchtest.


FAQ: Häufige Fragen

1. Kann ich die Schriftgröße in Excel VBA ändern, ohne einen Button zu verwenden?
Ja, Du kannst die Schriftgröße auch über andere Ereignisse wie Worksheet_Change oder Worksheet_SelectionChange ändern.

2. Welche Excel-Version benötige ich für VBA?
Die VBA-Funktionalität ist in den meisten modernen Excel-Versionen verfügbar, einschließlich Excel 2010, 2013, 2016, 2019 und Excel 365.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige