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

Datum per Makro umwandeln

Datum per Makro umwandeln
14.12.2019 18:35:21
Christian
Hallo,
ich habe ein recht umfangreiches Makro, (von dem ich hier nur den Teil poste, der meine Frage _ betrifft) (Version 2019)

'IMDB-Code, Schauspielername und Geburtsdatum in Archiv Tabelle eintragen
Sheets(personenArchivTabelle).Cells(naechsteZeilePersonenArchivTabelle, 1).  _
_
_
Value = imdbCodeSchauspieler
Sheets(personenArchivTabelle).Cells(naechsteZeilePersonenArchivTabelle, 2).  _
_
_
Value = schauspielerName
Sheets(personenArchivTabelle).Cells(naechsteZeilePersonenArchivTabelle, 3).  _
_
_
Value = geburtsDatumSchauspieler
'Eintragen, dass ein Geburtsdatum aus dem Internet geholt wurde
'Steigt diese Zahl auf größer 1, hätte das Datum in der Archivtabelle stehe  _
_
_
müssen
Sheets(personenArchivTabelle).Cells(naechsteZeilePersonenArchivTabelle, 4).  _
_
_
Value = _
Sheets(personenArchivTabelle).Cells(naechsteZeilePersonenArchivTabelle, 4) _
_
_
.Value + 1
'Zelle mit Geburtsdatum färben, wenn vor 01.01.1900
'(Kein gültiges Excel-Datum)
If Year(geburtsDatumSchauspieler) > 1899 Then
Sheets(personenArchivTabelle).Cells(naechsteZeilePersonenArchivTabelle,  _
_
_
3).Value = _
CDate(Sheets(personenArchivTabelle).Cells( _
naechsteZeilePersonenArchivTabelle, 3).Value)
Sheets(personenArchivTabelle).Cells(naechsteZeilePersonenArchivTabelle,  _
_
_
3).Interior.ColorIndex = xlNone
Else
Sheets(personenArchivTabelle).Cells(naechsteZeilePersonenArchivTabelle,  _
_
_
3).Interior.ColorIndex = 43
End If
'Nächste Zeile in PersonenArchivTabelle festlegen
naechsteZeilePersonenArchivTabelle = naechsteZeilePersonenArchivTabelle + 1
End If
'Geburtsdatum in ZielTabelle eintragen
Sheets(zielTabelle).Cells(naechsteZeileZielTabelle, 6).Value =  _
geburtsDatumSchauspieler
'Zelle mit Geburtsdatum färben, wenn vor 01.01.1900
'(Kein gültiges Excel-Datum)
If Year(geburtsDatumSchauspieler) > 1899 Then
Sheets(zielTabelle).Cells(naechsteZeileZielTabelle, 6).Value = CDate(Sheets( _
_
_
zielTabelle).Cells(naechsteZeileZielTabelle, 6).Value)
Sheets(zielTabelle).Cells(naechsteZeileZielTabelle, 6).Interior.ColorIndex = _
_
_
xlNone
Else
Sheets(zielTabelle).Cells(naechsteZeileZielTabelle, 6).Interior.ColorIndex = _
_
_
43
End If

Das Makro färbt bekanntlich alle Zellen, in die es ein Datum vor dem 1.1.1900 schreibt grün.
Immer wenn das Makro fertig ist, gehe ich hin und nutze folgende UDF:

Function Text2Date(Datum$): Text2Date = CDate(Datum): End Function

um diese Daten in eine negative Zahl ohne Nachkommstellen umzuwandeln.
Kann man das irgendwie hinbekommen, dass das eigentliche Makro das bereits übernimmt?
Danke
Christian
PS: Zum Thema Beispieldatei, ist in diesem Fall schwer machbar, da es um Daten geht, die beim Start des Makros noch gar nicht in der Tabelle vorhanden sind, sondern durch das Makro aus dem Internet heruntergeladen werden. Bevor es da zu Problemen kommt weil jemand nicht weiß ob diese Datenquellen sicher sind und so, habe ich darauf verzichtet. Wenn es gar nicht anders geht, werde ich versuchen irgendetwas zusammenzustellen, weiß aber aus genanntem Grund im Moment noch nicht wie das aussehen könnte.
Gruß
Christian

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datum per Makro umwandeln
15.12.2019 21:05:46
Dieter
Hallo Christian,
wenn ich dein Problem richtig verstehe, dann kannst du in den ersten Else-Zweig das folgende Statement zusätzlich einfügen:
    Sheets(personenArchivTabelle).Cells(naechsteZeilePersonenArchivTabelle, 3) = _
CDbl(CDate(geburtsDatumSchauspieler))

Analog fügst du in den zweiten Else-Zweig das Statement
    Sheets(zielTabelle).Cells(naechsteZeileZielTabelle, 6) = _
CDbl(CDate(geburtsDatumSchauspieler))

ein.
Viele Grüße
Dieter
AW: Datum per Makro umwandeln
15.12.2019 21:30:26
Christian
Hallo Dieter,
erstmal danke für den Tipp,
habe damit nur leider ein kleines Problem, ich kann nicht nachvollziehen, an welcher Stelle genau du mir rätst es einzufügen.
Hier nochmal der Teil des Makros als Textdatei. Hoffe das ist was übersichtlicher als das was das Forum daraus gemacht hat. Sei doch bitte so nett und füg es an der Stelle ein, an der du gemeint hast.
Gruß
Christian
https://www.herber.de/bbs/user/133797.txt
Anzeige
AW: Datum per Makro umwandeln
15.12.2019 22:31:30
Christian
Habs jetzt versucht einzufügen,
aber beim Ausführen sagt man mir "Unzulässiger oder nicht ausreichend definierter Verweis".
und das .value= nach 1899 Then wird markiert.
Gruß
Christian
AW: Datum per Makro umwandeln
16.12.2019 12:34:05
Dieter
Hallo Christian,
ich habe mal dein Fragment zu einem Miniprogramm ergänzt und die beiden betreffenden Statements eingefügt. Zusätzlich habe ich noch 4 Formatierungsstatements eingefügt.
Alle Einfügungen sind gekennzeichnet.
https://www.herber.de/bbs/user/133805.xlsm
Viele Grüße
Dieter
P.S. Du könntest über kürzere Variablennamen nachdenken.
Anzeige
AW: Datum per Makro umwandeln
16.12.2019 14:20:42
Christian
Hallo Dieter,
da habe ich schon öfter drüber nachgedacht, aber das Makro ist so umfangreich und ich fürchte dass ich dabei was übersehe und so und mir damit ein eigentlich funktionierendes Makro zerstöre und dann auf ewige Fehlersuche gehen muss.
Aber nun zu deiner Datei.
Ich habe deine neuen Zeilen in mein Makro eingefügt und jetzt auch ausgiebig getestet.
Was funktioniert, ist dass das Makro die Daten in eine negative Zahl umwandelt.
Jedoch das Format, in dem sie ausgegeben werden sollen, ist nicht das was ich mir gewünscht hatte.
In der Archivtabelle wird es zwar wie gewünscht als Zahl ohne Nachkommastellen angezeigt, wenn das möglich ist würde ich mir aber wünschen, dass sie auch ohne 1000er Trennzeichen angezeigt wird.
In der Zieltabelle wird die Zahl als ################## ausgegeben, sprich als Datum. Wäre schön wenn sie auch dort als Zahl ohne Tausendertrennung und ohne Nachkommastellen ausgegeben wird.
Zahlen ab dem 1.1.1900 sollen nach wie vor auch in beiden Tabellen als Datum in TT.MM.JJJJ ausgegeben werden.
Hier noch das Makro, so wie ich es beim Test benutzt habe:
https://www.herber.de/bbs/user/133811.txt
Gruß
Christian
Anzeige
AW: Datum per Makro umwandeln
16.12.2019 16:36:22
Dieter
Hallo Christian,
um das Tausendertrennzeichen zu vermeiden, schreibst du
...NumberFormat = "0"
Natürlich muss die Anweisung mit NumberFormat auch beim Schreiben in die Zieltabelle dabei sein. Ich habe sie in der beiliegenden Mappe noch einmal besonders gekennzeichnet.
Die erste Anweisung zur Datumsformatierung habe ich noch einmal verschoben und auch besonders gekennzeichnet.
Läuft denn mein Miniprogramm bei dir?
Die geänderte Version:
https://www.herber.de/bbs/user/133815.xlsm
Viele Grüße
Dieter
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige