Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1620to1624
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

Datumsformat per Makro ändern

Datumsformat per Makro ändern
30.04.2018 15:35:22
Jenny
Hallo an euch alle,
habe bislang eine Formellösung, möchte aber aufgrund der Umständlichkeit bei den vielen Datensätzen nach einer Makrolösung fragen.
Ich möchte einen Text nach C2 kopieren.
Das Makro soll automatisch diesen Text durch das ersetzen, was die Formel
WENN(ISTZAHL(C2);C2;DATUM(RECHTS(C2;4)+0;SUCHEN(TEIL(C2;SUCHEN(" ";C2)+1;3); "xxjanfebmaraprmaijunjulaugsepoctnovdec")/3;LINKS(C2;SUCHEN(" ";C2)-1)))
ausgeben würde.
Das Ganze soll natürlich auch in allen anderen Zellen der Spalte C funktionieren.
Danke für eure Hilfe
Jenny

17
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datumsformat per Makro ändern
30.04.2018 15:49:08
onur
Es wäre für alle einfacher, wenn du beschreiben würdest,was die Formel ausgeben würde/soll, dann bräuchte man sie nicht extra noch zu "analysieren".
AW: Datumsformat per Makro ändern
30.04.2018 15:56:17
Jenny
Hallo Onur,
sorry ich dachte man kann die Formel so wie sie ist in das Makro übernehmen. Ohne sie zu analysieren.
Daher hatte ich mir das gespart.
Es geht darum englische in deutsche Datumsformate umzuwandeln.
Es gibt 3 Möglichkeiten, wie sie geschrieben sein können.
1. Ein komplettes Datum im Format 6 June 1997, daraus macht dann die Formel 06.06.1997
2. Nur ein Monat und ein Jahr, z. B. June 1997, daraus macht die Formel den letzten Tag dieses Monats, 30.06.1997
3. Nur ein Jahr wie 1997, daraus macht die Formel dann den letzen Tag des Jahres, 31.12.1997
Gruß
Jenny
Anzeige
Typisches 'June 6th, 1997' kommt nicht vor? owT
30.04.2018 19:36:01
Luc:-?
:-?
AW: Typisches 'June 6th, 1997' kommt nicht vor? owT
30.04.2018 21:22:25
Jenny
Hallo Luc,
nein die Daten haben alle den Aufbau wie ich ihn geschildert habe.
Gruß
Jenny
AW: Datumsformat per Makro ändern
01.05.2018 07:33:42
Jenny
Hallo Onur,
ich fürchte da gab es ein Misverständnis. Trotzdem erstmal danke.
Ich wollte ja, dass meine Eingabe in Spalte C automatisch überschrieben wird.
Für eine Lösung mit einer zweiten Spalte kann ich ja auch meine alte Formel nutzen.
Gruß
Jenny
AW: Datumsformat per Makro ändern
01.05.2018 12:51:38
onur
Du brauchtest das nur auf das Change-Ereignis umzuschreiben,
https://www.herber.de/bbs/user/121375.xlsm
Anzeige
Das versagt bei "August/September/November 1997"
01.05.2018 13:08:45
lupo1
weil diese Eingaben deutsch als datumsgültig erkannt und umgewandelt werden.
Dadurch lässt sich kein Ereignis auswerten, denn ein Ereignis erkennt keinen Unterschied zwischen Eingabe von
1.8.97 und August 1997
1.9.97 und September 1997
1.11.97 und November 1997
AW: Datumsformat per Makro ändern
01.05.2018 13:19:07
onur
Das versagt auch bei noch anderen Eingaben, aber das war ja auch nicht gefragt.
Die Auifgabe lautete ja: entweder Zahl, dann bleibt die Zahl, oder das seltsame engl. "Datumsformat", dann umwandeln in deutsches Datumformat.
Richtig ... ein Ereignis versagt, aber
01.05.2018 14:40:02
lupo1
... als Text eingegebene Daten, die nicht mehr geändert werden, nicht.
Ausnahme für das Ereignis: Eingabe als Text. Nur dann kann ein Ereignis überhaupt greifen. Denn die Um-Interpretation im Standardformat geht vor.
Anzeige
Hier aus Faulheit ohne die Luc'sche Umsetzung
01.05.2018 01:00:39
lupo1
B1:
=WAHL(1+ISTZAHL(--LINKS(A1))+(LÄNGE(A1)=4);
MONATSENDE(DATWERT(1&WECHSELN(WECHSELN(WECHSELN(WECHSELN(LINKS(A1;3)
;"ar";"rz");"ay";"ai");"ct";"kt");"ec";"ez")&RECHTS(A1;4));0);
DATWERT(LINKS(A1;2)&WECHSELN(WECHSELN(WECHSELN(WECHSELN(TEIL(GLÄTTEN(TEIL(A1;3;4));1;3)
;"ar";"rz");"ay";"ai");"ct";"kt");"ec";"ez")&RECHTS(A1;4));
(1&-A1-1)-1)
was sicherlich viel eleganter geht.
'Ne Fml hat sie schon, Lupo, ...
01.05.2018 04:07:06
Luc:-?
…gesucht ist dafür ein Makro, wenn ich das recht verstehe!
Morrn, Luc :-?
AW: 'Ne Fml hat sie schon, Lupo, ...
01.05.2018 07:37:30
Jenny
Hallo an euch 3en.
Genau, ein Makro suche ich.
Ich nehme mal das als Beispiel, was in Onurs Beispiel Datei gezeigt wurde,
ich gebe einen Text in Spalte C ein und dieser soll automatisch durch das überschrieben werden, was Onurs Makro aus dem Text macht. Das eizige blöde an Onurs Makro ist, dass es eine UDF ist in einer neuen Spalte, anstatt meine Eingabe zu überschreiben.
Noch zur Info, Daten vor 1900 kommen nicht vor.
Gruß
Jenny
Anzeige
AW: 'Ne Fml hat sie schon, Lupo, ...
01.05.2018 11:54:01
Sepp
Hallo Jenny,
wenn du die Daten per Hand eingibst, warum dann nicht gleich im richtigen Format?
 ABCDEF
1Gruß Sepp
2
3

Anzeige
"will se nich, hat se schon" ...
01.05.2018 07:40:47
lupo1
... aber die Formel löst ja auch nur Typ 1 von 3. Die will ich auch nich.
Meine unelegante (hier nun verkürzt) löst alle drei:
B1: =WENN(LÄNGE(A1)=4;(1&-A1-1)-1;MONATSENDE(WECHSELN(WECHSELN(WECHSELN(WECHSELN(
TEIL(GLÄTTEN(TEIL(A1;3-ISTFEHLER(--LINKS(A1))*2;4));1;3);"ar";"rz");"ay";"ai");"ct";"kt");"ec";"ez")
&RECHTS(A1;4);-ISTZAHL(--LINKS(A1)))+WENN(ISTZAHL(--LINKS(A1));LINKS(A1;2)))

Und wie immer gilt: Aus Tabellen-Formel wird direkt VBA, aber aus VBA nicht (oder nur selten) Formel:
Sub englDatumskonversionAusSpalteA()
'1997 -> 31.12.1997 (Jahresende)
'Oct 1997 -> 31.10.1997 (Monatsende Kurzform-Monat)
'March 1997 -> 31.03.1997 (Monatsende Normalmonat)
'6 Jun 1997 -> 06.06.1997
'6 August 1997 -> 06.08.1997
'26 Jul 1997 -> 26.07.1997
'21 September 1997-> 21.09.1997
[B1:B999] = "=IF(LEN(R[0]C1)=4,(1&-RC1-1)-1,EOMONTH(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(" & _
"MID(TRIM(MID(RC1,3-ISERROR(--LEFT(RC1))*2,4)),1,3),""ar"",""rz""),""ay"",""ai""),""ct"",""kt""),""ec"",""ez"")" & _
"&RIGHT(RC1,4),-ISNUMBER(--LEFT(RC1)))+IF(ISNUMBER(--LEFT(RC1)),LEFT(RC1,2)))"
End Sub
Anzeige
AW: "will se nich, hat se schon" ...
01.05.2018 08:04:47
Jenny
Hallo Lupo,
mit meiner vorgegebenen Formel arbeite ich schon lange. Glaub mir sie tut das was ich möchte, vielleicht hab ich auch mich blöd bei der Beschreibung was sie tun soll ausgedrückt.
Aber auch das Makro überschreibt nicht Spalte A sondern schreibt die Ergebnisse in Spalte B.
Außerdem muss ich es immer noch von Hand starten, mein Wunsch war es ja, dass es direkt auf eine Eingabe reagiert.
Gruß
Jenny
Ich glaube Dir nicht ...
01.05.2018 08:14:17
lupo1
1. ... denn ich habe getestet. Glauben täte ich in der Kirche, wenn ich wollte.
2. In-situ-Änderung: Mit den Zeilen
[A1:A999] = [B1:B999].Value
[B1:B999].ClearContents
nach meiner bisherigen Zeile erhältst Du Dein A. Und B wird weggeräumt.
3. Automatisch: Dafür gibt es Worksheet-Ereignisse (Code-Anzeigen auf Deinem Arbeitsblatt). Aber ich fange für Dich nicht bei den Blümchen und den Bienchen an. Tu was!
Und Dein sei das Buch, seien die Foren und sei die Erkenntnis, selbst zu lernen, statt nur zu konsumieren. Amen.
Anzeige

125 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige