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

Forumthread: Text in Zahl mittels VBA umwandeln

Text in Zahl mittels VBA umwandeln
08.08.2006 10:53:46
Josef
Hallo!
Ich habe ich mehreren Spalten Beträge stehen, welche als Text mit vier Kommastellen formatiert sind.
Ich möchte diese Spalten jetzt mittels VBA in eine Zahl mit 2 Kommastellen umwandeln.
Wie würde hier bitte eine VBA Lösung aussehen?
Danke
Josef
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Text in Zahl mittels VBA umwandeln
08.08.2006 10:58:24
Hans
Hallo Josef,
wie folgt:

Sub Umwandeln()
Dim rng As Range
For Each rng In ActiveSheet.UsedRange.Cells
If rng.Value Like "*,####" Then
rng.NumberFormat = "0.00"
rng.Value = WorksheetFunction.Round(rng.Value, 2)
End If
Next rng
End Sub

gruss hans
Anzeige
AW: Text in Zahl mittels VBA umwandeln
08.08.2006 11:25:55
Josef
Hallo Hans!
Danke für Deine Antwort.
Nachdem ich die Zellen markiert hatte und das Makro startete, erhielt ich die Meldung Typen unverträglich un die Zeile
If rng.Value Like "*,####" Then
wurde geld markiert.
Danke
Josef
AW: Text in Zahl mittels VBA umwandeln
08.08.2006 11:34:52
Hans
Hallo Josef,
die Zellen müssen nicht markiert werden. Ich vermute mal, dass sich irgendwo ein Fehlerwert befindet, det nicht bearbeitet werden konnte. Tausche die Zeile:
If rng.Value Like "*,####" Then
bitte aus durch:
If rng.Text Like "*,####" Then
gruss hans
Anzeige
AW: Text in Zahl mittels VBA umwandeln
08.08.2006 12:03:24
Josef
Hallo!
Besten Dank. Klappt perfekt.
Danke nochmals für Deine Hilfe und schönen Tag noch
Josef
AW: Text in Zahl mittels VBA umwandeln
08.08.2006 11:05:21
Sylvio
Hallo Josef,
kleines Beispiel in A1 und A2 stehen die Zahlen als Text formatiert:

Sub test()
Dim a As String
Dim b As String
a = ThisWorkbook.Sheets(1).Cells(1, 1).Text
b = ThisWorkbook.Sheets(1).Cells(2, 1).Text
c = Round(CDbl(a), 2)
d = Round(CDbl(b), 2)
End Sub

Gruß Sylvio
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Text in Zahl mittels VBA umwandeln


Schritt-für-Schritt-Anleitung

Um Text in eine Zahl mittels VBA umzuwandeln, kannst du folgendes Makro verwenden. Dieses Beispiel geht davon aus, dass die Daten in der aktiven Tabelle stehen und sie als Text mit vier Dezimalstellen formatiert sind. Das Ziel ist, diese in Zahlen mit zwei Dezimalstellen umzuwandeln.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Klicke im Menü auf Einfügen und wähle Modul.
  3. Kopiere den folgenden Code in das Modul:
Sub Umwandeln()
    Dim rng As Range
    For Each rng In ActiveSheet.UsedRange.Cells
        If rng.Text Like "*,####" Then
            rng.NumberFormat = "0.00"
            rng.Value = WorksheetFunction.Round(CDbl(rng.Value), 2)
        End If
    Next rng
End Sub
  1. Schließe den VBA-Editor.
  2. Kehre zu Excel zurück und führe das Makro aus, indem du ALT + F8 drückst, das Makro auswählst und auf Ausführen klickst.

Häufige Fehler und Lösungen

  • Fehlermeldung: Typen unverträglich
    Diese Meldung tritt auf, wenn sich Fehlerwerte in den Zellen befinden. Um dies zu beheben, ändere die Zeile im Code von If rng.Value Like "*,####" Then zu If rng.Text Like "*,####" Then.

  • Das Makro funktioniert nicht
    Stelle sicher, dass die Zellen, die du umwandeln möchtest, nicht markiert sind, da das Makro automatisch alle Zellen im verwendeten Bereich bearbeitet.


Alternative Methoden

Wenn du kein VBA verwenden möchtest, kannst du auch Excel-Formeln nutzen, um Text in Zahlen umzuwandeln. Eine einfache Methode wäre, die Funktion WERT() zu verwenden.

  1. Füge in eine leere Zelle die Formel ein:
    =WERT(A1)
  2. Ziehe die Formel nach unten, um sie auf andere Zellen anzuwenden.

Praktische Beispiele

Hier ein einfaches Beispiel, wie du mit VBA einen Text in eine Zahl umwandeln kannst:

Sub BeispielUmwandeln()
    Dim a As String
    a = ThisWorkbook.Sheets(1).Cells(1, 1).Text ' Zelle A1
    Dim b As Double
    b = Round(CDbl(a), 2) ' Umwandlung in Zahl mit 2 Dezimalstellen
End Sub

In diesem Beispiel wird der Text aus Zelle A1 genommen und in eine Zahl umgewandelt.


Tipps für Profis

  • Nutze die Funktion CDbl(), um sicherzustellen, dass der Text korrekt in eine Zahl umgewandelt wird. Dies kann nützlich sein, wenn du mit Kommazahlen arbeitest.
  • Achte darauf, dass die Formatierung der Zellen korrekt eingestellt ist. Nach der Umwandlung solltest du immer das Format auf "Zahl" setzen.

FAQ: Häufige Fragen

1. Wie kann ich mehrere Spalten gleichzeitig umwandeln?
Du kannst das Makro so anpassen, dass es durch mehrere Spalten iteriert, indem du den Bereich in der Schleife anpasst.

2. Was tun, wenn ich eine Fehlermeldung bekomme?
Überprüfe die Zellen auf Fehlerwerte oder nicht konvertierbare Texte. Ändere den Code, um If rng.Text Like "*,####" Then zu verwenden.

3. Kann ich das Makro für eine bestimmte Spalte anpassen?
Ja, du kannst den Bereich in der Schleife ändern, um nur die gewünschte Spalte zu bearbeiten, z.B. For Each rng In ActiveSheet.Columns("A").Cells.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige