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

Datum aus "Datum als Text" mit VBA

Forumthread: Datum aus "Datum als Text" mit VBA

Datum aus "Datum als Text" mit VBA
01.01.2025 05:48:12
Jens5
Hallo allerseits,

ein frohes neues Jahr wünsche ich Euch!
Zu meinen Stichwörtern gibt es hier viele Beiträge, die ich mir angesehen habe, ohne fündig zu werden. Daher bitte ich um Eure Hilfe.

Ich habe viele importierte Datumsangaben, die als Text ("TT.MM.JJJJ") vorliegen. Und zwar über mehrere Spalten, warum "Text in Spalten" zu aufwändig ist. Bisher habe ich den betroffenen Bereich im Tabellenblatt mit der "1" aus einer anderen Zelle multipliziert.
Jetzt würde ich diese einfache Maßnahme gerne per Makro ausführen. Oder etwas anderes Vergleichbares, aber möglichst einfach. Am liebsten ohne Schleife, quasi "in einem Rutsch" wie beim Werte-Einfügen/Multiplizieren im Tabellenblatt. Ich hab diese Nacht schon viel in Foren gesucht und ausprobiert, aber ohne Erfolg. ChatGPT hat mich über eine Stunde gekostet und konnte auch nicht helfen, meine letzte Hoffnung sind nun Menschen :-)

Zuerst habe ich gelernt, dass es gar nicht so einfach ist, eine numerische "1" ins Clipboard zu befördern, um sie dann als Wert - multiplizierend - in die Selection (wo die Datums-Strings stehen) einzufügen. Also, man kriegt schon eine "1" ins Clipboard, aber wenn man sie dann manuell im Tabellenblatt einfügen will, stehen nur Text-Einfüge-Optionen zur Verfügung (und damit keine mathematischen Operationen) und PasteSpecial schlägt ebenfalls fehl. Anscheinend kennt das Clipboard nur Strings.

Dann habe ich es mit Evaluate versucht (war ChatGPTs Idee), aber beide folgenden Varianten führen zu #WERT! in allen Zielzellen:
1.) Range(Selection.Address).Value = Evaluate("DATEVALUE(" & Selection.Address & ")")
2.) Range(Selection.Address).Value = Evaluate(Selection.Address & "*1")

Beides funktioniert aber im Tabellenblatt, wenn ich dort mit Hilfszellen arbeite (was ich aber nicht möchte), also, wenn in A1 ein solches Datum als Text steht, führen beide Formeln zum gewünschten Ergebnis (wisst Ihr selbstverständlich):
1.) =DATWERT(A1)
2.) =A1*1

Jedoch: die Evaluate-Methode funktioniert sehr gut, wenn sie auf numerische Werte angewendet wird (in Selection stehen jetzt nur Zahlen):
Range(Selection.Address).Value = Evaluate(Selection.Address & "*5")
klappt einwandfrei.
Irgendwie scheint die Kombination aus Text und Mathematik - die ja tatsächlich etwas unlogisch ist, aber im Tabellenblatt eben funktioniert - im VBA-Bereich Schwierigkeiten zu bereiten.

Meine Bitte wäre zunächst, ob mir jemand bestätigen könnte, dass es sich auf seinem/ihrem System genauso verhält (oder auch nicht). Dann, ob ich einen Denk- oder sonstigen Fehler begehe. Zuletzt vielleicht sogar eine Lösung... :-) Beispieldatei habe ich leider nicht hochgeladen bekommen (Restriktion Dateiformate). Wenn mir das jemand erklärt, hole ich es nach.

Ich danke euch! Viele Grüße
Jens
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Datum aus "Datum als Text" mit VBA
01.01.2025 09:32:34
RPP63
Moin und frohes Neues!
Zunächst:
«Ich habe viele importierte Datumsangaben, die als Text ("TT.MM.JJJJ") vorliegen.»
Das Einfachste dürfte sein, korrekt zu importieren.
Dazu gibt es Daten, aus Datei (aka Power Query).
Zum Thema:
Schreibe (programmatisch) die 1 in eine sicher nicht benutzte Zelle (warum fällt mir jetzt RPP63 ein?),
kopiere sie,
wähle .PasteSpecial (xlMultiply) für den betroffenen Bereich
und lösche RPP63 (die Zelle, nicht den User). ;-)

Das kannst Du ja mal mit dem Rekorder aufzeichnen.

Gruß Ralf
Anzeige
AW: Datum aus "Datum als Text" mit VBA
01.01.2025 16:46:19
Jens5
Danke Ralf, Dir auch nochmal persönlich ein frohes Neues!

Zu Deinen Ausführungen,
Import - Ja. Hab ich mich unklar ausgedrückt. Es handelt sich nicht um einen Import von Excel aus, sondern um einen Export als Excel-Download aus dem browsergestützten Reporting-Frontend einer Datenbank. Die monatlichen Exporte füge ich an meinen eigenen mehrjährigen Datenbestand an, den ich analysieren muss.
Dass Excel seit Jahren mit den intelligenten Tabellen, dem Datenmodell, PowerQuery, PowerPivot etc. starke Funktionalitäten anbietet, habe ich mitbekommen. Das hat auch dazu geführt, dass sich manche Kollegen auf diesem Wege von Access verabschiedet haben, was mehr und mehr aus der Mode kommt.

Das Multiplizieren mit der 1 ist ja mein bisheriger Weg - nur eben noch nicht per Makro. Die 1 steht dauerhaft mit einer Leerzelle Zwischenraum am rechten Ende der Überschriften. Wenn's nur um das Konvertieren ginge, könnte ich bis zu meinem Ruhestand damit leben (sind nur noch ein paar Jahre, wir scheinen ein Jahrgang zu sein :-). Ist ein verblüffend einfacher Weg, auf den man dennoch nicht so leicht kommt. Geht übrigens umgekehrt nicht, also man kann über Inhalte einfügen/Werte/Addieren keine leere Zeichenkette an einen Wert anhängen, um ihn damit zum String zu machen - per Formel schon.

Nenn es wohlwollend Enthusiasmus oder abwertend Verbohrtheit: es wurmt mich, wenn sich (vermeintlich) einfache Fragestellungen nicht so lösen lassen, wie ich mir das vorstelle. Während andere letzte Nacht Feiern waren, hab ich mich in dieses Problem verbissen. Und etwas einfacher wäre es schon, wenn ich einen zu konvertierenden Bereich markieren und dann auf einen Button drücken könnte. Deswegen werde ich es wohl so machen, wie du sagst (.PasteSpecial (xlMultiply)). Aber ist es nicht ärgerlich, dass man sich eine numerische 1 erst aus einer Zelle holen muss?

Viel Gerede, danke für Deine Aufmerksamkeit und Grüße
Jens
Anzeige
Uploadproblem / Datum aus "Datum als Text" mit VBA
01.01.2025 19:34:10
Jens5
Werde Deinen Vorschlag noch etwas variieren und die "1" aus dem Tabellenblatt meiner pers. Makroarbeitsmappe holen ;-)

Mit dem Hochladen komm ich nicht klar. Im Windows-Dateiauswahldialog werden ungewöhnliche Dateiformate zugelassen wie .xbl, .xsl, anagrammierte Excel-Endungen. Wenn ich meine Dateiendung aus .xlb in .xbl umbenenne, kommt jedoch "Das Format xbl ist nicht zum Upload zugelassen".
Da bitte ich nochmal um Hilfe, danke.

VG
Jens
Anzeige
AW: Uploadproblem / Datum aus "Datum als Text" mit VBA
01.01.2025 19:52:49
RPP63
Stimmt, das mit den falschen Endungen kann ich reproduzieren:
Userbild

Wähle "alle Dateien", dann klappt es auch mit dem Upload.

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige