Hallo Makro und Formel Profi,
ich versuche ein Datum, zB. (1 JAN 1500) in ein europäisches (01.01.1500) um zu wandeln, was soweit auch gelingt.
Wenn aber bei der Jahreszahl noch Text steht z.B. (BEF 1500) usw., dann funktioniert es nicht mehr.
Das Umwandeln wird in der Tabelle "Datum_ändern" durch zwei Makro und eine Formel erledigt
Da mir für eine elegantere Lösung jedoch das nötige Wissen fehlt, habe ich es mit kleinen Schritten versucht.
Beispiel:
22 MAY 1657 wird zu 22. MAY .1657 anschliessend zu 22.05.1657 (korrekt)
BEF 1620 wird zu BE.F. 1620 (der Rest funktioniert nicht mehr)
Wenn ich BE.F.1620 in der "Tabelle6" mit dem gleichen Makro umwandle wird daraus wieder BEF 1620 (korrekt).
Der Fehler liegt vermutlich teilweise am Makro, resp. an den mit Formeln belegten Zellen.
Wie muss ich das Makro modifizieren, dass der letzte Schritt auch noch funktioniert;
Bitte um eure Hilfe, oder eine elegantere Lösung.
Gruss Martin
Guten Abend Klaus-Dieter,
ja das weiss ich. Das Datum ändern funktioniert und zum Rechnen brauch ich es auch nicht.
Es ist also eine reine kosmetische Sache. Es ist nur das Makro in der Tabelle "Datum_ändern",
welches dort nicht funktioniert. Ich vermute dass die Formel in den Zellen, dies verhindern.
Es wäre schön, wenn das Makro in dieser Tabelle funktionieren würde.
Gruss Martin
da ich mir nicht sicher bin, was konkret gebraucht wird, bitte ich dich in einer Spalte die Ausgangswerte, welche alle anfallen und in einer weiteren Spalte die Zielwerte zu schreiben. Lade diese Datei ebenfalls hoch. Ich weiß, dass es für die Ahnenforschung gedacht ist und nicht um weitergehende Berechnungen zu machen. Ich brauche einfach nur die Eingabewerte und die Ergebniswerte. Dann kann ich vielleicht was Brauchbares hier hinterlassen.
2. Mit diesem Makro kannst Du die Monate ganz einfach umwandeln:
Code:
Sub MonateSuchenUndErsetzen()
'ändert im aktiven Tabellenblatt jeweils die Einträge
'JAN, FEB, MAR, usw in 01 02 03 usw.
Dim suchArray()
Dim ersetzArray()
Dim rng As Range
Dim cell As Range
Dim k As Long
Set rng = Sheets("Datum_ändern").Range("O3:Q12")
For Each cell In rng
cell = Replace(cell, "JAN", "01")
cell = Replace(cell, "FEB", "02")
cell = Replace(cell, "MAR", "03")
cell = Replace(cell, "APR", "04")
cell = Replace(cell, "MAY", "05")
cell = Replace(cell, "JUN", "06")
cell = Replace(cell, "JUL", "07")
cell = Replace(cell, "AUG", "08")
cell = Replace(cell, "SEP", "09")
cell = Replace(cell, "OCT", "10")
cell = Replace(cell, "NOV", "11")
cell = Replace(cell, "DEC", "12")
Next
End Sub
Das Ganze ginge wahrscheinlich noch einfacher, wenn man, wie bereits angesprochen, wüsste, wo was hin soll.
Gruß
Edgar
Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
habe dir mal den Vorschlag von BoskoBiati (und anderen Kopiervorschlägen) zusammengefasst.
Du musst nur den Button "Kopieren" (in Tabelle1) ausführen. Sollte das Ganze in der Zusammenfassung in einem anderen Tabellenblatt erfolgen, musst du dann das Makro anpassen.
Hallo Edgar und Rudi
habe mal eine Hilfs-Tabelle hochgeladen um aufzuzeigen, wie bei mir das
Umwandeln funktioniert. Die Datum werden so korrekt umgewandelt.
Wenn jedoch Text dabei steht funktioniert es nicht.
Habe in der zuerst hochgeladenen Mappe in Tabelle6 versucht
mit dem gleichen Makro ( Sub AB_T_BE_F_AF_T_ ersetzen ) .
dasselbe zu realisieren. Da hat es funktioniert.
Ich zähle mich mich immer noch zu den Makro-Anfänger
und würde mich freuen, zu sehen, wie es der Profi macht.
Danke für eure Hilfe.
Gruss Martin
11.02.2022, 19:41 (Dieser Beitrag wurde zuletzt bearbeitet: 11.02.2022, 19:47 von Rudi'S.)
Hallo,
warum soviel Umwege (wenn woanders gebraucht, dann mag es angehen), wo ein kurzer Weg reicht. Wenn allerdings in der Datumsangabe keine Abstände gebraucht werden, ist das im Makro (Kopieren) zu ändern. Und das Ganze kannst du auch gleich in eine andere Datei / andere Tabelle in einem Arbeitsgang durchführen.