Saat dilimi aratma

Katılım
26 Ocak 2010
Mesajlar
22
Excel Vers. ve Dili
365
Altın Üyelik Bitiş Tarihi
07-08-2023
Merhaba arkadaşlar
Saat arama konusunda acil yardıma ihtiyacım var. Ekli tabloda iş yerimde sistemden çekmiş olduğum tarih ve saat bilgileri var. Tarih günlük değişmektedir, VBA'da find komutu ile saat aratmaktayım lakin aradığım saati bulmak yerine başka bir dilim çıkmakta karşıma. Örneğin, saat 13:00 arattırdığımda 12:13:00 AM gelmekte veya 21:00 arattırdığımda 12:21:00 AM gelmekte. Konu hakkında bana yardımcı olabilir misiniz? İstediğim saat dilimine Vba da nasıl ulaşabilirim
 

Ekli dosyalar

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Makroyla ilgili bir soru sormuşsunuz ama eklediğiniz dosya xlsx uzantılı, yani içinde makro ya da userform yok. Dolayısıyla dosyaya bakanlar bahsettiğiniz komuttaki sorunu inceleyemez ve doğrusunu gösteremezler. Dosyayı hatalı haliyle paylaşmanızı öneririm.
 
Katılım
26 Ocak 2010
Mesajlar
22
Excel Vers. ve Dili
365
Altın Üyelik Bitiş Tarihi
07-08-2023
Makrolu dosyayı ekledim. Teşekkür ederim
 

Ekli dosyalar

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Hücre formatınıza göre örnek olması açısından
C++:
    Aranan = "21:00"
    Aranacak = CDate(Aranan)
    With Range("A:A")
    .Find(Aranacak).Select
    End With
 
Katılım
26 Ocak 2010
Mesajlar
22
Excel Vers. ve Dili
365
Altın Üyelik Bitiş Tarihi
07-08-2023
Teşekkür ederim emeğiniz için.
06:00, 08:00, 10:00, 11:00 ve 16:00 saatlerini arattırdığımda "Run Time Error" hatası vermekte. Ayrıca 14:00 arattırdığımda ise 12:00:00 PM i buluyor. Net sonuçlar nasıl alabilirim?
 
Katılım
26 Ocak 2010
Mesajlar
22
Excel Vers. ve Dili
365
Altın Üyelik Bitiş Tarihi
07-08-2023
Ömer bey
Ayrıca eklemek istediğim bir konu daha var. Tablodaki saatler saat:dakika:saniye şeklindedir. İş yerinden çektiğim raporda saniye kısmı günlük değişmekte. Yani bugün çektiğim raporda saat 14:00:01 iken yarın 14:00:00 veya 14:00:02 olabiliyor. Kodlar ile arama yaparken saniyeyi gözetmeden sadece saat ve dakikayı dikkate aldırabilir miyiz?
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Üç ayrı kod veriyorum. İnceleyin lütfen
C++:
Sub deneme()
    Dim Dict As Object, Bak As Date
    Set Dict = CreateObject("Scripting.Dictionary")
    arr = Range("A2:A" & Range("A" & Rows.Count).End(3).Row).Value
    For i = LBound(arr) To UBound(arr)
        Bak = TimeSerial(Hour(arr(i, 1)), Minute(arr(i, 1)), 0)
        If Not Dict.Exists(Bak) Then
            Dict.Add Bak, i + 1
        End If
    Next i
    Aranan = "06:00"
    Ara = TimeSerial(Left(Aranan, InStr(1, Aranan, ":") - 1), Right(Aranan, Len(Aranan) - InStr(1, Aranan, ":")), 0)
    If Dict.Exists(Ara) Then
        Range("A" & Dict(Ara)).Select
    Else
        MsgBox "Saat yok"
    End If
End Sub

Sub Alternatif1()
    'Verileriniz 00:00 dan 23:59 a kadar her dakika başı geliyorsa
    Aranan = "23:00"
    Satır = Left(Aranan, InStr(1, Aranan, ":") - 1) * 60 + Right(Aranan, Len(Aranan) - InStr(1, Aranan, ":")) + 2
    Range("A" & Satır).Select
End Sub

Sub Alternatif2()
    'Verileriniz 00:00 dan 23:59 a kadar her dakika başı geliyorsa
    Aranan = "23:07"
    Satır = Split(Aranan, ":")(0) * 60 + Split(Aranan, ":")(1) + 2
    Range("A" & Satır).Select
End Sub
 
Son düzenleme:
Katılım
26 Ocak 2010
Mesajlar
22
Excel Vers. ve Dili
365
Altın Üyelik Bitiş Tarihi
07-08-2023
Ömer bey
Teşekkür ederim ellerinize sağlık
 
Üst