Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
768to772
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
768to772
768to772
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
nach einem Datum suchen
06.06.2006 20:58:23
Sophie
Hallo erstmal,
hab mir ein kleines Programm umgeschrieben wie folgt.

Sub Suchen
Dim Anfangsdatum as Date, Enddatum as Date
Dim A as Integer,E as Integer
Anfangsdatum= "02.05.06"
Enddatum="07.05.06"
A=Range("A:A").Find(Anfangsdatum).Row
E=Range("A:A").Find(Enddatum).Row
End Sub

bekam dann leider einen
Laufzeitfehler '91':Objektvariable oder With-Blockvariable nicht festgelegt.
Wenn ich anstatt dem Datum ein Wort suche, funktioniert dieses wunderbar.
Weiß mir einer von Euch Rat, was ich hier falsch mache?
Die Excel-Datei die ich durchsuchen will, enthält viele Daten.
In der Spalte A stehen immer die Datumwerte drinn, nachdem ich dann suchen möchte. Benötige ein vorgegebenes Anfangsdatum und Enddatum das gefunden(Zeile) werden muß.
Schönen Gruß
Sophie

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

Betreff
Datum
Anwender
Anzeige
AW: nach einem Datum suchen
06.06.2006 21:15:49
Ramses
Hallo
der Fehler tritt auf, wenn der Suchbegriff nicht im bezeichneten Bereich gefunden werden kann.
Der Fehler kann daher auftreten:
1. Wenn der Begriff tatsächnlich nicht vorhanden ist
2. Wenn die Variable falsch deklariert ist und nicht als Datum erkannt wird
Probiers mal so
Option Explicit

Sub Suchen()
    Dim Anfangsdatum As Date, Enddatum As Date
    Dim A As Integer, E As Integer
    Anfangsdatum = DateValue("05.05.06")
    Enddatum = DateValue("07.05.06")
    A = Range("A:A").Find(Anfangsdatum).Row
    E = Range("A:A").Find(Enddatum).Row
End Sub

oder mit Fehlerbehandlung
Option Explicit

Sub Suchen()
    Dim Anfangsdatum As Date, Enddatum As Date
    Dim A As Integer, E As Integer
    Anfangsdatum = DateValue("05.05.06")
    Enddatum = DateValue("07.05.06")
    On Error Resume Next
    A = Range("A:A").Find(Anfangsdatum).Row
    E = Range("A:A").Find(Enddatum).Row
    If A = 0 Then
        MsgBox "Das Datum """ & Anfangsdatum & """ kann nicht gefunden werden"
        Exit Sub
    End If
    If E = 0 Then
        MsgBox "Das Datum """ & Enddatum & """ kann nicht gefunden werden"
        Exit Sub
    End If
    On Error GoTo 0
End Sub

Gruss Rainer
Anzeige
AW: nach einem Datum suchen
06.06.2006 21:59:48
Gerd
Hallo Sophie,
kurze Antwort: In Spalte "A" fehlt eines der beiden Dati oder diese(s)
ist/sind zwar vorhanden. Wegen der Zahlenformate der Zellen werden diese
nicht als gesuchtes Datum "erkannt".
Ansonsten: Die Find-Methode sucht nicht die betreffende Zeile,
sondern das Range-Objekt (Zelle) mit dem Suchbegriff.
Um den 'Fehler' "Nix gefunden" zu behandeln, benötigst Du etwas mehr Code.
Option Explicit

Sub Suchen()
Dim Anfangsdatum As Date, Enddatum As Date
Dim A As Integer, E As Integer
Dim objA As Object, objE As Object
Anfangsdatum = "02.05.06"
Enddatum = "07.05.06"
Set objA = Range("A:A").Find(Anfangsdatum)
Set objE = Range("A:A").Find(Enddatum)
If Not objA Is Nothing Then
A = objA.Row
End If
If Not objE Is Nothing Then
E = objE.Row
End If
If objA Is Nothing Then MsgBox "Anfangsdatum " & Anfangsdatum & " nicht gefunden!"
If objE Is Nothing Then MsgBox "Enddatum " & Enddatum & " nicht gefunden!"
Msgbox A
Msgbox E
End Sub

Gruß
Gerd
Anzeige
AW: nach einem Datum suchen
06.06.2006 22:03:50
Ramses
Hallo
"...Ansonsten: Die Find-Methode sucht nicht die betreffende Zeile,..."
Wo steht das ;-) ?
Gruss Rainer
AW: nach einem Datum suchen
06.06.2006 22:26:01
Sophie
Hallo Rainer, Hallo Gerd,
vielen Dank für Eure Hilfe, klappt beides sehr gut.
Das Problem lag wirklich daran, daß das gesuchte Anfangsdatum in der Datei falsch eingegeben wurde(falsches Jahr, anstatt 2006 wurde 2004 eingegeben)somit gar nicht gefunden werden konnte.
Gruss
Sophie
AW: nach einem Datum suchen
06.06.2006 22:58:47
Gerd
Hallo Rainer,
ich habe mal wieder den Fehler begangen, vor meiner Antwort nicht nochmal
"reinzuschauen". Mein Thread war also keine Erwiderung auf deinen Beitrag.
"Wo steht das?", dass bei der Suche mit der Find-Methode in einer Spalte keine Zeilennummer zurückgegeben wird? Weshalb dann die Kombination mit ".Row" ?
Nun ich denke, dass ich in diesem Punkt die VBA-Hilfe schon verstanden habe.
..... :)
Gruß
Gerd
Anzeige
AW: nach einem Datum suchen
07.06.2006 08:19:36
Ramses
Hallo
probier mal meinen Code aus.
".Row" wird sogar von Intellisense im VB-Editor vorgeschlagen ;-)
Gruss Rainer
AW: nach einem Datum suchen
07.06.2006 23:06:15
Gerd
Guten Abend Rainer,
O.K.
Bliebe noch die Frage, weshalb bei der Konstellation von Sophie
der Rückgabewert für die Integervariable nicht 0 war, sondern
ein Error auftrat.
Möglicherweise weil die Zeilennummer nur mittelbar
über das Range-Objekt ermittelt wird u. letzteres halt fehlte ?
Gruß
Gerd

311 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige