Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
672to676
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
672to676
672to676
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

komplizierte daten aufsplitten

komplizierte daten aufsplitten
27.09.2005 04:59:46
fabian
Hallo,
bevor ich noch verzweifele, schreibe ich lieber, ob jemand eine gute Idee oder ein Makro für mich hat, leider bin ich kein Excel-Experte, hab jedoch eine Tabelle, die ich ordnen muss.
Hab in Spalte A Namen und Geburtsdaten von Menschen nach folgendem Muster:
Nachname, Vorname, Geschlecht, *Geburtstag
z.B. Mustermann, Max, m, *01.02.1942
Jetzt muss ich das Datum aus der Zelle bekommen, und zwar Tag, Monat und Jahr in getrennte Spalten. Als zusätzliche Schwierigkeit sind manche Daten auch im Format
1.03.24 oder 5.5.1934, also ohne führende Null oder ohne das 19 vor dem Jahr.
Kann mir jemand helfen? Gruß und Danke, Fabian

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: komplizierte daten aufsplitten
27.09.2005 05:56:04
Hilbman
Hallo Fabian,
Versuch folgenden Code:

Sub Datum()
Dim text As String, Datstring As String, AnzahlKomma As Integer, Dat As Date
Dim i As Integer, j As Long, Jahr As Integer
For j = 1 To Rows.Count
If ActiveSheet.Cells(j, 1) = "" Then Exit Sub
text = ActiveSheet.Cells(j, 1)
AnzahlKomma = 0
For i = 1 To Len(text)
If Mid(text, i, 1) = "," Then
AnzahlKomma = AnzahlKomma + 1
If AnzahlKomma = 3 Then
Datstring = Mid(text, i + 1)
Exit For
End If
End If
Next
Datstring = Trim(Datstring)
If Mid(Datstring, 1, 1) = "*" Then
Datstring = Mid(Datstring, 2)
End If
Dat = CDate(Datstring)
ActiveSheet.Cells(j, 2) = Format(Day(Dat), "00")    ' Tag in Spalte B
ActiveSheet.Cells(j, 3) = Format(Month(Dat), "00")  ' Monat in spalte C
Jahr = Year(Dat)
If Jahr > Year(Now) Then
Jahr = CInt("19" & Mid(Jahr, 3))
End If
ActiveSheet.Cells(j, 4) = Jahr                      ' Jahr in Spalte D
Next
End Sub

Folgende Annahmen wurden gemacht:
1. Der Datenstring in Spalte a hat immer 4 Werte die mit 3 Kommata getrennt sind
2. Es gibt keine Leerzeilen(Leerzellen) zwischen den einzelnen Strings
Gruß Hilbman
Anzeige
AW: komplizierte daten aufsplitten
27.09.2005 06:16:39
Hilbman
Hallo Fabian,
Sorry,
Die Formatierung beim Wegschreiben des Tages und es Monats ist nicht ok.
Tausche folgenden Code aus :
Lösche:
ActiveSheet.Cells(j, 2) = Format(Day(Dat), "00") ' Tag in Spalte B
ActiveSheet.Cells(j, 3) = Format(Month(Dat), "00") ' Monat in spalte C
füge an gleicher stelle ein :
ActiveSheet.Cells(j, 2) = Day(Dat) ' Tag in Spalte B
ActiveSheet.Cells(j, 3) = Month(Dat) ' Monat in spalte C
ActiveSheet.Cells(j, 2).NumberFormat = "00"
ActiveSheet.Cells(j, 3).NumberFormat = "00"
Gruß Hilbman
Anzeige
AW: komplizierte daten aufsplitten
27.09.2005 07:09:32
fabian
Deine Annahmen waren richtig und es funktioniert auch, obwohl ich nicht viel von dem ganzen verstehe. Aber ich muss mich wohl mal da rein fuchsen! Vielen Dank für die schnelle Antwort (wirklich schnell um 6:00 morgens). Hab die ganze Nacht schon probiert, das selber hin zu bekommen, aber ohne Erfolg;) Wär ich schon früher her gekommen. Schönen Tag

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige