Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

Range.Find funktioniert nicht mit Datum. (oder mit Zahlen)

Forumthread: Range.Find funktioniert nicht mit Datum. (oder mit Zahlen)

Range.Find funktioniert nicht mit Datum. (oder mit Zahlen)
13.04.2026 18:14:25
Klexy
Excel ist immer wieder für ein paar graue Haare gut.
Ich hab die Lösung gefunden zu einem absolut absurden Problem (das vielleicht keiner außer mir hat).
Ich hab eine Tabelle, die als Spaltenkopf ein Datum (TTT, TT.MM.JJJJ) hat und viele Spalten breit ist. In den Spalten steht nur x oder nix. Um die Tabelle handlicher zu gestalten, die Spalten schmaler zu machen und mehrere Wochen gleichzeitig am Bildschirm zu haben, hab ich den Spaltenkopf in der Ausrichtung um 90° gedreht.
Jetzt will ich per Range.Find die Spalte von einem bestimmten Tag finden.
Sollte gehen, geht aber nicht.

Warum nicht? Weil um 90° gedreht.
Funktioniert auch mit normalen Zahlen nicht.
Es sei denn, die Spalte ist so breit, dass das Datum (oder die Zahl) sowieso quer darin Platz haben würde (in der entsprechenden Schriftart und Schriftgröße). Damit wäre der Platzgewinn beim Teufel.

Hausfrauenlösung:
Oberhalb der eigentlichen Kopfzeile hab ich eine Hilfszeile eingefügt, in der =A2 usw. steht, und zwar in Schriftgröße 1. Diese Hilfszeile ist als Ganzzahl formatiert (um sie so kurz wie möglich zu halten) und ich such jetzt in dieser Zeile nach CLng(Suchdatum).

P.S.
Das alles funktioniert übrigens auch mit dem manuellen Strg+F nicht, bzw. nur unter den genannten Bedingungen:
- Spalte muss so breit sein, dass die Zahl sowieso quer reinpassen würde.
- Wenn die Zahl als Schweinegatter angezeigt wird (Spalte zu schmal) geht es auch nicht.
Anzeige

19
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Finde Datum
13.04.2026 18:43:02
UweD
Hallo

Userbild
entweder so:
Sub FindeDat()

Dim Datum As Date, SP As Integer

'Für Test
Datum = "19.05.2026"

SP = Rows("1:1").Find(What:=Datum, LookIn:=xlFormulas2 _
, LookAt:=xlPart).Column

End Sub

oder:
SP = Rows("1:1").Find(What:=CDate(Datum)).Column




LG UweD
Anzeige
Methoden um Datum zu finden.
13.04.2026 18:49:51
Alwin Weisangler
Hallo Klexy,

das wird schon funktionieren, wenn man es richtig anstellt. Die Methode .find ist etwas speziell.

Besser und zielsicher geht es mit Application.Match. Da muss du nur beachten, dass da Datumszahlen verglichen werden. ggf braucht es Clng() um ans Ziel zu kommen.


Sub MethodeFind()
With Tabelle1
.Cells(6, 4) = .Rows(1).Find(DateSerial(Year(.Cells(6, 2)), Month(.Cells(6, 2)), Day(.Cells(6, 2))), , -4163).Address
End With
End Sub

Sub SucheMatch()
With Tabelle1
.Cells(6, 4) = "$A$" & Application.Match(CLng(.Cells(6, 2)), .Rows(1), 0)
End With
End Sub

Beispieldatei klappt momentan nicht. Da werden die Zugangsdaten verweigert. Das streikt gerade irgendwas.

Gruß Uwe
Anzeige
Also bei mir...
13.04.2026 19:18:58
Case
Moin Uwe, :-)

... hat der Upload auch nicht funktioniert - aber nur mit dem Firefox. Hatte Hans kontaktiert. Er konnte es nicht nachvollziehen. Mit dem Edge ging es dann. Habe den "Fehler" noch nicht gefunden. Gestern konnte ich noch hochladen. War auch kein Firefox-Update dazwischen. ;-)

Servus
Case
Anzeige
Upload nicht möglich
13.04.2026 19:23:12
Onur
MELDUNG:
Upload nicht möglich
Es wurden keine übereinstimmenden Zugangsdaten gefunden.
Anzeige
Probleme beim Datei-Upload
14.04.2026 12:01:51
Hans Werner Herber
Hallo,

ich konnte das Problem des Uploads bei meinen Tests- mit verschiedenen Browsern - nicht reproduzieren.
Vermutlich liegt es daran, dass es bei der automatischen Vorausfüllung des Formulars zu falschen Datenübernahmen kommt. In diesem Fall bitte die Vorausfüllung mit den korrekten Daten überschreiben. Beim nächsten Aufruf sollte der Browser die richtigen Zugangsdaten liefern.

Gruß hans
Anzeige
Habe nun...
14.04.2026 21:04:37
Case
Moin Hans, :-)

... im FireFox in den Einstellungen das Cookie von "Herber" gelöscht. Dann müssen die Daten ja neu eingegeben werden - klappt. Nur überschreiben hat - zumindest bei mir - nicht gereicht. ;-)

Servus
Case
Betreff
14.04.2026 21:14:24
Onur
Und ich muss neuerdings immer den Betreff neu eintippen....
Anzeige
Betreff-Vorgabe
15.04.2026 01:17:03
Hans Werner Herber
... Problem erkannt, danke für die Info, wird morgen korrigiert.

Gruß hans
Datei-Upload
15.04.2026 01:14:35
Hans Werner Herber
... dann gehe ich davon aus, das sich diese Problem erledigt hat.

Gruß hans
Range.Find funktioniert nicht mit Datum. (oder mit Zahlen)
13.04.2026 19:17:58
daniel
Hi
die Suchfunktion von Excel sucht mit der Einstellung Lookin:=xlvalues immer in den Formatierten Werten, also so, wie sie in der Zelle angezeigt werden.
da wird auch die Spaltenbreite berücksichtigt.
Dh. wenn du bswp in einer Zelle die Zahl PI hast und du machst die Spalte so breit, dass nur 2 Nachkommastellen angezeigt werden, dann musst du nach 3,14 suchen, um mit der Einstellung: "in Werten, gesamten Zellinhalt vergleichen" einen Treffer zu bekommen.
Vermutlich haben sich Programmierer bei Mikrosoft den Aufwand gespart, bei der Spaltenbreite auch noch eine eventuelle Schrägstellung zu berücksichtigen.
ist ärgerlich, aber ist halt so.

wenn du in den Unformatierten Werten suchen willst, hast du folgende Möglichkeiten:
a) wenn die Werte von Hand geschrieben sind, suche in LookIn:=xlformulas. das sind die unformatierten Zellwerte und du würdest dir damit die zusätzliche Zeile sparen. Sind die Werte jedoch per Formel erstellt, dann geht's so natürlich nicht.
b) wenn die Werte nur in einer Zeile oder in einer Spalte stehen, dann kannst du auch mit der Vergleichsfunktion bzw in VBA mit Application.Match suchen.
das sucht ebenfalls in den unformatierten Zellwerten, aber es kann nur eine Zeile oder Spalte aber keine rechteckigen Zellbereiche durchsuchen.
Außerdem hast du bei Application.Match noch eine sehr schnelle Variante für sie Suche in sortierten Werten. das ist bei langen Listen mit vielen Berechnungen schon recht nützlich, um die Sache zu beschleunigen, bei einem Kalender mit vergleichsweise wenig Daten wird das aber selten spürbar.
c) in einem Regelmäßigen Kalender, dh alle Datumswerte kommen vor, sind aufsteigend sortiert und haben immer den gleichen Abstand, bin ich inzwischen dazu übergegangen, die Zielzelle zu berechnen nach dem Schema: Zielspalte = Startspalte + (Zieldatum - Startdatum) * Spaltenabstand

Gruß Daniel
Anzeige
Danke nochmal extra
13.04.2026 20:51:15
Klexy
Deinen Beitrag hab ich erst jetzt gesehen.
Die Datume sind leider nicht fortlaufend. Die Wochenenden sind nicht da.
Und ja, die Datume werden per Formel berechnet. Deshalb ging LookIn:=xlFormulas nicht (hatte ich nicht daran gedacht).
LookIn:=xlFormulas geht unabhängig von der Spaltenbreite und sogar wenn die Zahl aks Schweinegatter angezeigt wird.
Anzeige
Antwort an alle
13.04.2026 20:41:16
Klexy
Danke an alle.
Ich hab die verschiedenen Methoden in die angehängte Datei zusammengefasst.
Es ist wieder mal so, dass Excel 2019 anders reagiert als Excel 365.

https://www.herber.de/bbs/user/180538.xlsm
Siehe detaillierte Beurteilungen dort im Code

And the winner is:
- Alwin mit Match. Funktioniert unabhängig von der Spaltenbreite in Excel 2019 und 365
- Dass es auch so knapp wie bei UweD geht (Beispiel 4 und 5 im Code) , hätte ich nicht zu träumen gewagt.

Anzeige
Kurz oder genau
15.04.2026 16:51:18
GerdL
Moin

weil sicher ist, dass nichts sichert ist.

Bei der Find-Methode empfehle ich, den Range auf Nothing zu prüfen, bei Match den Rückgabewert mit Isnumeric oder Iserror.

Gruß Gerd
Wird wohl an deinem Code liegen
13.04.2026 18:49:22
Onur
Wird wohl an deinem Code liegen und nicht an Excel, aber da du ja die Datei nicht gepostet hast......
Anzeige
INT <> Date
15.04.2026 14:54:59
Marc

Zum ein SP ist eine Integer Zahl, du suchst nach einem Datum



Sub FindeDat()
Dim Datum As Date, SP As Integer

'Für Test
Datum = "19.05.2026"

SP = Rows("1:1").Find(What:=Datum, LookIn:=xlFormulas2 _
, LookAt:=xlPart).Column

End Sub


Zudem, für mich jetzt problematisch, ob für dein Excel genau, weiß ich nicht..
Aber

Rows("1:1").Find(What:=Datum, LookIn:=xlFormulas2 _

, LookAt:=xlPart).Column


gibt für mich gerade logisch nicht an, in welcher Tabelle er suchen soll..
in der aktiven, in einer bestimmten (nicht aktiven) Tabelle ?

Wenn er in einer bestimmten Tabelle suchen soll, sollte diese zumindest immer aktiviert sein, damit er die richtige durchsucht..
Anzeige
Anzeige
Anzeige
Live-Forum - Die aktuellen Beiträge
Datum
Titel
14.05.2026 13:31:09
14.05.2026 09:50:42
13.05.2026 19:14:18