Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1536to1540
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

.find findet nicht, außer nach VBE Pause & Reset

.find findet nicht, außer nach VBE Pause & Reset
02.02.2017 11:26:00
Lisa
Hallo Excelgemeinde,
ich sitze seit ungefähr einer Woche vor folgendem Problem:

Public Sub HourCounting(auftraegeVar As Variant)
Dim indices As Range
Dim startrow As Integer, endrow As Integer
Dim startDate As String, endDate As String
'Do stuff that works
' Get start and end month in which to look for names
startDate = Worksheets("Main").cmbPastDate.Value
endDate = Worksheets("Main").cmbCurrentDate.Value
' Get start and end month in which to look for names
startDate = CDate(Worksheets("Main").cmbPastDate.Value)
endDate = CDate(Worksheets("Main").cmbCurrentDate.Value)
' ------------------- Search in all the workbooks for names, orders and months ----------------- _
_
_
For i = 1 To UBound(auftraegeVar, 1)
' Adopt range to be looked in for each order according to user specified months
If Worksheets(auftraegeVar(i)).Range("A:A").Find(what:=startDate, LookIn:=xlValues, LookAt:= _
_
_
xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False)  _
_
Is Nothing Then
startrow = 0
Else
startrow = Worksheets(auftraegeVar(i)).Range("A:A").Find(what:=startDate, LookIn:= _
xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False,  _
SearchFormat:=False).row
End If
If Worksheets(auftraegeVar(i)).Range("A:A").Find(what:=endDate, LookIn:=xlValues, LookAt:=   _
_
_
xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False)  _
_
Is Nothing Then
endrow = 0
Else
endrow = Worksheets(auftraegeVar(i)).Range("A:A").Find(what:=endDate, LookIn:=xlValues,  _
_
_
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat: _
_
=False).row
End If
' Do stuff in Loops that works
Next i
End Sub

In diesem Makro läuft eigentlich alles wunderbar, außer der Tatsache, dass er für
Worksheets(auftraegeVar(i)).Range("A:A").Find(what:=endDate, LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False)
Nothing zurückgibt, also nicht findet (selbiges auch mit .Find(What:=startDate)). Außer, wenn man im VBE manuell alle Makros pausiert und resetted. Danach läuft alles tadellos. Ich habe bereits alle anderen Makros die im Hintergrund laufen könnten eliminiert und überprüft ob alle Variablen für die .find Funktion Werte liefern, was sie auch tun.
Jetzt ist die Frage, was läuft falsch, dass ich immer erst pausieren und dann resetten muss? (Was an sich ja nciht sooo schlimm wäre, wenn es dabei nicht immer automatisch den VBE öffnen würde)

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: .find findet nicht, außer nach VBE Pause & Reset
02.02.2017 11:46:52
Luschi
Hallo Lisa,
benutze statt bei der Suche nach Datumswerten
LookIn:=xlFormulas statt LookIn:=xlValues
besonders dann, wenn die Formate der durchsuchten Zelllen anders sind als die Zelle/Variable des Suchwertes.
Beispiel:
Zelle mit dem heutigen Datum: Donnerstag, 2. Februar 2017
Zelle mit dem Suchwert: 02.04.2017
Gruß von Luschi
aus klein-Paris
AW: .find findet nicht, außer nach VBE Pause & Reset
02.02.2017 12:42:12
Lisa
Hallo Luschi, danke für die schnelle Antwort.
startDate und endDate sind Strings der Form MMM YY. In der durchsuchten Spalte stehen Formeln, welche in Abhängigkeit zu zwei anderen Zellen den ersten eines Monats ausgeben. Dieses Datum wird dann ebenso in die Form MMM YY formatiert. Wenn ich jetzt also in Formeln suche findet er leider gar nichts mehr, selbst nach Pause und Reset :(
Anzeige
AW: .find findet nicht, außer nach VBE Pause & Reset
02.02.2017 15:48:27
Luschi
Hallo Lisa,
das kann so natürlich nicht funktionieren - der Suchwert ist Text und die Werte selbst sind vom Typ Datum.
Ich nehme ja an, daß Du alle Werte finden willst, die in einem bestimmten Monat des Jahres liegen.
In diesem Fall würde ich mit einer Hilfsspalte arbeiten die so erstellt wurde: =TEXT(B2;"MM JJ") usw., wenn in Spalte 'B' ab Zeile 2 die eigentlichem Datumswerte stehen.
Dann kannst Du die Find-Funktion auf die Hilfsspalte anwenden, diesmal aber wieder mit ' LookIn:=xlValues', obwohl die Zellen selbst ja Formeln enthalten.
Gruß von Luschi
aus klein-Paris
PS: Du darfst aber die Hilfsspalte nicht ausblenden, da '*Find' nicht in ausgeblendeten Zellen sucht; aber bei einer Spaltenbreite von 0,05 noch funktioniert (0,025 und schmaler ist dann schon zuviel des Guten und 'Find' streikt!)
Anzeige
AW: .find findet nicht, außer nach VBE Pause & Reset
02.02.2017 16:45:58
Lisa
Hallo Luschi, Danke für die Hilfe - ich habe die Text Funktion einfach um die Formel gepackt. Danke für die schnelle Hilfe. Jetzt funktioniert alles. ... Das passiert wenn man Projekte von Kollegen übernimmt... *seufz*
AW: .find findet nicht, außer nach VBE Pause & Reset
02.02.2017 11:50:52
Lisa
Hallo Luschi, danke für die schnelle Antwort.
startDate und endDate sind Strings der Form MMM YY. In der durchsuchten Spalte stehen Formeln, welche in Abhängigkeit zu zwei anderen Zellen den ersten eines Monats ausgeben. Dieses Datum wird dann ebenso in die Form MMM YY formatiert. Wenn ich jetzt also in Formeln suche findet er leider gar nichts mehr, selbst nach Pause und Reset :(
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige