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

Datumsformat

Datumsformat
11.08.2021 17:53:13
Dieter
Hallo,
Ich weiß es ist schon oft beschrieben, aber ich finde leider nichts passendes im Netz noch hier im Forum.
Ich habe in Spalte A nur Datums stehen, einmal mit Komma 20,05,2021 und einmal mit Punkt 21.05.2021. Wenn ich jetzt auf Formatierung gehe, wandelt er mir
einige Zellen um in Zahlen und andere nicht egal wie geschrieben wo das Datum stehen bleibt als Datum. Ich brauche aber das Datum in Zahlen, damit ich mit den Zellen rechnen kann. Habe auch schon über Makro Aufnahme versucht aber nichts hinbekommen.
Gibt es da eine VBA Lösung für ?
Würde mich über jede Hilfe Freuen.
Vielen Dank im Voraus
Gruß Dieter

19
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: die "," in den Textdaten ...
11.08.2021 18:04:01
neopa
Hallo Dieter,
... ersetze doch einfach mit SUCHEN und ERSETZEN durch einen ".". Und danach nutze die Funktion: Text in Spalten
Das sollte im Normalfall schon ausreichend sein.
Gruß Werner
.. , - ...
AW: Datumsformat
11.08.2021 18:05:15
Werner
Hallo,
mal grundsätzlich:
Ein echtes Datum ist eine Zahl und sieht nur wie ein Datum aus, weil die Zelle entsprechend formatiert ist.
Das heutige Datum entspricht der Zahl: 44419
Deine vermeintliche Datumswerte mit dem Komma sind kein Datum und keine Zahl, das ist Text.
Markier mal deine Spalte mit den Datumswerten - Start - Suchen und Auswählen - Ersetzen - Suchen nach "," - Ersetzen durch "." - unter Optionen den Haken bei "gesamten Zellinhalt vergleichen" raus machen sollte der da drin sein - Alle ersetzen
Jetzt solltest du nur noch echte Datumswerte in der Spalte haben und damit kannst du auch rechnen.
Gruß Werner
Anzeige
AW: Geht auch mit VBA
11.08.2021 18:49:21
oraculix
Kopiere diesen Code in ein Modul und erstelle in der Deiner Tabelle einen CommandButton und weise ihn diesen Makto zu!
Option Explicit

Sub Ersetzten()
Columns("A:A").Select
Selection.Replace What:=",", Replacement:=".", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End Sub
Gruß
Oraculix
AW: Erledigt
11.08.2021 19:08:27
oraculix
Antwort wäre nett
AW: Geht auch mit VBA
12.08.2021 15:52:39
Dieter
Hey Alle,
Erst mal Danke für die Infos. Das mit suchen und ersetzen, klappt zwar, aber letztendlich bleibt immer noch bei einigen Zellen das Datum stehen welchen ich dann auch nicht anders formatieren kann. Der Code funktioniert zwar auch, aber da ist das selbe Problem wie bei suchen und ersetzen.
Leider klappen alle Vorschläge nicht.
LG
Dieter
Anzeige
AW: Geht auch mit VBA
12.08.2021 15:55:45
Dieter
Gibt es nicht eine Möglichkeit, egal wie das Datum nun geschrieben ist, als komma oder mit Punkt das man es dann über einen Code in eine Zahl oder in Text bekommt Gruß
Dieter
AW: Geht auch mit VBA
12.08.2021 16:35:25
GerdL
Moin Dieter,
die "Übigen" solltest du in einer Beispieldatei hochladen.

Sub Unit()
Dim C, X
With ActiveSheet.UsedRange.Columns(1)
.Replace ",", ".", xlPart
For Each C In .Cells
X = C
C.NumberFormat = "dd/mm/yyyy"
C = DateValue(X)
Next
End With
End Sub
Gruß Gerd
AW: Geht auch mit VBA
13.08.2021 17:19:27
Dieter
Hallo GerdL,
Hab versucht Deinen Code in ein Makro und in ein CommandButton einzufügen, klappt nicht. Bei Umbenennen des Makros in Unit geht auch nicht.
Sagt mir immer Laufzeitfehler 13 Typen unverträglich dann die Zeile C = DateValue(X) an.
Eine Beispieldatei muss ich erst anfertigen, da ich sehr viele Daten in der Tabelle habe.
Vielleicht kannst Du ja auch mit meiner Fehlerbeschreibung was anfangen.
Was ich bei einem anderen Code heraus gefunden habe, ist das wenn er umwandelt, steht ein ` Zeichen davor. wenn ich dieses lösche, hab ich eine Zahl die
ich dann umwandeln kann.
Gruß Dieter
Anzeige
was ist eigentlich...
14.08.2021 11:26:37
Werner
Hallo,
...an dem Hinweis von Gerd so schwer zu verstehen?
Lade eine Beispielmappe hoch.
Gruß Werner
AW: was ist eigentlich...
14.08.2021 13:20:40
Dieter
Hallo Werner, warum so unfreundlich ? wenn ich das nicht verstehe warum es nicht geht mit dem einfügen von GerdL
Hier ein Auszug der Mappe von mir.
https://www.herber.de/bbs/user/147619.xlsx
Gruß Dieter
AW: was ist eigentlich...
14.08.2021 14:03:14
ralf_b
versuch mal mit dem Makro deine Werte umzubauen. Es arbeitet die ausgewählten(selektierten) Zellen ab.

Sub ch_datum()
Dim x As Range
For Each x In Selection
If InStr(1, CStr(x.Value), ",") Then
x.Text = x.Replace(",", ".", xlPart)
End If
If IsDate(x.Value) Then
x.Value = CDate(x.Value)
x.NumberFormat = "DD.MM.YYYY"
End If
Next
End Sub

Anzeige
AW: was ist eigentlich...
14.08.2021 14:30:22
Dieter
Hallo Ralf,
Dein Makro geht wenn das Datum mit Punkt geschrieben ist. Dann kann ich eine Zahl formatieren oder wie gesagt damit rechnen.
Ist das Datum allerdings mit Komma geschrieben, kommt ein Laufzeitfehler 424 Objekt erforderlich und er schmeißt mir
diese Zeile x.Text = x.Replace(",", ".", xlPart) als Fehler raus.
Die hälfte ist geschafft, vielleicht bekommst du den Rest auch noch hin.
Erst mal danke Deiner Mühe
Gruß Dieter
AW: was ist eigentlich...
14.08.2021 18:27:10
ralf_b
versuch mal den Teil auszutauschen.

If InStr(1, CStr(x.Value), ",") Then
x.Replace ",", ".", xlPart
End If

Anzeige
AW: was ist eigentlich...
14.08.2021 14:19:00
Werner
Hallo,
ich habe zwar keine Ahnung was an der Feststellung unfreundlich sein soll. Unfreundlich ist für mich hier Hilfe zu suchen, darauf hingewiesen zu werden eine Beispielmappe hochzuladen, das aber dann zu ignorieren.
Das Folgende ist auch nicht unfreundlich, sind Feststellungen:
-ein echtes Datum ist eine Zahl und damit kannst du auch rechnen
-gib in Zelle A1 ein: 01.01.2021 gib in Zelle B1 ein: =A1+1
-ein echtes Datum sieht in Excel nur wie ein Datum aus, weil du die Zahl, die dahinter steckt, entsprechend formatiert hast
-du willst in eine Zahl bzw. einen Text umwandeln um damit rechnen zu können? Excel kann mit Text nicht rechnen
Hier deine Beispielmappe:
https://www.herber.de/bbs/user/147624.xlsm
Gruß Werner
Anzeige
AW: Datumsformat
14.08.2021 15:07:29
GerdL
Moin Dieter!
Nur für die gezeigten Arten!

Sub Makaroni3()
Dim C, X
With Range(Cells(4, 1), Cells(Rows.Count, 1).End(xlUp))
.Replace ",", ".", xlPart
For Each C In .Cells
X = C
C.NumberFormat = "dd/mm/yyyy"
If IsDate(X) Then
C = DateValue(X)
Else
C = CDate(Right(X, 5) * 1)
End If
.Offset(0, 1) = IsDate(C)
Next
End With
End Sub
Gruß Gerd
AW: Datumsformat
15.08.2021 12:57:33
Dieter
Hey Ralf, Hey Werner, Hey Gerd,
Zu Ralf, mit Deinen ausgetauschten Zeilen funktioniert es prima. Denke damit kann ich arbeiten. Vielen Dank für Deine Hilfe
Zu Werner, Nichts für ungut, bin ja der Hilfe dankbar. Von Deiner Beispielmappe der Code funktioniert auch soweit ich das bis jetzt testen konnte.
Auch Dir vielen Dank Deiner Hilfe.
Zu Gerd, Dein Code hat ab der Zeile C = CDate(Right(X, 5) * 1) ein Fehler, Trotzdem Danke für Deine Arbeit.
Ich werde jetzt mal ein paar Tage mit funktionierenden Code arbeiten in meiner Organalen Datei. Melde mich dann nochmal.
Vielen Dank
Gruß
Dieter
Anzeige
Gerne u. Danke für die Rückmeldung und..
15.08.2021 16:44:42
Werner
Hallo,
...da das Problem ja wohl gelöst ist, den Beitrag nicht mehr auf offen setzen.
Gruß Werner
AW: Gerne u. Danke für die Rückmeldung und..
17.08.2021 17:08:45
Dieter
Hey Ralf und Werner.
Eure Codes funktionieren bis jetzt problemlos. Danke dafür. Habe Sie mir jetzt in ein Button eingebaut.
Meine Frage dazu, könnte man auch eine Abfrage da noch einbauen für Spalte A, wo er fragt von welche Zelle bis Zelle ?
Sonst muss ich immer vorher die Range ändern, oder von Ralf erst runter scrollen bis zur Zelle.

With Range("A11:A30")   'vorher Range ändern ' zb A150:A221
.Replace ",", "."
.TextToColumns Destination:=Range("A11"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(1, 4), TrailingMinusNumbers:=True
End With
Nur wenn es nicht Zuviel Arbeit ist für euch. !!
Dann noch kurz was anderes,
Ich habe ja ein Commandbutton dazu angelegt in C1, wenn ich jetzt Spalten einfüge, und die dann nach Bearbeitung wieder lösche,
ist der Button immer weg. so sieht das aus bei mir, aber bleibt nicht auf C1 nach Spalten löschen.

Dim Shp As Shape
Range("C1").Select
Set Shp = Worksheets(3).Shapes("Commandbutton2")
Shp.Top = ActiveCell.Offset(0, 1).Top
Shp.Left = ActiveCell.Offset(0, 1).Left
ActiveCell.Offset(0, 2).Select
Range("A11").Select
Das wars jetzt, hoffe nicht zuviel.
Sollte es nicht gehen, trotzdem Danke der Mühe.
Gruß
Dieter
Anzeige
AW: Gerne u. Danke für die Rückmeldung und..
18.08.2021 00:01:57
Werner
Hallo,
erst zu deinem zweiten Problem:
Frage: Warum aktivierst du erst die Zelle C1 und sprichst dann mittels Offset die Zelle D1 an? Dann kannst du doch auch gleich die Zelle D1 nehmen.

Sub Makro2()
With Worksheets(3).Shapes("Commandbutton2")
.Top = Range("D1").Top
.Left = Range("D1").Left
.Placement = xlFreeFloating
End With
End Sub
Über xlFreeFloating ist dein Commandbutton von Zellposition und Größe unabhängig.
Und zur ersten Sache:
Könnte man über zwei kleine Userformen regeln in denen die Startzeile und die Endzeile eingegeben werden.
In der Beispielmappe kannst du in die Textboxen auf den Userformen nur Ganzzahlen eingeben. So sind auch Fehleingaben ausgeschlossen.
Schau dir die Mappe mal an. Über den Button wird die erste Userform gestartet, über den Button der ersten Userform die zweite Userform und über die wird dann das eigentliche Makro aufgerufen.
https://www.herber.de/bbs/user/147676.xlsm
Gruß Werner
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige