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

Datumseingabe in Zellen angleichen

Datumseingabe in Zellen angleichen
18.08.2022 13:36:26
Dorje
ein herzliches hallo
Ich habe ein ein Problem, das eigentlich keines ist. Es ist ein leichtes, einen Workaround in die Excel datei einzubauen, aber der Ehrgeiz hat mich gepackt und ich will wissen, ob und vor allem wie ich eine Lösung finden kann.
In Spalte A (formatiert als Datum) werden Datumsbereiche eingegeben in der Form:
"1.1.-16.5." oder "12.12.-18.12" oder 5.5.-9.5.". Mit den Funktionen "Teil" oder "links/rechts" lassen sich die Anfangswerte und die Endwerte der Bereiche nur sicher extrahieren, wenn der Datumswert immer zweistellig ist ( z. B.: "12.12.-18.12."). Solange die Länge des Datumsbereichs in A Ich möchte gerne den Anfangswert und den Endwert trennen, und in eigenen Zellen mit dem aktuellen Tabellenblattnamen verbinden, so dass sich Einzeldatumswerte mit Jahreszahl ergeben.
Gibt es die Möglichkeit, den Bereich zu trennen und einheitlich (mit führenden Nullen) zu formatieren?
Der Name des Tabellenblatts ist immer das zugeordnete Jahr. Das kann ich problemlos ermitteln und anhängen (ist in Zelle L4 hinterlegt
Und ja, ich weiß, dass ich einfach eine weitere Spalte einfügen kann, diese mit dem passenden Datumsformat versehe, die Spalte A händisch aufteile, die auch in Zukunft machen kann und das Problem ist beseitigt. Aber ich habe Ehrgeiz, es wurmt mich, keine Lösung mit konventionellen Mitteln zu finden.
Ich will es lösen !
Das zugehörige Excelsheet ist angehängt
https://www.herber.de/bbs/user/154709.xlsm
Und ganz so nebenbei ist ein VBA-Code (in L5 aus dem Internet) zum Ermitteln des Blattnamens eingefügt, den ich nicht zum Laufen bringe. (ist nicht so wichtig, da bereits in L4 gelöst)
Danke für alle Ideen und Lösungsmöglichkeiten

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
LINKS/RECHTS/TEIL/Split
18.08.2022 13:40:17
{Boris}
Hi,
das ist Stringzerlegung - dafür gibt es unzählige Funktionen wie LINKS/RECHTS/TEIL/SUCHEN/FINDEN - in VBA Split, InStr, InStrRev usw.
Schau Dir die mal an.
BTW:

In Spalte A (formatiert als Datum) werden Datumsbereiche eingegeben in der Form:
"1.1.-16.5." oder "12.12.-18.12" oder 5.5.-9.5.". 
Es ist und bleibt Text und kein Datum - demnach ist das Zellformat Datum uninteressant.
VG, Boris
AW: LINKS/RECHTS/TEIL
18.08.2022 20:59:12
Dorje
danke,
der tipp mit dem String / Text war Gold wert.
mit den FUNKTIONEN.
=WERT(TEIL($A3;1;(FINDEN("-";$A3)-1))&TEIL(ZELLE( "dateiname";$A1); FINDEN("]"; ZELLE("dateiname"; $A1))+1; 255)) für Startwerte
UND
=WERT((TEIL(A3;(1+FINDEN("-";$A3));6))&TEIL(ZELLE( "dateiname";$A1); FINDEN("]"; ZELLE("dateiname"; $A1))+1; 255)) für die Endwerte
ist alles drinnen.
Anzeige
2 Hinweise
18.08.2022 21:57:42
{Boris}
Hi,
erstmal: Klasse, dass Du das selbst zusammengebastelt hast!
Darüber hinaus:
Damit es international läuft, besser "Dateiname" durch "filename" ersetzen. Läuft so auch im deutschen Excel - aber eben auch im englischen.
Zudem würde ich den Blattnamen (also die Jahreszahl) pro Blatt in einer separaten Zelle auslesen, damit nicht pro Formel neu berechnet werden muss.
Also z.B. in M1:
=TEIL(ZELLE("filename";A1);FINDEN("]";ZELLE("filename";A1))+1;9)
Und dann - bezogen auf A3 - die Formel (hier für den Teil links des Bindestrichs):
=WERT(TEIL($A3;1;(FINDEN("-";$A3)-1))&$M$1)
Könnte man noch mit LINLKS etc. verkürzen, aber das bringt Dir keinen Mehrwert.
VG, Boris
Anzeige
AW: Datumseingabe in Zellen angleichen
18.08.2022 14:17:58
Rudi
Hallo,
Functions gehören in ein allg. Modul.
In ein Modul:

Public Function blattname(r As Range) As String
blattname = r.Parent.Name
End Function
Function AnfDat(strDat)
AnfDat = Trim(Split(strDat, "-")(0))
If Right(AnfDat, 1)  "." Then AnfDat = AnfDat & "."
End Function
Function EndDat(strDat)
EndDat = Trim(Split(strDat, "-")(1))
If Right(EndDat, 1)  "." Then EndDat = EndDat & "."
End Function
In der Tabelle dann
F3: =--(AnfDat(A3) & L3)
G3: =--(EndDat(A3) & L3)
L3: =blattname($A$1)
Gruß
Rudi
AW: Datumseingabe in Zellen angleichen
18.08.2022 21:03:14
Dorje
danke.
den VBA code werde ich morgen ausprobieren.
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige