ich füge in einer Zelle per VBA ein Datum und eine vierstellige Zahl zusammen.
Aus 02.02.14 und 7100 soll 0202147100 werden.
Problem ist, dass die Nullen entfernt werden und genau das soll verhindert werden.
Weiß da jemand Rat?
Gruß Uwe
Sub Test()
Dim SensNr As String
Dim wks As Worksheet
Dim Datum As String
Dim DokNr As String
Dim ID As String
Application.DisplayAlerts = False
Worksheets("Vorlage").Copy after:=Worksheets("Vorlage")
NeueEingabe:
SensNr = InputBox("Sensornummer eingeben:", , "J02.")
If StrPtr(SensNr) = 0 Then
ActiveSheet.Delete
Exit Sub
End If
If StrPtr(SensNr) = 1 Or SensNr = "" Then MsgBox "Sensornummer fehlt!", vbCritical
If Len(SensNr) 9 Then
MsgBox "Sensornummer prüfen!", vbCritical
GoTo NeueEingabe
End If
ActiveSheet.Cells(3, 2) = SensNr
For Each wks In ThisWorkbook.Worksheets
If wks.Name = SensNr Then
MsgBox "Ein Tabellenblatt mit diesem Namen existiert schon!" & vbCrLf _
& "Sensornummer prüfen!", vbCritical
GoTo NeueEingabe
End If
Next
ActiveSheet.Name = SensNr
ActiveSheet.Tab.Color = vbGreen
Do
Datum = InputBox("Datum eingeben:", "erwarte Eingabe...", "TT.MM.JJJJ")
If StrPtr(Datum) = 0 Then
ActiveSheet.Delete
Exit Sub
End If
If StrPtr(Datum) = 1 Or Datum = "" Then MsgBox "Datum zwingend erforderlich!"
If Not IsDate(Datum) Then MsgBox "Das ist kein gültiges Datum!", vbCritical
Loop Until IsDate(Datum)
ActiveSheet.Cells(1, 2) = CStr(Datum)
Do
Nochmal:
DokNr = InputBox("Dokumentennummer eingeben:")
If StrPtr(DokNr) = 0 Then
ActiveSheet.Delete
Exit Sub
End If
If StrPtr(DokNr) = 1 Or DokNr = "" Then
MsgBox "Dokumentennummer fehlt!", vbCritical
GoTo Nochmal
End If
If Not IsNumeric(DokNr) Then
MsgBox "Es sind nur Zahlen zulässig!", vbCritical
GoTo Nochmal
End If
If Len(DokNr) 4 Then
MsgBox "Dokumentennummer muss 4-stellig sein!", vbCritical
GoTo Nochmal
End If
Loop Until IsNumeric(DokNr) And Len(DokNr) = 4
ID = Datum & DokNr
ActiveSheet.Cells(2, 2) = ID
'ActiveSheet.Cells(2, 2).NumberFormat = "@"
ActiveSheet.Cells(2, 2).Replace ".", ""
Application.DisplayAlerts = True
End Sub
Grüße Uwe
Um führende Nullen in Excel zu behalten, insbesondere bei Datumsangaben und Zahlen, kannst du folgende Schritte ausführen:
Deklaration der Variablen: Stelle sicher, dass Datum und Dokumentennummer als Strings deklariert werden. So behältst du die Formatierung.
Dim Datum As String
Dim DokNr As String
Eingabe des Datums: Verwende die InputBox für die Datumseingabe. Achte darauf, dass das Datum im Format TTMMJJJJ eingegeben wird, ohne trennende Punkte.
Datum = InputBox("Datum eingeben:", "TTMMJJJJ")
ID erstellen: Kombiniere das Datum und die Dokumentennummer zu einer ID und weise diese einer Zelle zu.
ID = Datum & DokNr
ActiveSheet.Cells(2, 2) = CStr(ID)
Führende Nullen sicherstellen: Um sicherzustellen, dass die führenden Nullen nicht entfernt werden, setze das Zellenformat auf Text.
ActiveSheet.Cells(2, 2).NumberFormat = "@"
Ersetze Punkte (falls nötig): Verwende die Replace
-Funktion, um Punkte zu entfernen, was die Nummernformatierung beeinflussen könnte.
ActiveSheet.Cells(2, 2).Replace ".", ""
Problem: Nullen bei der Datumseingabe verschwinden.
Problem: Ergebnis wird im wissenschaftlichen Format angezeigt.
NumberFormat = "@"
), bevor du den Wert in die Zelle schreibst.Eine alternative Methode, um führende Nullen zu behalten:
Text-Präfix: Setze ein Apostroph ('
) vor die Zahl. Das zwingt Excel, den Wert als Text zu interpretieren.
ActiveSheet.Cells(2, 2) = "'" & ID
Benutze Formatierung: Statt VBA kannst du auch Excel-Formatierungen verwenden, um führende Nullen anzuzeigen. Du kannst das Zellenformat auf "Benutzerdefiniert" setzen und 0000000000
eingeben, um sicherzustellen, dass eine bestimmte Anzahl von Ziffern angezeigt wird.
Hier ist ein einfaches Beispiel für das Zusammenfügen von Datum und Dokumentennummer:
Dim Datum As String
Dim DokNr As String
Dim ID As String
Datum = "02022014" ' Beispiel für Datum
DokNr = "7100" ' Beispiel für Dokumentennummer
ID = Datum & DokNr ' Ergebnis: 020220147100
ActiveSheet.Cells(2, 2) = "'" & ID ' Mit Apostroph
Option Explicit
um sicherzustellen, dass alle Variablen deklariert werden. Dies hilft, Fehler zu vermeiden.1. Wie kann ich führende Nullen bei Datumsangaben in Excel behalten?
Du kannst das Datum als String speichern und das Zellenformat auf Text setzen, um die führenden Nullen zu behalten.
2. Was passiert, wenn ich Punkte im Datum habe?
Wenn du Punkte im Datum hast, kann Excel diese als Trennzeichen für Zahlen interpretieren. Verwende die Replace
-Funktion, um diese zu entfernen, bevor der Wert in die Zelle geschrieben wird.
3. Gibt es eine Möglichkeit, mit Formeln führende Nullen zu behalten?
Ja, du kannst die Funktion TEXT()
verwenden, um Zahlen mit führenden Nullen anzuzeigen. Beispiel: =TEXT(A1, "0000")
für eine vierstellige Zahl.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen