Moin!
Mal (für die Monate) ein anderer Ansatz:
Statt die Replace-Funktion auf einzelne Zellen anzuwenden, nehme ich die Range.Replace-Methode (hier auf Spalte A).
Statt die englischen Kurzformen der Monate einzeln aufzuschreiben, nutze ich die bereits vorhandene CustomList 3
Sub Ersetze() Dim Monate, i& Monate = Application.GetCustomListContents(3) With Columns(1).SpecialCells(xlCellTypeConstants) .Replace " ", ".", xlPart For i = 1 To 12 .Replace Monate(i), Format(i, "00") Next End With End Sub
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Folgende(r) 2 Nutzer sagen Danke an RPP63 für diesen Beitrag:2 Nutzer sagen Danke an RPP63 für diesen Beitrag 28 • BoskoBiati, luna101
15.02.2022, 17:00 (Dieser Beitrag wurde zuletzt bearbeitet: 15.02.2022, 17:07 von luna101.)
Guten Tag Edgar,
Danke für Deine Antwort und Bereitschaft, mir zu helfen.
Ich dachte, mann kann die Anzeige so manipulieren, dass es optisch wie ein Datum aussieht.
Ich brauche es nicht "als gültiges Datum nach Excel-Vorgaben".
Es wird nicht damit gerechnet, oder als Datum verwendet.
Ich brauche diese Anzeige nur, um jemandem mittzuteilen, dass er hier
in seinem Programm ein Datum ändern oder ergänzen muss.
Deine Makro funktionieren, es geht nur noch um die Anzeige "Tag 2 stellig".
Wenn es jedoch nicht machbar ist, arbeite ich mit meiner alten Version weiter.
Mit freundlichen Grüssen
Martin
Guten Tag Ralf
für Dein Makro. Interessanter Ansatz.
Doch leider löste er mein Problem nicht (Tage 2 stellig anzeigen).
Werde das Makro trotzdem mal testen.
Gruss Martin
Sub Datum_ändern()
Dim Monate, i&
Dim cell As Range
Dim rng As Range
Monate = Application.GetCustomListContents(3)
Set rng = Sheets("Tabelle1").Range("AC7:AC21")
Sheets("Tabelle1").Range("BI7:BI21").Copy rng
With rng.SpecialCells(xlCellTypeConstants)
.Replace " ", ".", xlPart
For i = 1 To 12
.Replace Monate(i), Format(i, "00")
Next
End With
For Each cell In rng
cell = Replace(cell, "BEF", "vor ")
cell = Replace(cell, "AFT", "nach ")
cell = Replace(cell, "ABT", "um ")
If Mid(cell, 2, 1) = "." Then cell = "0" & cell
Next
Set rng = Sheets("Tabelle1").Range("AE7:AE21")
Sheets("Tabelle1").Range("BK7:BK21").Copy rng
With rng.SpecialCells(xlCellTypeConstants)
.Replace " ", ".", xlPart
For i = 1 To 12
.Replace Monate(i), Format(i, "00")
Next
End With
For Each cell In rng
cell = Replace(cell, "BEF", "vor ")
cell = Replace(cell, "AFT", "nach ")
cell = Replace(cell, "ABT", "um ")
If Mid(cell, 2, 1) = "." Then cell = "0" & cell
Next
Set rng = Sheets("Tabelle1").Range("AG7:AG21")
Sheets("Tabelle1").Range("BP7:BP21").Copy rng
With rng.SpecialCells(xlCellTypeConstants)
.Replace " ", ".", xlPart
For i = 1 To 12
.Replace Monate(i), Format(i, "00")
Next
End With
For Each cell In rng
cell = Replace(cell, "BEF", "vor ")
cell = Replace(cell, "AFT", "nach ")
cell = Replace(cell, "ABT", "um ")
If Mid(cell, 2, 1) = "." Then cell = "0" & cell
Next
End Sub
Gruß
Edgar
Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Folgende(r) 1 Nutzer sagt Danke an BoskoBiati für diesen Beitrag:1 Nutzer sagt Danke an BoskoBiati für diesen Beitrag 28 • Rudi'S
15.02.2022, 17:49 (Dieser Beitrag wurde zuletzt bearbeitet: 15.02.2022, 17:50 von LCohen.)
(10.02.2022, 18:15)Klaus-Dieter schrieb: ..., dass der Excel-Kalender erst am 01.01.1900 beginnt?
Sogar erst am 1.3.1900, denn die 59 Tage davor ist er falsch, weil er von 60 Tagen ausgeht.
Ab dem 15.10.1582 kann man den Wochentag (sowie andere Datumsoperationen, z.B. Anzahl Tage zwischen zwei Datümern) durch Eingabe des Datums 400 Jahre später (15.10.1982) ermitteln. Da ist der Excelkalender dann auch längst richtig.
Folgende(r) 1 Nutzer sagt Danke an LCohen für diesen Beitrag:1 Nutzer sagt Danke an LCohen für diesen Beitrag 28 • luna101
der 1900-Bug des Excel-Kalenders ist mir natürlich bekannt, ändert aber nichts daran, dass der Kalender am 01.01.1900 beginnt, auch wenn da der falsche Wochentag ausgeworfen wird, weil man das Jahr 1900 fälschlicherweise für ein Schaltjahr gehalten hat.
Viele Grüße
Klaus-Dieter Der Erfolg hat viele Väter, der Misserfolg ist ein Waisenkind Richard Cobden
Guten Abend Edgar
Danke für das neue Makro. Jetzt funktioniert es. Das ist
Besonders möchte ich Dir für deine Geduld,
uns Laien so unermüdlich zu Helfen.
Wünsche noch ein schöner Abend.
Mit freundlichen Grüssen
Martin
16.02.2022, 11:43 (Dieser Beitrag wurde zuletzt bearbeitet: 16.02.2022, 11:44 von Rudi'S.)
Hallo Martin,
war etwas außer Gefecht, und ich sehe, dass es eine zufriedenstellende Lösung gibt.
Möchte aber trotzdem den Zusammenschnitt meiner Lösung hier anbieten.
Guten Abend Rudi,
danke für die Makro. Hoffe, es war nicht schlimmes.
Werde es morgen mal testen und melde mich wieder.
Wünsche noch eine gute Nacht und hoffe, dass Du bald
wieder voll Gefecht bereit bist.
Mit danlkbaren Grüssen
Guten Abend Rudi
habe die Makro ausgiebig getestet, das Umwandeln funktioniert.
Leider wandelt es auch die Datum der Quelll Daten um.
Die dürfen aber nicht verändert werden.
Ein weiterer Änderungswunsch hätte ich noch bei :
Sub MonateSuchenUndErsetzen()
With Sheets("Tabelle1") ' ggfls.anpassen Set rng = Sheets("Tabelle1").Range("AC7:AG11")
Da die Zeilen Zahl variabel ist, hätte gerne, dass die Spalten
"AC7","AE7","AG7" einzell umgewandelt werden bis letztem Zelleintrag.