Anzeige
Archiv - Navigation
1112to1116
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
Datum mit FIND finden
{Boris}
Hi Leute,
ich bekomm grad mal wieder die Krise, ein per Formel ermitteltes Datum mit der Find-Methode in einer Spalte zu finden.
C5: 01.01.2010
C6: =C5+1 und runterkopiert.
Das zu suchende Datum übergebe ich aus einem Calendar-Steuerelement im Datentyp Date.
Aber egal, wonach ich mit Range("C5:C400").Find(...).Row suche:
Datum
CLng(Datum)
und worin:
lookin:=xlformulas
lookin:=xlvalues
Immer kommt: Laufzeitfehler 1004: Die Find-Eigenschaft kann nicht zugeordnet werden.
Wie kann ich das Datum zuverlässig aufspüren? Es ist definitiv im Suchbereich vorhanden. Die Zellinhalte sind auch nicht über die Schutzoption ausgeblendet.
Danke und Grüße
Boris

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

Betreff
Benutzer
Anzeige
AW: Datum mit FIND finden
06.11.2009 13:26:24
Rudi
Hallo,
also das klappt bei mir einwandfrei:
Private Sub CommandButton1_Click()
Dim dte As Date, r As Range
dte = Calendar1
Set r = Columns(3).Find(dte, LookIn:=xlValues, lookat:=xlWhole)
MsgBox r.Address
End Sub

Gruß
Rudi
AW: Datum mit FIND finden
06.11.2009 13:33:21
Luschi
Hallo Rudi,
stimmt, so klappt es auch bei mir. Wenn man sich allerdings auf den Eintrag in der verknüften Zelle verläßt,
muß es es so machen wie in meinem Beispiel. Denn in der Zelle steht der Datumswert als Text.
Man kann immer wieder nur staunen, welche Fallstricke so herumliegen.
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Datum mit FIND finden
06.11.2009 13:27:25
hary
Hallo Boris
Hab hier Excel ohne Calendersteuerelement. aber so funzt es mit Inputbox. In C1 steht volle Datum, ab C2 (0C1+1) usw.Hilft Dir vieleicht weiter.

Sub n()
Dim zelles As Range
Dim bereichs As Range
Dim datum As Date
datum = InputBox("Datum eingeben")
Set bereichs = Sheets("Tabelle1").Range("C1:C100")
Set zelles = bereichs.Find(what:=datum, lookat:=xlWhole, LookIn:=xlValues)
If zelles Is Nothing Then
MsgBox "Datum nicht gefunden"
Else
MsgBox "Datum befindt sich in Zelle" & zelles.Address
End If
End Sub

AW: Datum mit FIND finden
06.11.2009 13:27:48
Luschi
Hallo Boris,
Habe das mal nachgebaut mit dem Calender-Steuerelement, und bei mir klappt das so:

Dim rg1 As Range, rg2 As Range, rg3 As Range
Set rg1 = ActiveSheet.Range("E5") 'verknüpfte Zelle vom Cal.-Steuerelement
MsgBox VarType(rg1.Value)   '8 --> String
Set rg2 = ActiveSheet.Range("C5:C25")
Set rg3 = rg2.Find(CDate(rg1.Value), , xlValues, xlWhole, xlByRows, xlNext)
If Not rg3 Is Nothing Then
MsgBox rg3.Value & vbCrLf & rg3.Address
End If
Set rg1 = Nothing
Set rg2 = Nothing
Set rg3 = Nothing
Gruß von Luschi
aus klein-Paris
Anzeige
Application.Match über Zellbereich...
06.11.2009 14:22:03
Tino
Hallo,
hier eine Möglichkeit ein Datum in einem Zellbereich sicher zu finden.
Option Explicit

Sub Match_Ueber_Zellbereich(Bereich As Range, SuchWert As Variant)
Dim rZellen As Range
Dim LCol As Long, tempCol As Long
Dim varRow

With Sheets(Bereich.Parent.Name)
    For LCol = 1 To Bereich.Columns.Count
       tempCol = 1
       Do While IsNumeric(varRow)
            varRow = Application.Match(SuchWert, Bereich.Columns(LCol).Range(.Cells(tempCol, 1), .Cells(Bereich.Rows.Count, 1)), 0)
               If IsNumeric(varRow) Then
                  If rZellen Is Nothing Then
                   Set rZellen = Bereich(varRow + tempCol - 1, LCol)
                   tempCol = tempCol + varRow
                  Else
                   Set rZellen = Union(rZellen, Bereich(varRow + tempCol - 1, LCol))
                   tempCol = tempCol + varRow
                  End If
               End If
       Loop
    
       varRow = 0
    Next LCol
End With

If Not rZellen Is Nothing Then
 Set Bereich = rZellen
Else
 Set Bereich = Nothing
End If

End Sub

Sub BeispielVerwendung()
Dim ErgebisZellen As Range, vSuchwert

'Suchwert nur ein Teil eines Wortes Platzhalter verwenden Bsp. "Apfel*" 
vSuchwert = CLng(Date)

'Suchbereich 
Set ErgebisZellen = Tabelle1.Range("A1:Z100")

Match_Ueber_Zellbereich ErgebisZellen, vSuchwert

If Not ErgebisZellen Is Nothing Then
 MsgBox "Suchwert '" & vSuchwert & "' wurde in den Zellen " & ErgebisZellen.Address & " gefunden"
Else
 MsgBox "nix gefunden"
End If
End Sub

Gruß Tino
Anzeige
Danke an alle...
06.11.2009 16:16:59
{Boris}
Hi zusammen,
...die Aussage, dass es bei Euch allen funktioniert, hat mir die Erleuchtung gebracht: Das Naheliegenste hatte ich übersehen: Ohne Umwandlung (CLng) in den xlValues suchen.
Problem erledigt!
Besten Dank an alle!
Grüße Boris

43 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige