Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1296to1300
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Wert mit VBA in Datum wandeln

Wert mit VBA in Datum wandeln
15.02.2013 11:13:12
Alex
Hallo zusammmen,
ich habe eine Exceltabelle mit vielen Datensätzen. Eine Spalte in meiner Tabelle enthält einen Wert, der eigentlich eine Zeitangabe ist, also Datum plus Uhrzeit
"04.10.2012 10:00:00"
Leider werden die Zellen von Excel nicht als Datumswert erkannt.
Jetzt habe ich schon mal herausgefunden, wie ich die ganze Spalte auf einmal in ein Datumsformat ändern kann (Spalte markieren und die Aktion "Daten - Datentools - Text in Spalten" ausführen). Das klappt auch prima.
Ich habe diese Funktion mit dem MacroRecorder aufgezeichnet und gehofft, dass dies dann auch vom Macro genauso ausgeführt wird... Aber falsch gedacht.
Über ein Macro wird der Code zwar ohne Fehler ausgeführt aber das Format der Spalte ändert sich nicht.
Muss der Code irgendwie noch verändert werden, damit das ausgeführt wird.?
Hier der aufgezeichnete Code

Columns("C:C").Select
Selection.TextToColumns Destination:=Range("C1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(1, 4), TrailingMinusNumbers:=True

Wäre super, wenn das jemand herausfindet.....
Gruß Alex

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wert mit VBA in Datum wandeln
15.02.2013 11:20:44
hary
Moin
Sollte so reichen: Columns("C:C").TextToColumns
wenn in der Zelle wirklich "04.10.2012 10:00:00" steht, also mit Gaensepfoten.
gruss hary

AW: Wert mit VBA in Datum wandeln
15.02.2013 11:27:08
Alex
Moin Harry,
funktioniert leider nicht, da der Text nicht in "Gänsepfoten" steht...
Gruß Alex

AW: Wert mit VBA in Datum wandeln
15.02.2013 11:27:19
Alex
Moin Harry,
funktioniert leider nicht, da der Text nicht in "Gänsepfoten" steht...
Gruß Alex

AW: Wert mit VBA in Datum wandeln
15.02.2013 11:41:47
hary
Hallo
Am schnellsten, sollte es so gehen.
Schreib in eine leere Zelle eine 1
Diese Kopierst du. Dann Spalte(oder Bereich markieren) und rechtsklick/einfuegen/werte/multiplizieren.
gruss hary

Anzeige
AW: Wert mit VBA in Datum wandeln
15.02.2013 12:27:22
Wilfried
Hallo!
"15.02.2013 10:00:12
Die Gänsefüßchen " bekommst du weg mit:
Makieren,Kopieren,Bearbeiten, Ersetzen, Suche nach ", Ersetzen durch nix
Gruß
Wilfried

AW: Wert mit VBA in Datum wandeln
15.02.2013 12:28:31
Wilfried
Hallo!
"15.02.2013 10:00:12"
Die Gänsefüßchen " bekommst du weg mit:
Makieren,Kopieren,Bearbeiten, Ersetzen, Suche nach ", Ersetzen durch nix
Gruß
Wilfried

AW: Wert mit VBA in Datum wandeln
15.02.2013 14:00:48
Alex
Hallo Wilfried, Hallo Hary
ich hab keine Gänsefüsschen in den Daten.
Mein Problem ist, dass ich einen Schritt, den ich per Hand ausführe, gerne durch ein Macro abarbeiten lassen würde.
Die aufgezeichneten Schritte mit Macrorecorder funktioinieren aber nicht.
Auch dein letzter Tipp mit dem Multiplizieren wird zwar im Code ohne Fehler abgeabreitet, nur das Ergebnis ist immer noch das selbe.
Ich habe mal eine Beispiel-Datei gemacht, vielleicht wird es dadurch klarer, was ich meine.
https://www.herber.de/bbs/user/83926.zip

Anzeige
AW: Wert mit VBA in Datum wandeln
15.02.2013 18:17:20
Jürgen
Hallo Alex,
es sollte mit einem Einzeiler gehen:
activesheet.usedrange.formular1c1local = activesheet.usedrange.formula
Gruß, Jürgen

...Das bezweifle ich, Jürgen! Gruß owT
15.02.2013 18:22:27
Luc:-?
:-?

Verrätst Du auch den Grund für Deine Zweifel?
16.02.2013 00:46:05
Jürgen
Hallo Luc:-?
ist das nur so ein Gefühl oder hast Du es getestet? Mit der bereitgestellten Testdatei funktioniert es - zumindest in dem betroffenen Bereich. Das Anpassen auf bestimmte Spalten ist nun auch kein Problem, z. B.
activesheet.Range("A:C").formular1c1local = activesheet.Range("A:C").formula
Es sollte auch gehen:
activesheet.Range("A:C").formulalocal = activesheet.Range("A:C").formula
Gruß, Jürgen

Anzeige
Seit wann kann man ...
16.02.2013 03:51:59
Luc:-?
FormulaR1C1Local mit Formula überschreiben, Jürgen?
Da kann doch nur Käse bei rauskommen!
Morrn, Luc :-?

Luc :-? - warum so ungläubig?
16.02.2013 12:22:48
Jürgen
Hallo Luc :-?
Solange in dem Bereich keine Formeln stehen und für den Anwendungsfall von Alex funktionieren die Einzeiler. Zugegeben, ich habe die erste der funktionierenden Lösungen gepostet, wenn Du Dich damit wohler fühlst, geht auch
activesheet.Range("A:C").formulalocal = activesheet.Range("A:C").formulalocal
oder (in der Testdatei) etwas performanter:
activesheet.usedrange.formulalocal = activesheet.usedrange.formulalocal
oder performanter und zielgenauer:
intersect(activesheet.usedrange, activesheet.range("A:C")).formulalocal = intersect(activesheet.usedrange, activesheet.range("A:C")).formulalocal
Gruß, Jürgen

Anzeige
Das wäre normal, ...
16.02.2013 13:35:56
Luc:-?
…Jürgen;
was du vorher schriebst, ließe negative Rückschlüsse auf dein Verständnis der verschiedenen Formeldarstellungsarten in VBA zu. Die wdn nämlich normalerweise alle automatisch (richtig) angelegt.
Natürlich stehen nicht nur Fmln, sondern auch skalare Werte in .Formula &Co, die dann tatsächlich gleich sein können, aber das berechtigt nicht zu schlechtem Pgmierstil!
Gruß Luc :-?

314 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige