Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA - Zellformatierung als Währung

VBA - Zellformatierung als Währung
04.01.2013 15:59:07
Dominic
Hallo,
kann mir bitte erneut jemand bei meinem Problem helfen?
Würde gerne einige Zellen / Bereiche in Excel je nach Bedingung als Währung, oder als Zahl formatieren. Mit der bedingten Formatierung funktioniert dies immer nur einmal in eine Richtung, wechselt aber nach der Änderung durch ein Drop Down Menü nicht mehr "zurück". Erst wenn ich manuell einen x-beliebigen Zellinhalt ändere springt die bedingte Formatierung zurück auf die gewünschte Formatierung. Daher versuche ich es nun mit VBA zu lösen.
Folgenden Code habe ich bereits, das funktioniert aber nicht.
If ("J5") = "Währung" Then Range("C23:O25").NumberFormat = "#,##0.00 €"
Range("C29:O29").NumberFormat = "#,##0.00 €"
Range("C35:O35").NumberFormat = "#,##0.00 €"
Range("C41:O116").NumberFormat = "#,##0.00 €"
ElseIf ("J5") = "Zahl" Then Range("C23:O25").NumberFormat = "#0"
Range("C29:O29").NumberFormat = "#0"
Range("C35:O35").NumberFormat = "#0"
Range("C41:O116").NumberFormat = "#0"
End If
End Sub
Vielen Dank im Voraus!

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA - Zellformatierung als Währung
04.01.2013 19:29:13
robert_1
Warum überprüfst du auf "Währung" /"zahl"?
Auf Zahl prüfen: if isnumeric(cell("J5"))=true then...
auf Währung überprüfen: ...elseif instr(cell("J5"), "€")=true then...

AW: VBA - Zellformatierung als Währung
07.01.2013 09:46:03
Dominic
Vielen Dank Robert, aber leider bringt mich deine Formel nicht weiter.
Ich habe ein Formularsteuerelement (Kombinationsfeld) eingefügt. Als Werte bekommt dieses 5 Werte aus einem vorher definierten Bereich zur Verfügung gestellt. Die Zell Verknüpfung liegt auf - sagen wir A1. Dort wird mir also je nach Auswahl in dem Steuerelement Werte zwischen 1-5 ausgegeben. Bei 4 dieser Werte soll in dem oben genannten Bereich alle Zellen als Währung definiert werden, bei nur Auswahl der anderen Variante in dem Formularsteuerelement soll in den gesamten Bereich jedoch nur die Formatierung "Zahl" verwendet werden. Da ich mich in VBA so gut wie gar nicht auskenne, hatte ich angenommen eine simple Überprüfung auf einen Wert hin ist einfacher, und hab daher noch eine Wenn/Dann Formel in Zelle J5 integriert, die eben so lautet:
=WENN(ODER($A$1=1;$B$5=2;$B$5=4;$B$5=5);"Währung";"Zahl")
Kann ich das damit irgendwie umsetzen? Oder ohne diesen Umweg in Zelle J5? Und direkt im VBA Code abfragen was aus dem Steuerelement in B5 z. B. ausgegeben wird?

Anzeige
AW: VBA - Zellformatierung als Währung
07.01.2013 09:57:29
Rudi
Hallo,
sicher kannst du das auch direkt im Code abfragen.
  If [A1] = 1 Or [b5] = 2 Or [b5] = 4 Or [b5] = 5 Then
Range("C23:O25").NumberFormat = "#,##0.00 €"
Range("C29:O29").NumberFormat = "#,##0.00 €"
Range("C35:O35").NumberFormat = "#,##0.00 €"
Range("C41:O116").NumberFormat = "#,##0.00 €"
Else
Range("C23:O25").NumberFormat = "#0"
Range("C29:O29").NumberFormat = "#0"
Range("C35:O35").NumberFormat = "#0"
Range("C41:O116").NumberFormat = "#0"
End If

Gruß
Rudi

Anzeige
AW: VBA - Zellformatierung als Währung
07.01.2013 13:08:53
Dominic
Hallo Rudi,
super vielen Dank! Funktioniert einwandfrei. Die Syntax bei VBA ist mir immer noch nicht so geläufig. Manchmal kann es ja doch so einfach sein! :-)
Viele Grüße
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Zellformatierung in Excel mit VBA als Währung


Schritt-für-Schritt-Anleitung

Um Zellen in Excel mithilfe von VBA als Währung zu formatieren, befolge diese Schritte:

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf „VBAProject (DeineDatei.xlsx)“ und wähle „Einfügen“ > „Modul“.

  3. Füge den folgenden Code ein:

    Sub FormatCells()
       If [A1] = 1 Or [B5] = 2 Or [B5] = 4 Or [B5] = 5 Then
           Range("C23:O25").NumberFormat = "#,##0.00 €"
           Range("C29:O29").NumberFormat = "#,##0.00 €"
           Range("C35:O35").NumberFormat = "#,##0.00 €"
           Range("C41:O116").NumberFormat = "#,##0.00 €"
       Else
           Range("C23:O25").NumberFormat = "#0"
           Range("C29:O29").NumberFormat = "#0"
           Range("C35:O35").NumberFormat = "#0"
           Range("C41:O116").NumberFormat = "#0"
       End If
    End Sub
  4. Schließe den VBA-Editor und kehre zu Excel zurück.

  5. Führe das Makro aus: Gehe zu „Entwicklertools“ > „Makros“, wähle FormatCells und klicke auf „Ausführen“.

Nun werden die Zellen in dem angegebenen Bereich entsprechend der Bedingungen formatiert.


Häufige Fehler und Lösungen

  • Excel Formatierung Währung funktioniert nicht:

    • Stelle sicher, dass die Zelle, die du formatieren möchtest, im richtigen Bereich liegt und dass die Bedingungen im VBA-Code korrekt sind.
  • Zellformat wird nicht aktualisiert:

    • Überprüfe, ob die Werte in den Zellen A1 und B5 korrekt sind und ob das Makro ausgeführt wird, wenn sich die Werte ändern.

Alternative Methoden

Falls du die Zellformatierung nicht über VBA umsetzen möchtest, kannst du auch die Bedingte Formatierung in Excel verwenden:

  1. Wähle den Zielbereich aus.
  2. Gehe zu „Start“ > „Bedingte Formatierung“ > „Neue Regel“.
  3. Wähle „Formel zur Ermittlung der zu formatierenden Zellen verwenden“ und gib eine passende Formel ein, die auf die Werte in den Zellen A1 und B5 basiert.

Praktische Beispiele

Ein einfaches Beispiel für die Verwendung der NumberFormat-Eigenschaft in VBA:

Sub FormatEuro()
    Range("A1").NumberFormat = "€ #,##0.00"
End Sub

Dieses Beispiel formatiert die Zelle A1 als Euro-Währung.


Tipps für Profis

  • Verwende vba cells numberformat, um flexibler mit Zellreferenzen umzugehen:

    Cells(1, 1).NumberFormat = "€ #,##0.00"
  • Wenn du mit mehreren Währungsformaten arbeiten möchtest, kannst du das Select Case-Statement verwenden, um die Lesbarkeit deines Codes zu verbessern.


FAQ: Häufige Fragen

1. Wie kann ich die Standardwährung in Excel ändern?
Du kannst die Standardwährung in Excel ändern, indem du in den Optionen unter „Erweitert“ die Währungseinstellungen anpasst.

2. Funktioniert dieser VBA-Code auch in älteren Excel-Versionen?
Ja, der VBA-Code sollte in den meisten Excel-Versionen funktionieren, die VBA unterstützen, einschließlich Excel 2010 und neuer. Achte jedoch darauf, die Syntax und die verwendeten Funktionen zu überprüfen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige