Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
1420to1424
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

Datums suche mittels VBA

Datums suche mittels VBA
13.04.2015 15:46:58
Ralf
Hallo Zusammen,
ich habe schon einiges gesucht, finde aber leider nichts, vll. bin ich auch blind :)
Folgendes:
ich will mittels eines Macros ein Datum aus einer Zelle in einer anderen Arbeitsmappe finden.
Ich hab den Code hier mal kurz zusammengefasst:

Sub Find()
Dim Row1 As String
Dim Column1 As String
On Error Resume Next
Workbooks.Open (Home_Folder & "\01-Statistik\Rohdaten.xlsx") 'Home_Folder ist eine Funktion
On Error GoTo 0
Column1 = ConvertToLetter(Workbooks("Rohdaten.xlsx").Sheets("Zeiten").Range("D1:M1") _
.Find(ThisWorkbook.Sheets("Daten").Range("L2")).Column)
Row1 = Workbooks("Rohdaten.xlsx").Sheets("Zeiten").Range("B4:B1988") _
.Find(CDate(ThisWorkbook.Sheets("Daten").Range("E2")), LookIn:=xlValues).Row
MsgBox "Zelle " & Column1 & Row1
End Sub

Das Paradoxe ist, bis zum 09.10.2015 funktioniert das Macro soweit auch ohne weiteres, ab dem _
Datum 10.10.15 bekomme ich jedoch den Fehler:

Laufzeitfehler '91':
Objektvariable oder With-Blockvariable nicht festgelegt

Jetzt habe ich soweit gefunden dass dies wohl daran liegt dass er bei der Find Methode das Datum nicht finden kann. Dieses ist aber vorhanden.
Ich lassen die Daten ab dem 1.1.2015 zwar mittels "=Zelle B4+1" runterkopieren, aber auch als ich das Datum mal händisch kopiert habe hat er das Ergebnis nicht gefunden.
Ich bin Ratlos und Hoffe hier Hilfe zu finden, da ich schon häufig hier Rat finden konnte ;)

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datums suche mittels VBA
13.04.2015 15:57:36
Daniel
HI
Datumswerte suchst du besser mit Worksheetfunction.Match.
das schaut unabhängig von der Formatierung auf den LONG-Zahlenwert des Datums in der Zelle und ist damit zuverlässiger als .FIND, weil dieses nach den formatierten Zellwerten schaut, hier jedoch die Mischung aus internationalem (VBA) und landestypischen Zahlenformat (Excel) das ganze kompliziert werden lässt.
Row1 = Worksheetfunction.Match(ThisWorkbook.Sheets("Daten").Range("E2").Value, Workbooks("Rohdaten.xlsx").Sheets("Zeiten").Range("B4:B1988"), 0) + 3
steht in E2 kein echtes Exceldatum sondern ein Text, solltest du mit CLng(CDate(...)) wandeln.
Gruß Daniel

Anzeige
AW: Datums suche mittels VBA
13.04.2015 16:10:32
Ralf
Hallo Daniel,
danke für deine schnelle Antwort.
zumindest kommt jetzt nicht der Fehler sondern:
Laufzeitfehler '1004':
Die Match-Eigenschaft des WorksheetFunction-Objektes kann nicht zugeordnet werden.
Diese Fehlermeldung kommt auch wenn das Datum unter der vorherigen Grenze vom 10.10.15 liegt :)
Das Datum in E2 ist als Datum auch eingegeben und als solches auch formatiert.

AW: Datums suche mittels VBA
13.04.2015 16:24:53
Daniel
Hi
ist jetzt schwer für mich, die Fehlerursache zu bestimmen, weil ich deine Dateien und die Daten nicht kenne.
Was in E2 steht, hast du mir gesagt, aber ich sollte ja auch wissen, was genau in den Rohdaten Spalte B steht, denn das muss ja zueinander passen.
gruß Daniel

Anzeige
AW: Datums suche mittels VBA
13.04.2015 16:28:24
Ralf
Hi,
in der Steht in den ersten 3 Zeilen nur das Jahr (Zellen verbunden), und dann in B4:
=DATUM($A$1;1;1)

in allen Zeilen dadrunter dann:
=B4+1

bzw. B5+1 B6+1 usw. halt kopierbar nach unten...
Und das halt momentan für das Jahr 2015 welches in A1:C3 steht
Danke und LG
Ralf

AW: Datums suche mittels VBA
13.04.2015 16:42:08
Daniel
dann sollte es funktioniern.
Aber wenn du lückenlos für jeden Tag eine Zeile hast, dann brauchst du nichts suchen.
Die Zeilennummer kannst du dann berechenn mit:
=Gesuchtes Datum - Datum 1.1.DesJahres + ZeilenNummer des 1.1. (hier die 4)

das geht, weil ein Datum für Excel eine Ganzzahl ist, die jeden Tag um 1 hochgezählt wird.
Gruß Daniel

Anzeige
AW: Datums suche mittels VBA
13.04.2015 16:52:31
Ralf
Hallo Daniel,
ich hab das deswegen so gemacht da ich in einer Matrix aus Datum und Zeit etwas eintragen muss.
Daher habe ich zwei .Find, einmal für Spalte einmal für Zeile.
Stimmt auf die Methode bin ich gar nicht gekommen, Wald und Bäume und so...
Der weg klappt jetzt, ich frag mich nur, wieso das andere nur ab einem Datum nicht klappt, sind die Daten vll zu hoch? aber das kann ja nicht der Grund sein oder?
LG
Ralf

AW: Datums suche mittels VBA
13.04.2015 17:10:01
Ralf
Danke nochmals an die schnelle Hilfe,
Fehlersuche wird wohl nicht möglich sein, daher kann dieses Thema geschlossen werden (falls hier möglich).
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige