• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

VBA Kısmında Saat Buldurma

Katılım
8 Mayıs 2017
Mesajlar
8
Excel Vers. ve Dili
Excel 2010
İngilizce
Herkese merhaba,

Bir excel tablom var K sütununda süreler yer alıyor ve ben burada dolu hücreler boyunca 15 dakika altında olan süreleri sildirmek istiyorum. Benzer işlemleri çok defa yaptım ancak saat formatında olmadı bir türlü. Yardımcı olabilir misiniz? Formatım (hh:mm)
 
Aşağıdaki şekilde deneyin.
Kod:
Sub ASKM_Dakika_Sil()
Dim sonsat As Long
Dim zaman1, zaman2 As Date
sonsat = Range("K" & Rows.Count).End(xlUp).Row
zaman1 = Format("00:20:00", "hh:mm")
For i = sonsat To 1 Step -1
zaman2 = Format(Cells(i, "k"), "hh:mm")
If zaman2 < zaman1 Then
       Cells(i, "k").Delete
End If
Next
MsgBox "İşlem tamam...", vbInformation, "ASKM"
End Sub
 
Denedim olmadı hocam malesef. Formatı okumuyo nedense
 
Aşağıdaki gibi deneyin Sn ASKM'ın kodlarını biraz değiştirdim.
Kod:
Sub ASKM_Dakika_Sil()
Dim sonsat As Long
sonsat = Range("K" & Rows.Count).End(xlUp).Row
For i = sonsat To 1 Step -1
If  Cells(i, "k") < 1.04166666666667E-02 Then
       Cells(i, "k").Delete
End If
Next
MsgBox "İşlem tamam...", vbInformation, "ASKM"
End Sub
 
Tüm satırı silmek istiyorsunuz sanırım.
Kod:
Sub ASKM_Dakika_Sil()
Dim sonsat As Long
Dim zaman1, zaman2 As Date
sonsat = Range("K" & Rows.Count).End(xlUp).Row
zaman1 = Format("00:20:00", "hh:mm")
For i = sonsat To 2 Step -1
zaman2 = Format(Cells(i, "k"), "hh:mm")
If zaman2 < zaman1 Then
       Rows(i).Delete
End If
Next
MsgBox "İşlem tamam...", vbInformation, "ASKM"
End Sub
 

Ekli dosyalar

Döngü ile uzun sürüyor aşağıdaki gibi dnreyin
Kod:
Sub Makro2()

sonsat = Range("K" & Rows.Count).End(xlUp).Row
    ActiveSheet.Range("K1:K" & sonsat).AutoFilter Field:=1, Criteria1:="<00:15" _
        , Operator:=xlAnd
    ActiveSheet.Range("K2:K" & sonsat).ClearContents
 ActiveSheet.Range("K1:K" & sonsat).AutoFilter
End Sub
 
Aşağıdaki şekilde denedim. İşlem 1 sn sürdü.
Kod:
Sub ASKM_Dakika_Sil()
Dim sonsat As Long
Dim baslangic, bitis As Date

Dim zaman1, zaman2 As Date
Application.ScreenUpdating = False
baslangic = Time
On Error Resume Next
sonsat = Range("K" & Rows.Count).End(xlUp).Row
zaman1 = Format("00:20:00", "hh:mm")
For i = sonsat To 2 Step -1
zaman2 = Format(Cells(i, "k"), "hh:mm")
If zaman2 < zaman1 Then
       Rows(i).Delete
End If
Next
bitis = Time
Application.ScreenUpdating = True
MsgBox Format(bitis - baslangic, "hh:mm:ss") & " Sürede İşlem Tamamlandı" & vbLf & Application.UserName, _
vbInformation, "ASKM"
End Sub
 
Teşekkürler oldu
 
Geri
Üst