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

Forumthread: Zahl als Text mit führender Null formatieren

Zahl als Text mit führender Null formatieren
09.04.2013 11:52:37
Jörg
Hallo,
ich habe folgendes Problem:
In einer Tabelle habe ich in Spalte A ab Zelle A4 fünf und sechtsstellige Kontonummern. Diese Tabelle wird monatlich immer wieder neu durch einen Export aus einer Anwendung erzeugt. Es handelt sich um Zahlen die als Text formatiert sind und auch Text bleiben müssen, weil aus einer anderen Tabelle, auf die ich keinen Einfluss habe, über einen SVERWEIS auf die exportierte Tabelle zugegriffen wird.
Ich brauche Hilfe bei der Erstellung des VBA-Codes, der folgendes macht:
- Ab Zelle A4 wird geprüft, ob die Länge der Kontonummer fünfstellig ist
- Ist dies der Fall, wird der Text mit einer führenden Null zurückgeschrieben.
Vielleicht ist es mit entsprechenden VBA-Kenntnissen auch möglich bzw. einfacher auf eine Schleife zu verzichten, den gesamten Kontenbereich zu markieren und auf das Text-Format '000000' zu setzen(die Konten sind in der Tabelle durchgängig aufgeführt, d. h. keine Leerzeilen).
Da ich VBA im Wesentlichen nur als Makrorekorder nutze, kann ich das Problem selber
nicht lösen. Ich habe zunächst im Forum gesucht, aber die Beiträge mit 'führenden Nullen' die ich gefunden haben, schreiben jeweils eine Zahl und keinen Text zurück. Wie bereits erwähnt, muss bei mir aber im Ergebnis eine als Text formatierte Zahl stehen. Oder sie greifen nicht auf Zellwerte zu.
Ich habe einen Ausschnitt der relevanten Tabelle hochgeladen:
https://www.herber.de/bbs/user/84798.xlsx
Herzlichen Dank für die Unterstützung.
Jörg

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Zahl als Text mit führender Null formatieren
09.04.2013 12:04:33
Ludicla
Hallo Jörg,
und warum nicht =WENN(LÄNGE(A4)kleiner 6;VERKETTEN("0";A4);A4)
Gruss Ludicla

AW: Zahl als Text mit führender Null formatieren
09.04.2013 12:15:34
Jörg
Hallo Ludicla,
vielen Dank für die rasche Reaktion.
Ich möchte das Thema über VBA lösen, weil ich damit die Möglichkeit habe, das Problem automatisiert zu lösen. Die späteren Anwender kennen sich nicht ausreichend mit Excel aus und sollen später nur eine Schaltfläche klicken.
Zudem ist die exportierte Tabelle noch in weiteren Punkten formatierungstechnisch anzupassen (konnte ich über Makrorekorder lösen).
Auf Basis einer Excelfunktion würde mich sonst auch TEXT(A4;"00000#") zum Ziel führen
Danke & Gruß
Jörg

Anzeige
dann nimm doch meinen Code. owT
09.04.2013 12:54:31
Rudi

AW: Zahl als Text mit führender Null formatieren
09.04.2013 12:12:03
Rudi
Hallo,
Sub aaa()
Dim arr, i As Long
arr = Range(Cells(4, 1), Cells(4, 1).End(xlDown))
For i = 1 To UBound(arr)
arr(i, 1) = Right("000000" & arr(i, 1), 6)
Next
With Cells(4, 1).Resize(UBound(arr))
.NumberFormat = "@"
.Value = arr
End With
End Sub

Gruß
Rudi

Anzeige
AW: Zahl als Text mit führender Null formatieren
09.04.2013 13:15:02
Jörg
Hallo Rudi,
mit deinem Code funktioniert es.
Herzlichen Dank für die rasche Unterstützung.
Jörg
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Zahl als Text mit führender Null formatieren


Schritt-für-Schritt-Anleitung

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

  2. Klicke auf Einfügen und wähle Modul, um ein neues Modul zu erstellen.

  3. Kopiere den folgenden VBA-Code in das Modul:

    Sub aaa()
       Dim arr, i As Long
       arr = Range(Cells(4, 1), Cells(4, 1).End(xlDown))
       For i = 1 To UBound(arr)
           arr(i, 1) = Right("000000" & arr(i, 1), 6)
       Next
       With Cells(4, 1).Resize(UBound(arr))
           .NumberFormat = "@"
           .Value = arr
       End With
    End Sub
  4. Schließe den VBA-Editor und gehe zurück zu Excel.

  5. Um den Code auszuführen, drücke ALT + F8, wähle aaa aus der Liste und klicke auf Ausführen.

Dieser Code prüft die Kontonummern in Spalte A ab Zelle A4 und ergänzt sie mit führenden Nullen, falls sie weniger als sechs Stellen haben. So kannst du sicherstellen, dass die Zahlen als Text formatiert bleiben.


Häufige Fehler und Lösungen

  • Fehler: "Laufzeitfehler 9: Index außerhalb des gültigen Bereichs"

    • Lösung: Stelle sicher, dass deine Daten ab Zelle A4 beginnen und dass die Spalte nicht leer ist.
  • Fehler: "Typkonflikt"

    • Lösung: Überprüfe, ob in der Spalte A nur Zahlen als Text vorhanden sind. Leere Zellen oder andere Datentypen können diesen Fehler verursachen.

Alternative Methoden

Wenn du keine VBA-Lösungen verwenden möchtest, kannst du auch die Excel-Funktion TEXT nutzen:

  1. Gehe zu Zelle B4 und gebe die folgende Formel ein:
    =TEXT(A4; "000000")
  2. Ziehe die Formel nach unten, um sie auf alle relevanten Zellen anzuwenden.

Diese Methode ist einfach, erfordert jedoch manuelles Eingreifen und gibt dir nicht die Möglichkeit, die Formatierung automatisiert durchzuführen.


Praktische Beispiele

  • Beispiel 1: Wenn in Zelle A4 die Zahl 12345 steht, wird sie durch den VBA-Code in 012345 umgewandelt.
  • Beispiel 2: Bei der Verwendung der TEXT-Funktion wird die Eingabe 567 in 000567 umgewandelt.

Diese Beispiele zeigen, wie du in Excel führende Nullen in Text umwandeln kannst. Beide Methoden helfen dir, die Kontonummern korrekt darzustellen.


Tipps für Profis

  • Automatisierung: Du kannst den VBA-Code anpassen, sodass er bei jedem Öffnen der Datei automatisch ausgeführt wird.
  • Schaltfläche erstellen: Füge eine Schaltfläche in Excel hinzu, um den VBA-Code mit einem Klick auszuführen. Gehe dazu auf Entwicklertools > Einfügen > Schaltfläche.

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass die Nullen immer vorangestellt werden? Wenn du den VBA-Code verwendest, wird dies automatisch für alle Kontonummern im definierten Bereich erledigt.

2. Was passiert, wenn ich die Daten später in eine andere Anwendung exportiere? Stelle sicher, dass die Daten als Text formatiert bleiben. Der VBA-Code stellt sicher, dass Excel die Zahlen als Text behandelt und die führenden Nullen beibehält.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige