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

Suchfunktion

Suchfunktion
08.03.2009 17:13:14
Lena
Hallo...
ich möchte per Suchfunktion die Uhrzeit 00:00 finden, Es werden aber alle anderen Uhrzeiten mit :00 (z.B. 20:00) auch gefunden. Wie muß ich vorgehen, dass der korrekte Suchewert gefunden wird?
Danke für eure Hilfe.
Gruß
Lena

22
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Suchfunktion= 00:00:00 owT
08.03.2009 17:20:18
robert
AW: Suchfunktion
08.03.2009 17:22:39
Daniel
Hi
die Uhrzeit besteht in Excel aus Stunden, Minuten UND Sekunden, auch wenn die Sekunden nicht immer angezeigt werden, steht z.B. 13:00 als 13:00:00 im Speicher.
dh du müsstest korrekterweise nach 00:00:00 suchen.
Gruß, Daniel
AW: Suchfunktion
08.03.2009 17:44:25
Lena
Hallo Daniel,
über die Suchfunktion geht es schon so, aber wenn man das ganze als Makro aufnimmt und dann den Makro startet, wird gar nichts gefunden. (Hab es mit 00:00 u. 16:00 probiert)
Gruß
Lena
AW: Suchfunktion
08.03.2009 17:45:44
Lena
Hallo Daniel,
über die Suchfunktion geht es schon so, aber wenn man das ganze als Makro aufnimmt und dann den Makro startet, wird gar nichts gefunden. (Hab es mit 00:00 u. 16:00 probiert)
Gruß
Lena
Anzeige
AW: Excel hat so seine Probleme mit Werten
08.03.2009 18:10:12
Daniel
im Zahlen- und Datumsformat.
das einzige, was mir grade als Makrolösung einfallen würde, wäre folgendes:
- das Zahlenformat im Suchberich auf "Standard" stellen
- nach dem Wert 0 suchen
- das Zahlenformat wieder auf "Uhrzeit" stellen.
das könnte als Makro so aussehen:

Sub test()
With Range("C:C")
.NumberFormat = ""
.Find(what:=0, LookIn:=xlValues, lookat:=xlWhole).Select
.NumberFormat = "hh:mm"
End With
End Su


Gruß, Daniel

AW: Suchfunktion
08.03.2009 17:52:05
Tino
Hallo,
etwas besseres finde ich nicht, dass erste vorkommen wird ausgegeben.
Sub FindeMitternacht()

Dim ZellBereich As Range, FZelle As Range
Dim MyAr
Dim A As Long, B As Long

Set ZellBereich = Range("A1:C1000") 'Suchbereich anpassen 
MyAr = ZellBereich

For A = 1 To Ubound(MyAr)
 For B = 1 To Ubound(MyAr, 2)
  If MyAr(A, B) Mod 2 = 1 Then Set FZelle = ZellBereich(A, B): Exit For
 Next B
Next A

If Not FZelle Is Nothing Then
 MsgBox FZelle.Address & " Wert: " & FZelle.Text
End If

End Sub


Gruß Tino

Anzeige
AW: Suchfunktion
08.03.2009 18:08:32
Lena
Hallo Tino,
danke erst mal. Der Wert der per Fensterchen ausgegeben wird ist aber z.B. 16:00, nicht 00:00.
Allerdings nützt mir diese Sache, glaube ich nicht viel, weil ich die aufgenommene Suchen/Ersetzen-Funktion lieber abspielen möchte. Aber eben das klappt nicht.
Gruß
Lena
habe es auch germerkt
08.03.2009 18:15:28
Tino
Hallo,
habe gerade gemerkt, dass die Mod Funktion nicht so richtig klappt, habe es jetzt so gelöst.
Sub FindeMitternacht()

Dim ZellBereich As Range, FZelle As Range
Dim MyAr
Dim A As Long, B As Long

Set ZellBereich = Range("A1:A6") 'Suchbereich anpassen 
MyAr = ZellBereich

For A = 1 To Ubound(MyAr)
        
        For B = 1 To Ubound(MyAr, 2)
         If IsDate(MyAr(A, B)) Then
          If CDbl(MyAr(A, B)) - Int(CDbl(MyAr(A, B))) = 0 Then
           Set FZelle = ZellBereich(A, B): Exit For
          End If
         End If
        Next B
  
  If Not FZelle Is Nothing Then Exit For
Next A

If Not FZelle Is Nothing Then
 MsgBox FZelle.Address & " Wert: " & FZelle.Text
End If

End Sub


Gruß Tino

Anzeige
Makro von Peter Feustel...weiter unten -oT
08.03.2009 18:05:53
Peter

Public Sub FindenFaerben()
Dim WkSh     As Worksheet
Dim rBereich As Range
Dim rZelle   As Range
Dim sFundst  As String
Set WkSh = ThisWorkbook.Worksheets("Tabelle1")
With WkSh.Range("F:F") ', D:D, G:G, J:J, M:M")
Set rZelle = .Find(What:="00:00", LookAt:=xlPart, LookIn:=xlFormulas)
If Not rZelle Is Nothing Then
sFundst = rZelle.Address
Do
If rZelle.Value = 0 Then
.Cells(rZelle.Row, rZelle.Column).Font.ColorIndex = 3
End If
Set rZelle = .FindNext(rZelle)
Loop While Not rZelle Is Nothing And rZelle.Address  sFundst
Else
MsgBox "Der Begriff  ""00:00""  wurde nicht gefunden.", _
48, "   Hinweis für " & Application.UserName
End If
End With
End Sub


Anzeige
AW: Makro von Peter Feustel...weiter unten -oT
08.03.2009 18:16:58
Peter
Hallo,
ich finde die Findfunktion zu unflexibel, ist zu stark vom Format abhängig.
Gruß Tino
AW: aber es funktioniert....owT
08.03.2009 18:29:06
robert
bei mir funzt es nicht...
08.03.2009 18:38:38
Tino
Hallo,
, keine Meldung keine Farbe nichts. Makro läuft nur.
Userbild
Oder soll dies so sein?
Gruß Tino
AW: bei mir funzt es nicht...
08.03.2009 18:59:30
robert
hi Tino,
ok mit diesem format nicht, aber wenn es nur um zeitformat - 15:00:00, oder 00:00:00 geht
dann funzt es schon.
ist somit eine frage der anforderung....
gruß
robert
00:00:00 Uhr ist nicht immer gleich 0
08.03.2009 19:01:14
Tino
Hallo,
, daher funzt das alles nicht.
So gehst jetzt aber, getestet unter xl2003 u. 2007
Option Explicit
Sub FindeMitternacht()

Dim ZellBereich As Range, FZelle As Range
Dim MyAr
Dim A As Long, B As Long

Set ZellBereich = Range("A1:A1000") 'Suchbereich anpassen 
MyAr = ZellBereich

For A = 1 To Ubound(MyAr)
        
        For B = 1 To Ubound(MyAr, 2)
         If IsDate(MyAr(A, B)) Then
          If CDbl(MyAr(A, B)) - Int(CDbl(MyAr(A, B))) < 0.000003 Then
           Set FZelle = ZellBereich(A, B): Exit For
          End If
         End If
        Next B
  
  If Not FZelle Is Nothing Then Exit For
Next A

If Not FZelle Is Nothing Then
 MsgBox FZelle.Address & " Wert: " & FZelle.Text
End If

End Sub


Gruß Tino

Anzeige
Grund ist...
08.03.2009 19:18:48
Tino
Hallo,
..., die erste Sekunde nach Mitternacht ist in Excel erst bei einem Wert von ca. 0,00000578,
alles darunter Gilt als 00:00:00Uhr
 CD
9400:00:000,00000575
9500:00:000,00000576
9600:00:000,00000577
9700:00:010,00000578
9800:00:010,00000579
9900:00:010,0000058
10000:00:010,00000581

Formeln der Tabelle
ZelleFormel
C94=D95
C95=D96
C96=D97
C97=D98
C98=D99
C99=D100
C100=D101

Gruß Tino
Anzeige
AW: Grund ist...
08.03.2009 19:37:53
robert
hi Tino,
hier meine datei
ich will und kann mich mit dir nicht messen, ich versuche nur , auf einfachem weg eine lösung zu finden.
aber ich meine doch, dass es so funktioniert-siehe weiter unten antwort von lena
gruß
robert
https://www.herber.de/bbs/user/60106.xls
AW: Grund ist...
08.03.2009 19:53:46
Tino
Hallo,
so funktioniert es, nur halt eben so lang bis mir in den Sinn kommt dass Format zu ändern.
Für Dich kein Problem, einmal im Code anpassen fertig, aber wenn Du die Datei weitergeben musst und dieser froh ist das er den Rechner überhaupt angeschaltet bekommt, was macht der?
Gruß Tino
Anzeige
AW: Tino fragen... :-))), denn...
08.03.2009 20:01:39
robert
ich gehe davon aus, dass diese lösung nur für zeitberechnungen und NUR für diese
benötigt wird. wenn es anders ist, siehe betreff :-))
belassen wir es dabei-ok ?
gruß
robert
ok. oT.
08.03.2009 20:07:37
Tino
so müsste es eigendlich funzen...
08.03.2009 19:38:04
Tino
Hallo,
somit müsste dies eigendlich funzen.
Option Explicit
Sub FindeMitternacht()

Dim ZellBereich As Range, FZelle As Range
Dim MyAr
Dim A As Long, B As Long

Set ZellBereich = Range("A1:A1000") 'Suchbereich anpassen 
MyAr = ZellBereich

For A = 1 To Ubound(MyAr)
        
        For B = 1 To Ubound(MyAr, 2)
         If IsDate(MyAr(A, B)) Then
          If (CDbl(MyAr(A, B)) - Int(CDbl(MyAr(A, B)))) < 578 * 10 ^ -8 Then
           Set FZelle = ZellBereich(A, B): Exit For
          End If
         End If
        Next B
  
  If Not FZelle Is Nothing Then Exit For
Next A

If Not FZelle Is Nothing Then
 MsgBox FZelle.Address & " Wert: " & FZelle.Text
End If

End Sub


Gruß Tino

Anzeige
und hier für alles Zellen
08.03.2009 20:26:07
Tino
Hallo,
zum Schluß noch für allen Zellen im Suchbereich.
Sub FindeMitternacht()

Dim ZellBereich As Range, FZelle As Range
Dim A As Long, B As Long
Dim MyAr
Set ZellBereich = Range("A1:K10000") 'Suchbereich anpassen 
ZellBereich.Interior.ColorIndex = xlColorIndexNone
MyAr = ZellBereich

For A = 1 To Ubound(MyAr)
        For B = 1 To Ubound(MyAr, 2)
         If IsDate(MyAr(A, B)) Then
          If (CDbl(MyAr(A, B)) - Int(CDbl(MyAr(A, B)))) < 578 * 10 ^ -8 Then
            If FZelle Is Nothing Then
             Set FZelle = ZellBereich(A, B)
            Else
             Set FZelle = Union(FZelle, ZellBereich(A, B))
            End If
          End If
         End If
        Next B
Next A

If Not FZelle Is Nothing Then
 FZelle.Interior.ColorIndex = 3
End If

End Sub


Viel Spaß beim raussuchen. ;-)
Gruß Tino

Anzeige
AW: einmal karsten, einmal lena? owT
08.03.2009 19:44:42
robert

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige