Yan yana olan benzer hücreleri bulma

Katılım
28 Nisan 2016
Mesajlar
181
Excel Vers. ve Dili
2010
Altın Üyelik Bitiş Tarihi
06-01-2024
Selam.
Hücre verisi alt çizgi olan yan yana 2 veya daha fazla hücrelerin bulundukları sütunun en üstündeki saatleri bulmak istiyorum.
Normal bir kullanıcıyı aşan bir durum olduğu için size sormak istedim.
Örnek dosya ektedir.
Nasıl yapabiliriz acaba? veriler 2000 satır boyunca uzanıyor.
 

Ekli dosyalar

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,646
Excel Vers. ve Dili
Pro Plus 2021
Kod:
Sub test()
    [BC3:CC1000].ClearContents
    For i = 3 To Cells(Rows.Count, "F").End(3).Row
        basladi = False
        bas_ = ""
        son_ = ""
        sut = 55
        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) = bas_
                        Cells(i, sut + 1) = son_
                        Cells(i, sut).Resize(, 2).NumberFormat = "hh:mm"
                        sut = sut + 3
                    End If
                    bas_ = ""
                    son_ = ""
                End If
            End If
        Next ii
    Next i
End Sub
 
Katılım
28 Nisan 2016
Mesajlar
181
Excel Vers. ve Dili
2010
Altın Üyelik Bitiş Tarihi
06-01-2024
Merhaba.
Çok iyi. Teşekkür ederim. Mükemmel.

Bir kaç ekleme yapabilir miyim?

1- Hatalı kısım varmış ben yanlış anlatmışım. Öncelikle ilk ve son stün gruplarının son sütunundaki bulduğumuz saat değil de son sütunun saatinden sonraki ilk yıldızın saatini aldırabilir miyiz? Yani çizgiler örneğin: 12:00 - 13:00 e denk geliyorsa ve 13:15 de yıldız varsa makro 12:00 - 13:15 yazsa
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ş hücreye yazsa
3- Son olarak ilk yıldız saatini 15 dk geriye son yıldızı da 15 dk ileriye çekerek yazsa daha da bir şey istemem sağlığınızdan başka.
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,646
Excel Vers. ve Dili
Pro Plus 2021
Normalde sonradan yapılan değişiklik istekleriyle ilgilenmiyorum, ama sıcağı sıcağına dönüş yaptığınız için uyarlamaya çalıştım.
Kod:
Sub test()
    [BB3:CC1000].ClearContents
    For i = 3 To Cells(Rows.Count, "F").End(3).Row
        basladi = False
        bas_ = ""
        son_ = ""
        sut = 55
        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).NumberFormat = "hh:mm"
    Next i
End Sub
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,253
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Başlığınızda kullandığınız parantez içindeki bölümün bir anlamı var mı?

Yan yana olan benzer hücreleri bulma (A!)
 
Katılım
28 Nisan 2016
Mesajlar
181
Excel Vers. ve Dili
2010
Altın Üyelik Bitiş Tarihi
06-01-2024
Tekrar merhaba.
Cuk oturdu. Süper oldu.
-15 Dakika geri çektiğimiz veriyi D sütunundan +15 dakika ileri çektiğimiz veriyi ise E sütunundaki verileri baz alabilir mi?
Artık uğraşamam derseniz saygı duyarım <3 Çok yardımcı oldunuz teşekkür ederim.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,253
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Lütfen düzeltiniz.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,253
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Tarafımdan gerekli düzenleme yapılmıştır.
 
Katılım
28 Nisan 2016
Mesajlar
181
Excel Vers. ve Dili
2010
Altın Üyelik Bitiş Tarihi
06-01-2024
Tekrar merhaba.
Son bir kısım kaldı.

Mevcut kod ilk yıldızın ( -15 dk geriye çektiğimiz ) ve son yıldızın ( +15 dk eklediğimiz ) bulundukları sütunun en tepesindeki saati baz alıyor. -ilk yıldızı D sütunundan son yıldızı ise E sütunundaki verileri baz alması için kodda değişiklik yapma konusunda yardımcı olur musunuz?
 
Katılım
28 Şubat 2011
Mesajlar
605
Excel Vers. ve Dili
2010 - Türkçe - Win10 x64
Veysel hocam daha iyi bilir ama "ii" ye aldığı verinin kaynağını degistirmek lazım. Tam çözemedim bende belki fikir verebilir sana :)
 
Katılım
28 Şubat 2011
Mesajlar
605
Excel Vers. ve Dili
2010 - Türkçe - Win10 x64
Hatta
for ii = 6 to 53 ün anlamını bulabilirsek kökten çözeriz herhalde :D
 
Katılım
28 Nisan 2016
Mesajlar
181
Excel Vers. ve Dili
2010
Altın Üyelik Bitiş Tarihi
06-01-2024
for ii = 6 to 53 çalışma alanını belirliyor bence.
al = Cells(i, ii).Value bu alanda ekle çıkar olması lazımmış gibi düşünüyorum ben.
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Merhaba

Sorunuzu tam anlayamadım. D ve E sütunundan alacaksa yıldız aramaya gerek var mı?
 
Katılım
28 Nisan 2016
Mesajlar
181
Excel Vers. ve Dili
2010
Altın Üyelik Bitiş Tarihi
06-01-2024
Kusura bakmayın yazarak tam ifade edemiyorum zorlanıyorum. Özür dilerim.
Sadece ve sadece BB sütununa D sütununda bulunan saatlerin -15 dk azaltılmış olanını yazsın. Bu işlemde yıldız arama gerek yok.
Yine aynı şekilde işlemler hangi sütunda bitiyorsa bittiği hücreden itibaren ilk boş hücreye E sütunundan veriyi alıp üstüne +15 dk eklesin. Bura da da yıldız aramaya gerek yok.

Örneğin:
Makro çalıştı ve BB3 ten itibaren BX3 e kadar sonuçları sıraladı.. BB3 ve BY3 e alınacak verilerin referansı D3 ve E3 alınsın yeterli. ( -15 ve +15 unutulmadan )
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
İsteğinize göre, Veysel Bey'in kodlarında küçük bir düzeltme yapılmıştır.
Deneyiniz.
Kod:
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 = 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 = Cells(i, "E").Value + TimeSerial(0, 15, 0) 'yeni ilave
        Cells(i, sut).NumberFormat = "hh:mm"
    Next i
End Sub
 
Katılım
28 Nisan 2016
Mesajlar
181
Excel Vers. ve Dili
2010
Altın Üyelik Bitiş Tarihi
06-01-2024
Ömer bey şu satırda hata veriyor:

Cells(i, "BB").Value = Cells(i, "D").Value - TimeSerial(0, 15, 0) 'yeni ilave
 

Ekli dosyalar

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
D ve E sütunu boş mu?
 
Katılım
28 Nisan 2016
Mesajlar
181
Excel Vers. ve Dili
2010
Altın Üyelik Bitiş Tarihi
06-01-2024
hayır dolu ve hücrelerdeki veriler saat vede saat formatında.
 
Üst