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

VBA Bereich runden

Forumthread: VBA Bereich runden

VBA Bereich runden
29.06.2013 13:29:20
Kalli

Hallo,
ich habe noch eine Frage bzgl. der Rundung von Zahlen in einem markierten Zellenbereich.
1) Die Zahlen stehen mit zwei Nachkommastellen in einer beliebigen Spalte.
2) Die zu rundenden Zahlen werden per Maus markiert.
3) Die Zahlen innerhalb der Markierung sollen auf 1 Nachkommastelle gerundet werden (z. B. 1,55 auf 1,6 aufrunden; 1,54 auf 1,5 abrunden, usw.).
Kann mir jemand mit dem Quellcode helfen? Danke!
Gruß Kalli

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: VBA Bereich runden
29.06.2013 13:43:13
Dennis
Hi,
vielelicht probierst du mal das:
Für Profis ist diese herangehensweise vielleicht stümperhaft, aber bei mir funzt es
Sub test()
Dim x As Integer, startrow As Integer, endrow As Integer, spalte As Integer
startrow = Selection.Row
endrow = Selection.Rows.Count + Selection.Row - 1
spalte = Selection.Column
For x = startrow To endrow
Cells(x, spalte) = Round(Cells(x, spalte), 1)
Next x
End Sub

Anzeige
D.Frage ist, wie wird 1,55 real gerundet? Round...
29.06.2013 14:04:55
Luc:-?
…könnte das ggf auch auf 1,5 abrunden, da es im Ggsatz zu WshFct.Round symmetrisch arbeitet, Dennis & Kalli.
Gruß Luc :-?

AW: VBA Bereich runden
29.06.2013 13:55:04
hary
Moin Kalli
oder so.
Dim zelle As Range
For Each zelle In Selection
If IsNumeric(zelle) And zelle <> "" Then zelle = Round(zelle, 1)'wenn Zahl und nicht leer
Next

gruss hary

Anzeige
AW: VBA Bereich runden
29.06.2013 16:27:59
Kalli
Klappt! Danke!

;
Anzeige

Infobox / Tutorial

VBA Zahlenrundung in Excel


Schritt-für-Schritt-Anleitung

Um Zahlen in einem markierten Zellenbereich mit VBA zu runden, kannst du den folgenden Code verwenden. Dieser Code rundet die Werte auf eine Nachkommastelle.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.

  3. Kopiere den folgenden Code in das Modul:

    Sub RundenAufEinNachkommastelle()
        Dim zelle As Range
        For Each zelle In Selection
            If IsNumeric(zelle) And zelle <> "" Then
                zelle = Round(zelle, 1) ' Rundet auf 1 Nachkommastelle
            End If
        Next zelle
    End Sub
  4. Schließe den VBA-Editor.

  5. Markiere die Zellen, die du runden möchtest.

  6. Drücke ALT + F8, wähle RundenAufEinNachkommastelle aus und klicke auf Ausführen.


Häufige Fehler und Lösungen

  • Problem: Der Code funktioniert nicht, wenn Zellen leer sind.

    • Lösung: Der Code prüft bereits, ob die Zelle leer ist und überspringt sie.
  • Problem: Zahlen werden nicht korrekt gerundet.

    • Lösung: Stelle sicher, dass die Werte in den Zellen als Zahlen formatiert sind. Verwende die Funktion IsNumeric, um dies zu überprüfen.

Alternative Methoden

Wenn du Werte auf ganze Zahlen runden möchtest, kannst du die Int-Funktion verwenden. Hier ist ein Beispiel:

Sub RundenAufGanzeZahl()
    Dim zelle As Range
    For Each zelle In Selection
        If IsNumeric(zelle) And zelle <> "" Then
            zelle = Int(zelle)  ' Rundet ab auf die nächste ganze Zahl
        End If
    Next zelle
End Sub

Für das Aufrunden von Zahlen kannst du die Application.WorksheetFunction.Ceiling-Funktion verwenden:

Sub Aufrunden()
    Dim zelle As Range
    For Each zelle In Selection
        If IsNumeric(zelle) And zelle <> "" Then
            zelle = Application.WorksheetFunction.Ceiling(zelle, 1) ' Rundet auf die nächste ganze Zahl auf
        End If
    Next zelle
End Sub

Praktische Beispiele

Wenn du eine Liste von Preisen hast und diese auf zwei Nachkommastellen runden möchtest, kannst du den folgenden Code verwenden:

Sub RundenAufZweiNachkommastellen()
    Dim zelle As Range
    For Each zelle In Selection
        If IsNumeric(zelle) And zelle <> "" Then
            zelle = Round(zelle, 2) ' Rundet auf 2 Nachkommastellen
        End If
    Next zelle
End Sub

Verwende diese Methoden, um verschiedene Rundungsanforderungen in deinen Excel-Daten zu erfüllen.


Tipps für Profis

  • Du kannst die Application.WorksheetFunction.Round-Funktion verwenden, um die Rundung in Excel VBA noch flexibler zu gestalten.
  • Um eine benutzerfreundliche Oberfläche zu schaffen, erwäge die Verwendung von Formularen, um den Benutzer die Anzahl der Nachkommastellen wählen zu lassen.
  • Teste den Code immer in einer Kopie deiner Arbeitsmappe, bevor du ihn auf wichtige Daten anwendest.

FAQ: Häufige Fragen

1. Wie runde ich eine Zahl auf ganze Zahlen in VBA?
Verwende die Funktion Int, um auf die nächste ganze Zahl abzurunden, oder Application.WorksheetFunction.Ceiling, um aufzurunden.

2. Kann ich mehrere Zellen gleichzeitig runden?
Ja, indem du die gewünschten Zellen auswählst und das entsprechende VBA-Skript ausführst, kannst du alle markierten Zellen auf einmal bearbeiten.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige