Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Text bei Datum ändern
#21
Hi,

hier noch eine verbesserte Version:

Code:
Global rng As Range
Global cell As Range


Sub Datum_ändern()
'ändert im aktiven Tabellenblatt jeweils die Einträge
'JAN, FEB, MAR, usw in 01 02 03 usw.

Set rng = Sheets("Tabelle1").Range("AC7:AC21")
Range("BI7:BI21").Copy rng
Ersetze
Set rng = Sheets("Tabelle1").Range("AE7:AE21")
Range("BK7:BK21").Copy rng
Ersetze
Set rng = Sheets("Tabelle1").Range("AG7:AG21")
Range("BP7:BP21").Copy rng
Ersetze

End Sub

Sub Ersetze()
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.")
cell = Replace(cell, "BEF", "vor ")
cell = Replace(cell, "AFT", "nach ")
cell = Replace(cell, "ABT", "um ")

If IsNumeric(Left(cell, 1)) Then
cell = Replace(cell, " ", "")

End If
Next
End Sub
Das Datum kann nicht nach Deinen Wünschen formatiert werden, da es sich nicht um ein gültiges Datum nach Excel-Vorgaben handelt!
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:
  • luna101
Antworten Top
#22
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:
  • BoskoBiati, luna101
Antworten Top
#23
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
   98 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
Antworten Top
#24
Hi,

hiermit geht´s:

Code:
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:
  • Rudi'S
Antworten Top
#25
(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:
  • luna101
Antworten Top
#26
Hallo LCohen,

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
Antworten Top
#27
Guten Abend Edgar
Danke für das neue Makro. Jetzt funktioniert es. Das ist 35
Besonders möchte ich Dir 98 für deine Geduld,
uns Laien so unermüdlich zu Helfen.
Wünsche noch ein schöner Abend.
Mit freundlichen Grüssen
Martin
Antworten Top
#28
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.

Gruß Rudi


Angehängte Dateien
.xlsm   Datum aendern.xlsm (Größe: 1,54 MB / Downloads: 6)
Antworten Top
#29
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

Martin
Antworten Top
#30
Guten Abend Rudi  69 
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.

Mit dankbaren Grüssen
Martin


Angehängte Dateien
.xlsm   Kopie von Datum aendern-2 Rudi.xlsm (Größe: 1,53 MB / Downloads: 2)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste