Anzeige
Archiv - Navigation
1400to1404
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

VBA / Datum / Datenschnitt

VBA / Datum / Datenschnitt
14.01.2015 15:34:37
vitavie

Hallo zusammen,
nachdem ich schon längere Zeit hier mitlese und immer gute Anregungen gefunden habe,hier nun doch ein Problem das ich nicht gelöst bekomme.
Meine Daten bekomme als Excelliste 2003 - Datum ist Text dd.mm.jjjj.
Ich benötige das Datum um
- Zeiträume zu berechen (Excel)
- einen Datenschnitt zu filtern (VBA) - und hier hängt es.
Da die Daten am Ende nur via Copx&Paste in eine Vorlage sollen habe ich in Excel eine weitere Spalte eingefügt, damit ich das Datum als Date habe. Leider musste ich hier auch schon mit VBA "drüberformatieren", da das Format beim Wechsel englisch/deutsches Betriebssystem Probleme machte.
Zu 98% läuft das jetzt auch - aber die 2% bekomme ich nicht gelöst.
Die Spalte mit dem Textdatum nach Max zu durchsuchen habe ich auch schon versucht, bekomme dann aber Ergebnisse aus dem Jahr 2085 :-(
Manchmal wird das größte Datum nicht gefunden und an den Datenschnitt wird nichts übergeben.
Was habe ich also so zusammen (wird in dieser Reihenfolge ausgeführt, restlicher Code fehlt):
ThisWorkbook.Sheets("xxx").Range("C:C").NumberFormat = "dd.mm.yyyy;@" 'Datumsumwandlung DEUTSCH erzwingen (???)
ThisWorkbook.Sheets("xxx").Range("C2", Cells(lngRow, 2)).Select
varNextDate = Application.WorksheetFunction.Large(Selection, 1) ' Datumswert max in eingefügten Daten
'Large verwende ich hier, weil Max auf englischem System auch schon nur sporadisch 'funktionierte. An anderer Stelle klappt es aber
'varDaily = CStr(varNextDate) 'Umwandlung in String
'varDaily = varNextDate
'Beide Versionen sind im Datenschnitt nicht zuverlässig
Call SlicerItemSetzen(objSlicerCache:=ActiveWorkbook.SlicerCaches("Datenschnitt_Date"), _
strNameItem:=varDaily)
Und last:
----------------------------------------------


Public Sub SlicerItemSetzen(objSlicerCache As SlicerCache, ByVal strNameItem As String)
' Datenschnitt - SlicerItem Setzen
Dim objSlicerItem As SlicerItem
With objSlicerCache
For Each objSlicerItem In .VisibleSlicerItems
With objSlicerItem
If .Name <> strNameItem Then
If .Selected = True Then .Selected = False
End If
End With
Next
If .SlicerItems(strNameItem).Selected = False Then
.SlicerItems(strNameItem).Selected = True
End If
End With
End Sub

----------------------------------------------------------------------------------
Wie gesagt, zu 98% funktioniert es, und dann wieder nicht.
Importiere ich die gleiche Datei nocheinmal klappt es dann doch.
Naja, eigentlich hat das mit dem Datum von Anfang an immer wieder Probleme gemacht und ich habe vermutlich aussenrum gearbeitet.
Bin gerade für jeden Tipp dankbar.
Will das Ding endlich loshaben bevor die nächste Änderung kommt.

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Was war nochmal konkret die Frage?
16.01.2015 13:44:08
Frank
Hi,
bei so unklarem Fehlerbild helfen i.A. nur die Originaldaten.
Wenn das Datum als Datum formatiert ist, sollte eigentlich unabhängig von der Lokalisierung immer das Maximum/Minimum gefunden werden. M.E. ist das Umwandeln in Text die Ursache, dass das nicht funktioniert, weil dann eben 16.01.2015 13:37 und 16.1.15 1:37 PM nicht mehr das gleiche ist.
Grüsse,
Frank

AW: Was war nochmal konkret die Frage?
18.01.2015 09:59:12
Hajo_Zi
Hallo Frank,
lass den Fragesteller doch entscheiden ob offen. Viele melden sich nicht und der Beitrag wird hier über Tage als offen angezeigt.

Anzeige
AW: Was war nochmal konkret die Frage?
18.01.2015 20:22:14
vitavie
Hallo Frank,
danke für Dein Feedback.
Ich bin am Wochenende leider nicht zum ausgiebigen Testen gekommen und in der Arbeit läuft das alles nebenbei zu meinem regulären Arbeitsaufkommen.
Nevertheless -
M.E. ist das Umwandeln in Text die Ursache, dass das nicht funktioniert, weil dann eben 16.01.2015 13:37 und 16.1.15 1:37 PM nicht mehr das gleiche ist.
Das Textfomat bekomme ich aus der IT - dies hatte ich in ein Datum bzw. Zahl umgewandelt allerdings, wie ich jetzt merkte, mit einem schnellen
Zahl '= Text*1.
Das war zu Beginn der Auswertung und ist seither aus dem Gedächtnis raus gefallen :-)
Das habe ich jetzt geändert in ein sauberes Excel
'=DATUM(RECHTS([@Datum];4);TEIL([@Datum];4;2);LINKS([@Datum];2)))
und scheinbar läuft eine der Importdateien, bei der Max nie sauber gefunden wurde an dieser Stelle fehlerfrei durch.
Jetzt hängt es aber am Slice.
Also andere Problemstellung :-)

Anzeige
Da weiss ich nun wieder nix davon
18.01.2015 23:07:27
Frank
Hi,
dann mach doch damit nochmal einen neuen Thread auf, in dem Du die Fehlermeldung (und vielleicht Beispieldaten) postest.
Grüsse,
Frank

Ich kenn' das doch...
18.01.2015 23:16:37
Frank
Hallo Hajo,
es ist doch noch keine zwanzig Jahre her ... ;-) ... da ging mir das genau so. In einem Forum eine Frage gepostet und ewig keine Antwort bekommen. Wobei ewig indirekt proportional zur Dringlichkeit war. Hat man nach 3...4 Stunden gefragt, ob da keiner was dazu weiss, hat man pampige Antworten bekommen, die Helferlein hätten auch noch was anderes zu tun etc. Hat man sich nach ein bis zwei Tagen nochmal gemeldet, stellte sich heraus, dass keiner die Frage verstanden hatte, weil ich mich nicht richtig ausdrücken konnte.
Wenn's niemanden wirklich stört und dem Forenbetreiber keine Probleme bereitet, würde ich das gerne weiter so halten und ältere offene Threads (die, wie hier, noch gar keine Antwort erhalten haben) noch mal aufgreifen. Meist geht dann da doch noch was.
Grüsse,
Frank

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige