Kumpasta
Altın Üye
- Katılım
- 28 Nisan 2016
- Mesajlar
- 186
- Excel Vers. ve Dili
- 2010
- Altın Üyelik Bitiş Tarihi
- 05-12-2025
Örnek dosyayı ekledim Ömer bey.
Ekli dosyalar
-
18.8 KB Görüntüleme: 8
DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
Altın Üyelik Hakkında Bilgi
Sub test()
[BB3:CC1000].ClearContents
For i = 3 To Cells(Rows.Count, "F").End(3).Row
basladi = False
bas_ = ""
son_ = ""
sut = 55
Cells(i, "BB").Value = CDate(Cells(i, "D").Value) - TimeSerial(0, 15, 0) 'yeni ilave
Cells(i, "BB").NumberFormat = "hh:mm" 'yeni ilave
For ii = 6 To 53
al = Cells(i, ii).Value
If basladi = False Then
If al = "*" Then
basladi = True
' Cells(i, "BB").Value = Cells(1, ii).Value - TimeSerial(0, 15, 0)
' Cells(i, "BB").NumberFormat = "hh:mm"
End If
Else
If al = "_" Then
If bas_ = "" Then
bas_ = Cells(1, ii).Value
Else
son_ = Cells(1, ii).Value
End If
Else
If son_ <> "" Then
Cells(i, sut).Value = bas_
Cells(i, sut + 1).Value = Cells(1, ii).Value
Cells(i, sut).Resize(, 2).NumberFormat = "hh:mm"
sut = sut + 3
End If
bas_ = ""
son_ = ""
sonYildiz = ii
End If
End If
Next ii
'Cells(i, sut).Value = Cells(1, sonYildiz).Value + TimeSerial(0, 15, 0)
Cells(i, sut).Value = CDate(Cells(i, "E").Value) + TimeSerial(0, 15, 0) 'yeni ilave
Cells(i, sut).NumberFormat = "hh:mm"
Next i
End Sub
Sub test()
[BB3:CC1000].ClearContents
For i = 3 To Cells(Rows.Count, "F").End(3).Row
If WorksheetFunction.CountA(Cells(i, "C").Resize(1, 3)) = 3 Then
basladi = False
bas_ = ""
son_ = ""
sut = 55
Cells(i, "BB").Value = CDate(Cells(i, "D").Value) - TimeSerial(0, 15, 0) 'yeni ilave
Cells(i, "BB").NumberFormat = "hh:mm" 'yeni ilave
For ii = 6 To 53
al = Cells(i, ii).Value
If basladi = False Then
If al = "*" Then
basladi = True
' Cells(i, "BB").Value = Cells(1, ii).Value - TimeSerial(0, 15, 0)
' Cells(i, "BB").NumberFormat = "hh:mm"
End If
Else
If al = "_" Then
If bas_ = "" Then
bas_ = Cells(1, ii).Value
Else
son_ = Cells(1, ii).Value
End If
Else
If son_ <> "" Then
Cells(i, sut).Value = bas_
Cells(i, sut + 1).Value = Cells(1, ii).Value
Cells(i, sut).Resize(, 2).NumberFormat = "hh:mm"
sut = sut + 3
End If
bas_ = ""
son_ = ""
sonYildiz = ii
End If
End If
Next ii
'Cells(i, sut).Value = Cells(1, sonYildiz).Value + TimeSerial(0, 15, 0)
Cells(i, sut).Value = CDate(Cells(i, "E").Value) + TimeSerial(0, 15, 0) 'yeni ilave
Cells(i, sut).NumberFormat = "hh:mm"
End If
Next i
End Sub
Sub test()
Zaman = Timer
Application.ScreenUpdating = False
Application.Calculation = xlManual
[BB3:CC100000].ClearContents
For i = 3 To Cells(Rows.Count, "F").End(3).Row
If WorksheetFunction.CountA(Cells(i, "C").Resize(1, 3)) = 3 Then
basladi = False
bas_ = ""
son_ = ""
sut = 55
Cells(i, "BB").Value = CDate(Cells(i, "D").Value) - TimeSerial(0, 15, 0)
Cells(i, "BB").NumberFormat = "hh:mm"
For ii = 6 To 53
al = Cells(i, ii).Value
If basladi = False Then
If al = "*" Then
basladi = True
End If
Else
If al = "_" Then
If bas_ = "" Then
bas_ = Cells(1, ii).Value
Else
son_ = Cells(1, ii).Value
End If
Else
If son_ <> "" Then
Cells(i, sut).Value = bas_
Cells(i, sut + 1).Value = Cells(1, ii).Value
Cells(i, sut).Resize(, 2).NumberFormat = "hh:mm"
sut = sut + 3
End If
bas_ = ""
son_ = ""
sonYildiz = ii
End If
End If
Next ii
Cells(i, sut).Value = CDate(Cells(i, "E").Value) + TimeSerial(0, 15, 0)
Cells(i, sut).NumberFormat = "hh:mm"
End If
Next i
Application.Calculation = xlAutomatic
Application.ScreenUpdating = True
MsgBox "Hesaplama Tamamlandı." & Chr(10) & "Zaman:" & Format(Timer - Zaman, "0.00") & " saniye"
End Sub
Ömer Bey merhaba.O kadar etkileyeceğiniz sanmıyorum. Başka bir durum olabilir mi?
Eklenen basit bir şart.
If WorksheetFunction.CountA(Cells(i, "C").Resize(1, 3)) = 3 Then
.
.
.
End if
Hesaplamayı pasif ve aktif yaptım.
Deneyiniz.
Kod:Sub test() Zaman = Timer Application.ScreenUpdating = False Application.Calculation = xlManual [BB3:CC100000].ClearContents For i = 3 To Cells(Rows.Count, "F").End(3).Row If WorksheetFunction.CountA(Cells(i, "C").Resize(1, 3)) = 3 Then basladi = False bas_ = "" son_ = "" sut = 55 Cells(i, "BB").Value = CDate(Cells(i, "D").Value) - TimeSerial(0, 15, 0) Cells(i, "BB").NumberFormat = "hh:mm" For ii = 6 To 53 al = Cells(i, ii).Value If basladi = False Then If al = "*" Then basladi = True End If Else If al = "_" Then If bas_ = "" Then bas_ = Cells(1, ii).Value Else son_ = Cells(1, ii).Value End If Else If son_ <> "" Then Cells(i, sut).Value = bas_ Cells(i, sut + 1).Value = Cells(1, ii).Value Cells(i, sut).Resize(, 2).NumberFormat = "hh:mm" sut = sut + 3 End If bas_ = "" son_ = "" sonYildiz = ii End If End If Next ii Cells(i, sut).Value = CDate(Cells(i, "E").Value) + TimeSerial(0, 15, 0) Cells(i, sut).NumberFormat = "hh:mm" End If Next i Application.Calculation = xlAutomatic Application.ScreenUpdating = True MsgBox "Hesaplama Tamamlandı." & Chr(10) & "Zaman:" & Format(Timer - Zaman, "0.00") & " saniye" End Sub
Merhaba.Atlama kısmını #24. mesajda yazmıştım.
sut = sut + 3
yerine;
sut = sut + 4
yazmanız yeterli olur.
Silme içinse;
[BB3:CC100000].ClearContents
yerine
On Error Resume Next
[BB3:CC10000].SpecialCells(xlCellTypeConstants, 23).ClearContents
yazarak deneyiniz.
İlk 3 sütun dediğinizin ilki BB sütunu oluyor. Buda sizin #3. numaralı mesajdaki isteğiniz oluyor.2- İlgili satırın ilk yıldızının bulunduğu saati BB hücresine ve yine aynı satırın son yıldızını da yan yana kaç gurup varsa o gurubun sonundaki ilk boş