Zellen mit Datum auf Text abändern
#1
Hallo zusammen,

ich habe eine Tabelle mit vielen Datums Spalten die einen Datums Zellen Format haben. 
Da ich diese Daten nach XML exportieren möchte, wird mir das Datum auf eine Zahl umgewandelt. Oder wenn ich die Spalten markiere und das Format auf Text ändere, wird aus dem Datum eine Zahl (Beispiel: aus 21.04.2017 wird 42846). 
Ich könnte das Datum zwischenspeichern "in Notepad > Formatierung auf Text abändern > Datum zurückkopieren" aber ich bin auf der Suche nach einer schnelleren Lösung vor allem da ich wie gesagt sehr viele Spalten und Zeilen habe.

Hat jemand eine Idee oder Vorschlag wie ich die Zellen auf Text formatiere ohne das Datum zu verlieren? 
Ich bin keine Excel Profi oder Checker, daher bitte möglichst ausführlich den Lösungsvorschlag beschreiben.
Vielen herzlichen Dank für jede Hilfe!
Top
#2
Hallöchen,

eventuell einfach mit einer Formel in einer Spalte daneben.
Arbeitsblatt mit dem Namen 'Tabelle1'
 AB
102.06.201702.06.17

ZelleFormel
B1=TEXT(A1;"tt.MM.jj")
Diese Tabelle wurde mit Tab2Html (v2.5.0) erstellt. ©Gerd alias Bamberg

Du kannst dann die Spalte daneben kopieren und mit Inhalte Einfügen - Werte (Ist auch die 123 beim Einfügen) mit den Werten überschreiben und dann die "Hilfsspalte" löschen.

So, mein Wecker klingelt gerade - ich muss jetzt aufstehen Smile
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top
#3
Moin,
kannst, darfst, willst du Power Query, -> http://www.excel-ist-sexy.de/power-query-das-add-in/ verwenden?
Damit geht das ratz fatz ...  :05:
Beste Grüße
  Günther

Excel-ist-sexy.de
  …schau doch mal rein!
Der Sicherheit meiner Daten wegen lade ich keine *.xlsm bzw. *.xlsb- Files mehr herunter! -> So geht's ohne!
Top
#4
Hallo,

unten eine simple VBA Lösung.


Code:
Sub datum_als_Text()
Dim i As Long
Dim ati
ati = Selection.Value
For i = LBound(ati) To UBound(ati)
 ati(i, 1) = CStr(ati(i, 1))
Next i
Selection = ati
End Sub


Einfach den Bereich markieren und den Code ausführen.
Ob es beim Export so reicht, musst Du testen.
Gruß Atilla
Top
#5
Servus, 

@schauan das ist leider zu umständlich.
Ich bekomme immer wieder solch eine Liste und müsste dann jedes Mal die vielen Spalten um eine weitere erweitern, usw.
 
@GMG-CC ich bekomme bereits die Excel Tabelle mit dem Datumsformat so überreicht. Wüste jetzt nicht wie mir das Power Query dabei helfen soll das Format der Zellen von Datum auf Text ohne Inhalt zu verändern.

@atilla deine Lösung habe ich schon Mal in anderen Foren gesehen aber leider verstehe ich es nicht. Hab noch nie was mit VBA Lösung gearbeitet. Kannst du mir da Hilfestellung geben wie ich dein Code eingeben und ausführen soll?

Ich danke allen sehr für die Antworten!!!!
Top
#6
Hallo,

Mit der Tastenkombi Alt + F11 kommst Du in die VBA Umgebung.
Links im Fenster siehst Du Dein Projekt (Bezeichnung der Datei und enthaltene Tabellen). Ist wie der Explorer aufgebaut.

Dort muss ein Modul eingefügt werden. Rechtsklick auf eine frei Fläche und Modul einfügen. Alternativ über die Symbolleiste Einfügen -> Modul
Nach dem Einfügen des Moduls rechts in das große Fenster den Code aus meinem Beitrag kopieren und einfügen.
Die VBA Umgebung verlassen mit Klick auf das Schließkreuz. Die Datei, wenn sie mit dem Makro wieder verwendet werden soll, mit der Endung .xlsb oder .xlsm speichern.

Das Makro steht Dir in der Gruppe Entwicklertools  zur Verfügung. Dort das Makro auswählen. Entwicklertools -> Makros - datum_als_Text auwählen.
Rechts im Fenster Optionen wählen und dort eine Tastenkombi einrichten.

Noch was, wenn Das Ende des Code mit Selection.Copy ergänzt wird, kannst Du nach Codeausführung den Bereich ohne weiteres Zutun mit Strg + V an einen anderen Ort einfügen. so sehe der Code erweitert aus:

Code:
Sub datum_als_Text()
Dim i As Long
Dim ati
ati = Selection.Value
For i = LBound(ati) To UBound(ati)
 ati(i, 1) = CStr(ati(i, 1))
Next i
Selection = ati
Selection.Copy
End Sub
Der bisherige Code verarbeitet nur eine Saplte.
Folgender verarbeitet auch mehrere Spalten:

Code:
Sub datum_als_Text()
Dim i As Long, j As Long
Dim ati
ati = Selection.Value
For i = LBound(ati) To UBound(ati)
 For j = LBound(ati, 2) To UBound(ati, 2)
   ati(i, j) = CStr(ati(i, j))
 Next j
Next i
Selection = ati
Selection.Copy
End Sub
Gruß Atilla
Top
#7
Moin.
Das hatte ich auch so verstanden; du bekommst die Daten als echtes kalendarische Daten und willst daraus eine String/Textwert machen.
Dazu änderst du ganz einfach den Datentyp der Spalte, speichern und das war's auch schon.
Und wenn die neuen Files den gleichen Namen haben, dann reicht auch ein Klick auf Aktualisieren, um die neuen Werte zu sehen bzw. weiter zu verarbeiten.
Wenn du einige Datenzeilen als Muster-File hier einstellst "liefere" ich das Ergebnis.
Beste Grüße
  Günther

Excel-ist-sexy.de
  …schau doch mal rein!
Der Sicherheit meiner Daten wegen lade ich keine *.xlsm bzw. *.xlsb- Files mehr herunter! -> So geht's ohne!
Top
#8
Vielen Dank Atilla und Günter.

Atilla ich bekomme einen Laufzeitfehler 13. (Datei im Anhang)
Günter vielen Dank für die weitere Unterstützung.

Die Beispiel Datei ist im Anhang (Aus Datenschutzgründen leider nicht die Originale ;))


Angehängte Dateien
.xlsm   Mappe1.xlsm (Größe: 13,77 KB / Downloads: 3)
Top
#9
Hallo Sinalko,

hast Du den Edge Browser, dann lies bitte hier: http://www.clever-excel-forum.de/Thread-...light=edge

In der eingestellten Datei fehlte zwar ein End Sub, das ist sicher ein Cpoy Paste Missgeschick gewesen, aber sonst funktioniert der Code.
Gruß Atilla
Top
#10
So, ich musste erst einmal auf einem isolierten Rechner die Datei zu einer *.xlsx machen, also VBA eliminieren ...
Aber jetzt ...

Die einfachste Methode: Text_in_Spalten. Mit genau dieser Methode geht es für einmalige Aktionen gewiss am leichtesten. Du musst im 3. Schritt nur "Text" angeben.
Power Query ist dann von Vorteil, wenn solch eine Aktion öfter einmal durchgeführt werden muss.
Power Query (1) ist für ältere Versionen des Power Query gedacht. Etwas umständlich aber es führt zum Ziel.
Power Query (2) .. (4) sind eigentlich nur für interessierte User gedacht, die ein wenig tiefer in die Materie einsteigen wollen. Die Wege sind unterschiedlich, das Ziel ist gleich.

Auf jeden Fall sind das alle von mir erstellten Blätter reiner Text. Wenn es immer noch Probleme mit xml gibt, dann versuche das Text-Datum mit einem Leerzeichen zu ergänzen. Das geht auch ganz gut mit Power Query.


Angehängte Dateien
.xlsx   Günthers Mappe1.xlsx (Größe: 35,23 KB / Downloads: 2)
Beste Grüße
  Günther

Excel-ist-sexy.de
  …schau doch mal rein!
Der Sicherheit meiner Daten wegen lade ich keine *.xlsm bzw. *.xlsb- Files mehr herunter! -> So geht's ohne!
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste