online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon wolfram vom 09.04.2022, 13:39 Options

Lösung

VBA Find-Methode in Excel

Hallo!
Ich durchsuche per VBA eine Range, um eine Zelle mit bestimmten Inhalt zu finden:
x = Date + 5 + 5
Set c = Range("A1:D9").Find(x, LookIn:=xlValues)

so weit - so gut: die Zelle wird gefunden, wenn das richtige Datum enthalten ist (angezeigt als "19.04.2010")

Aber sowie ich das Datum in der Zelle irgendwie formatiere (aktuell brauche ich das Format "T.MMMM", also z.B "19.April"), so findet der Find-Befehl in keinem Fall die Zelle.

Ich habe schon (bestimmt nicht!) alles ausprobiert - ohne Erfolg. Aber irgendeine Möglichkeit muss es doch geben, um die Zelle zu finden! Bitte: Hilfe-Hilfe-Hilfe

Danke
Wolfram


Antwort schreiben

Antwort 1 von Massaraksch vom 10.04.2022, 00:31 Options

Hm, die Find-Methode scheint Probleme mit formatierten Zellen zu haben.

Nimm lieber eine For-Each-Schleife, z.B. so:
x = Date + 5 + 5
For Each c In Range("A1:D9")
    If c.Value = x Then MsgBox x & " in Zelle " & c.Address & " gefunden."
Next c
Das funktioniert bei mir (Excel 2003).

mfg, Massaraksch

Antwort 2 von Massaraksch vom 10.04.2022, 00:43 Options

Ergänzung: Kannst ja auch nach dem ersten Treffer abbrechen damit der Rest nicht mehr durchsucht wird.
For Each c In Range("A1:D9")
    If c.Value = x Then
        MsgBox x & " in Zelle " & c.Address & " gefunden."
        Exit Sub 'oder GoTo Sprungmarke
    End If
Next c

mfg, Massaraksch

Antwort 3 von nighty vom 10.04.2022, 06:50 Options

hi all ^^

welches format hat x
welches format hat c
welches format hat die findmethode mit gesetzten parametern

diese drei sollten das selbe format haben,was sie zur zeit aber nicht haben :-)))

gruss nighty

Antwort 4 von nighty vom 10.04.2022, 07:02 Options

hi all ^^

noch ein paar tips fuer unsere tuefftler :-))

der datumswert liegt als Double vor

CDbl() koennte bei einer eventuellen umwandlung hilfreich sein :-)

gruss nighty

Antwort 5 von nighty vom 10.04.2022, 20:11 OptionsLösung

Lösung
hi all ^^

:-)))

gruss nighty

der ansatz war zwar nicht schlecht,aber man kommt doch ohne dessen syntax aus musste ich feststellen o_o

besser so :-)

Sub DatumSuchen()
    Dim MeinDatum As Range
    Set MeinDatum = Cells.Find(What:=CDate(Format(Date + 5 + 5, "Short Date")), After:=Range("A1"), LookIn:=xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext)
    If Not MeinDatum Is Nothing Then
        Cells(MeinDatum.Row, MeinDatum.Column).Select
    End If
End Sub  

Ähnliche Themen

VBA Makro in Excel
aflk  01.12.2008 - 51 Hits - 1 Antwort

Find Funtion in VBA
wmei  02.03.2009 - 134 Hits - 6 Antworten

Excel VBA
Tonerl  27.04.2009 - 245 Hits - 7 Antworten

Excel (VBA) Mit 2 PC
Klapptnicht  20.07.2009 - 206 Hits - 5 Antworten

Excel/VBA Zeilenvergleich
Johannes94  30.12.2009 - 228 Hits - 5 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Mon Jan 26 09:21:55 2026