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

Runden von Zahlen direkt in VBA

Forumthread: Runden von Zahlen direkt in VBA

Runden von Zahlen direkt in VBA
31.10.2002 08:49:28
Gernot
Hallo Leute!

Bin auf der Suche nach einem Befehl, der es mir ermöglicht eine Zahl direkt in meinem VBA-Code auf eine bestimmte Anzahl Nachkommastellen(3) zu begrenzen, bevor ich den Wert dann als Wert in eine Tabelle zurückschreibe. Ich möchte nach Möglichkeit nicht die "Runden" Funktion aus Excel in die Tabelle schreiben sondern nur Werte.

Wenn mir hier jemand eine Idee oder sogar eine Lösung hätte, wäre das echt klasse!


Vielen Dank schon mal!

Gruß
Gernot

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Runden von Zahlen direkt in VBA
31.10.2002 09:18:27
Monika Weber
Hallo Gernot

Hier ein Lösungsansatz:

Sub test()
Dim Zahl As Double
Zahl = 5.345435
Zahl = Application.WorksheetFunction.Round(Zahl, 3)
[A1] = Zahl
End Sub

Ich hoffe, dass dir das weiterhilft.
Es liebs Grüessli aus der Schweiz
Monika
http://www.jumper.ch

Anzeige
Vielen Dank!!!
31.10.2002 10:11:33
Gernot
Hallo Monika!

Das war genau das, wonach ich gesucht habe!

Vielen Dank!

Gernot

;

Forumthreads zu verwandten Themen

Anzeige
Anzeige

Infobox / Tutorial

Runden von Zahlen in VBA


Schritt-für-Schritt-Anleitung

Um Zahlen in VBA auf eine bestimmte Anzahl von Nachkommastellen zu runden, kannst du die Round-Funktion verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne den VBA-Editor in Excel (Alt + F11).
  2. Füge ein neues Modul hinzu: Rechtsklick auf „VBAProject (dein Dokument)“ > Einfügen > Modul.
  3. Schreibe den folgenden Code:
Sub RundenBeispiel()
    Dim Zahl As Double
    Zahl = 5.345435
    Zahl = Application.WorksheetFunction.Round(Zahl, 2) ' Runden auf 2 Nachkommastellen
    [A1] = Zahl ' Wert in Zelle A1 schreiben
End Sub
  1. Schließe den VBA-Editor und führe das Makro aus. Die gerundete Zahl wird in Zelle A1 angezeigt.

Häufige Fehler und Lösungen

  • Problem: Die Round-Funktion gibt unerwartete Ergebnisse zurück.

    • Lösung: Stelle sicher, dass du die richtige Anzahl an Nachkommastellen angibst. Die Funktion kann je nach Wert und Anzahl der Nachkommastellen unterschiedlich runden.
  • Problem: Ich möchte auf eine ganze Zahl runden.

    • Lösung: Verwende Application.WorksheetFunction.Round(Zahl, 0) oder Application.WorksheetFunction.Int(Zahl) für Abrunden.

Alternative Methoden

Neben der Round-Funktion gibt es auch andere Methoden, um Zahlen in VBA zu runden:

  • Aufrunden: Verwende die Application.WorksheetFunction.Ceiling(Zahl, Wert), um auf die nächsthöhere Einheit zu runden.
Zahl = Application.WorksheetFunction.Ceiling(Zahl, 1) ' Auf ganze Zahl aufrunden
  • Abrunden: Verwende Application.WorksheetFunction.Floor(Zahl, Wert), um auf die nächstniedrigere Einheit abzurunden.
Zahl = Application.WorksheetFunction.Floor(Zahl, 1) ' Auf ganze Zahl abrunden

Praktische Beispiele

Hier sind einige praktische Beispiele, wie du mit der Runden-Funktion in VBA arbeiten kannst:

  1. Runden auf zwei Nachkommastellen:

    Zahl = Application.WorksheetFunction.Round(Zahl, 2)
  2. Auf ganze Zahl aufrunden:

    Zahl = Application.WorksheetFunction.Ceiling(Zahl, 1)
  3. Nachkommastellen abschneiden:

    Zahl = Int(Zahl) ' Nachkommastellen abschneiden

Tipps für Profis

  • Kaufmännisches Runden: In der Schweiz wird häufig kaufmännisch gerundet. Dafür kannst du die Round-Funktion verwenden, achte aber darauf, dass sie in VBA abweichend von Standardmethoden funktioniert.

  • Leistung: Wenn du viele Berechnungen durchführen musst, versuche, Runden erst am Ende der Berechnungen anzuwenden, um die Leistung zu optimieren.

  • Runden auf bestimmte Werte: Du kannst auch auf bestimmte Werte runden, z.B. auf 0,5 oder 10:

Zahl = Application.WorksheetFunction.Round(Zahl / 10, 0) * 10 ' Auf Zehner runden

FAQ: Häufige Fragen

1. Wie kann ich in VBA auf eine Nachkommastelle runden? Verwende die Round-Funktion mit dem gewünschten Nachkommastellenwert, z.B. Application.WorksheetFunction.Round(Zahl, 1).

2. Funktioniert die Runden-Funktion in allen Excel-Versionen? Ja, die Round-Funktion ist in VBA für alle gängigen Excel-Versionen verfügbar. Achte darauf, dass du die richtige Syntax verwendest.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige