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

Forumthread: ganze Zahl in VBA

ganze Zahl in VBA
09.07.2003 11:20:50
Max
Ich schon wieder, schlaues Forum,
Ich brauche in VBA die Möglichkeit aus einer Kommazahl die nächst größere Ganzzahlige zu machen.
z.B. 17,23 > 18
2,45 > 3
10.11 > 11
Danke für Tipps! Max
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: ganze Zahl in VBA
09.07.2003 11:31:49
Koenig W.
Hallo Max
so sollte es gehen.
Die Funktion Int rundet auf die Ganzzahl ab (auch bei negativen Werten)
+1 gibt dann die nächste Ganzzahl
Annahme Daten sind selektiert, Werte werden daneben geschrieben (sonst das Offset löschen, dann werden die Werte überschrieben).

Sub Ganzzahl()
Dim zelle As Range
For Each zelle In Selection
zelle.Offset(0, 1).Value = Int(zelle.Value) + 1
Next zelle
End Sub

Gruss

Anzeige
Aufrunden
09.07.2003 11:27:43
ChrisL
Hi Max
Option Explicit

Sub Aufrunden()
Dim Zelle As Object
For Each Zelle In Range("A1:A10")
If IsNumeric(Zelle) And Zelle <> "" Then Zelle = WorksheetFunction.RoundUp(Zelle, 0)
Next Zelle
End Sub

Gruss
Chris

;

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Ganze Zahl in VBA umwandeln


Schritt-für-Schritt-Anleitung

Um eine Kommazahl in VBA auf die nächste ganze Zahl aufzurunden, kannst Du die folgenden Schritte befolgen:

  1. Öffne den VBA-Editor in Excel (Alt + F11).

  2. Füge ein neues Modul hinzu (Rechtsklick auf "VBAProject" > Einfügen > Modul).

  3. Kopiere und füge den folgenden Code ein:

    Sub Aufrunden()
       Dim Zelle As Object
       For Each Zelle In Selection
           If IsNumeric(Zelle) And Zelle <> "" Then
               Zelle.Offset(0, 1).Value = WorksheetFunction.RoundUp(Zelle, 0)
           End If
       Next Zelle
    End Sub
  4. Markiere die Zellen, die Du aufrunden möchtest.

  5. Führe das Makro aus (F5 oder über das Menü "Run").

Diese Methode verwendet die WorksheetFunction.RoundUp, um die Kommazahlen in ganze Zahlen umzuwandeln.


Häufige Fehler und Lösungen

  • Fehler: "Typenkonflikt"

    • Lösung: Stelle sicher, dass die Zellen, die Du bearbeitest, Zahlen und keine Textwerte sind. Nutze IsNumeric, um dies zu überprüfen.
  • Fehler: "Zellen nicht ausgewählt"

    • Lösung: Achte darauf, dass Du die Zellen markierst, bevor Du das Makro ausführst.

Alternative Methoden

Eine weitere Möglichkeit, um in Excel VBA auf eine ganze Zahl zu runden, ist die Verwendung der Int-Funktion kombiniert mit einer Addition:

Sub Ganzzahl()
    Dim zelle As Range
    For Each zelle In Selection
        zelle.Offset(0, 1).Value = Int(zelle.Value) + 1
    Next zelle
End Sub

Das obige Skript rundet die Zahl ab und addiert dann 1, um die nächste ganze Zahl zu erhalten.


Praktische Beispiele

Hier sind einige Beispiele, wie Du die VBA-Funktionen nutzen kannst:

  • Aufrunden einer Liste von Zahlen in den Zellen A1 bis A10:

    • Markiere den Bereich und führe das Aufrunden-Makro aus. Die Ergebnisse werden in der benachbarten Spalte angezeigt.
  • Verwendung der Ganzzahl-Funktion:

    • Wenn Du die Funktion Ganzzahl ausführst, wird für jede Zahl in der Auswahl die nächste ganze Zahl berechnet.

Tipps für Profis

  • Nutze die Application.WorksheetFunction-Objekte, um auf Excel-Funktionen in VBA zuzugreifen.
  • Vermeide, wenn möglich, die Verwendung von fest codierten Zellbereichen. Verwende stattdessen Selection oder benannte Bereiche, um flexibler zu sein.
  • Erstelle Fehlerbehandlungsroutinen, um mögliche Laufzeitfehler zu vermeiden.

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass eine Zahl in eine ganze Zahl konvertiert wird? Du kannst die Funktion IsNumeric verwenden, um zu überprüfen, ob der Wert eine Zahl ist, bevor Du mit dem Runden beginnst.

2. Kann ich die Ergebnisse in einer anderen Arbeitsmappe speichern? Ja, Du kannst auf eine andere Arbeitsmappe zugreifen, indem Du die Arbeitsmappe referenzierst, z.B. Workbooks("NameDerArbeitsmappe.xlsx").Sheets("NameDesBlattes").Range("A1").Value.

3. Was passiert, wenn ich negative Zahlen aufrunden möchte? Die oben genannten Methoden funktionieren auch mit negativen Zahlen. Beachte jedoch, dass das Aufrunden von -2,5 zu -2 führt, da es näher an -2 liegt.

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