Aynı gün tarihini bulup yanındaki boş hücreyi seç

Katılım
23 Ocak 2023
Mesajlar
24
Excel Vers. ve Dili
Microsoft Office Professional Plus 2019
Türkçe
Merhabalar;
Daha önce cevabını alamadığım konuyu tekrar açıyorum.

Dosya üzerinde not ile ifade etmeye çalıştım.
Kısaca; D3 den D14 e ve E3 den E14 hücrelerinde makrolar var, gerekirse bu makrolara da kod ilave edilebilir.
Mesela E5 hücresine tıkladığımda Sayfa "3.AY" a gidip Mart ayının verilerini giriyorum.
Benim istediğim; E5 hücresine hangi gün tıkladıysam Sayfa "3.AY" da A sütununda sıralı olan Mart ayının o günkü tarihini bulup sağındaki boş hücreyi seçmek.
İlgilenecek olan arkadaşlara şimdiden teşekkürler.

 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,191
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Merhaba,

Şuan ŞUBAT ayındayız..

Ocak ayı için D3 hücresine tıkladığımızda hangi tarih seçilecek?

Açıklamanızda BUGÜN dediğiniz için soruyorum.
 
Katılım
23 Ocak 2023
Mesajlar
24
Excel Vers. ve Dili
Microsoft Office Professional Plus 2019
Türkçe
Merhaba,

Şuan ŞUBAT ayındayız..

Ocak ayı için D3 hücresine tıkladığımızda hangi tarih seçilecek?

Açıklamanızda BUGÜN dediğiniz için soruyorum.
Merhabalar;
Geçmiş ayın işlemi bittiği için sorun değil ama ileride bir kıyaslama gibi bir işlem yapacağımı farz edersek ayın aynı gününe gelmesi olabilir.
Mesela bugün Şubat 15'i, OCAK tıkladığımda Ocak 15'i ne gidebilir gibi...
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,191
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Eğer ilgili sayfada 15. gün yoksa ne olacak?

Ben aşağıdaki gibi tasarladım. Kendi isteğinize göre uyarlarsınız..

C++:
Sub Ocak2024Harcama()
    Dim X As Integer, Bul As Range
   
    X = Sheets("2024").Range("A1")
    Sheets("1.AY").Select
    Set Bul = Columns(1).Find(CDate(DateSerial(X, 1, Day(Date))), , xlFormulas)
    If Not Bul Is Nothing Then
        Bul.Offset(, 2).Select
    Else
        Range("C1").End(xlDown).Offset(1, 0).Select
    End If
End Sub
 
Katılım
23 Ocak 2023
Mesajlar
24
Excel Vers. ve Dili
Microsoft Office Professional Plus 2019
Türkçe
Eğer ilgili sayfada 15. gün yoksa ne olacak?
Her ayın günleri var,
Sayfa "1.AY" A Sütununda yukarıdan aşağıya 4. Satırdan 34. Satıra kadar
11.12.2023
12.12.2023 den
....
10.01.2024 e kadar

Sayfa"2.AY" A Sütununda yukarıdan aşağıya 4. Satırdan 34. Satıra kadar
11.01.2024
12.01.2024 den
...
10.02.2024 e kadar

Sayfa"3.AY" A Sütununda yukarıdan aşağıya 4. Satırdan 34. Satıra kadar
11.02.2024
12.02.2024 den
...
10.03.2024 e kadar
...
Sayfa"12.AY" A Sütununda yukarıdan aşağıya 4. Satırdan 34. Satıra kadar
11.11.2024
12.11.2024 den
...
10.12.2024 e kadar

"D" ve "E" Sütunlardaki 3'den 14'e kadar olan Hücrelerde Makro var.

"E3" Hücrenin üstüne tıkladığımda "1.AY" Sayfanın "C4" den başlayarak ilk boş hücreye götürüyor.
"D3" Hücrenin üstüne tıkladığımda "1.AY" Sayfanın "S4" den başlayarak ilk boş hücreye götürüyor.

Benim istediğim ise;
"E3" Hücrenin üstüne tıkladığımda "1.AY" Sayfanın "A4" den başlayarak o günkü tarihin üstüne gelip sağındaki ilk boş hücreye götürmesi
"D3" Hücrenin üstüne tıkladığımda "1.AY" Sayfanın "Q4" den başlayarak o günkü tarihin üstüne gelip sağındaki ilk boş hücreye götürmesi

Sanırım Makrolara ilave kod edilmesi çözümleyecek gibi geliyor...
.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,191
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Bugün 15.02.2024 siz E3 hücresine tıkladığınızda örnek dosyanıza göre tam olarak hangi hücreye (hücre adresi) gitmek istiyorsunuz.
 
Katılım
23 Ocak 2023
Mesajlar
24
Excel Vers. ve Dili
Microsoft Office Professional Plus 2019
Türkçe
Bugün 15.02.2024 siz E3 hücresine tıkladığınızda örnek dosyanıza göre tam olarak hangi hücreye (hücre adresi) gitmek istiyorsunuz.
"3.AY" Sayfasında "A" Sütunda yazılı olan 15.02.2024 ü bulup sağındaki ilk boş hücreye gitmesini istiyorum.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,191
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Bir önceki mesajınızda aşağıdaki ifadeyi kullanmıştınız..

"E3" Hücrenin üstüne tıkladığımda "1.AY" Sayfanın "A4" den başlayarak o günkü tarihin üstüne gelip sağındaki ilk boş hücreye götürmesi
 
Katılım
23 Ocak 2023
Mesajlar
24
Excel Vers. ve Dili
Microsoft Office Professional Plus 2019
Türkçe
Bir önceki mesajınızda aşağıdaki ifadeyi kullanmıştınız..
Özür dilerim, hatamı düzelttiğiniz için teşekkür ederim, benim beyin eror vermiş:(
Ben tekrar edeyim;
"E3" Hücrenin üstüne tıkladığımda "1.AY" Sayfanın "A4" den başlayarak o günkü tarihin üstüne gelip sağındaki ilk boş hücreye götürmesi
"E4" Hücrenin üstüne tıkladığımda "2.AY" Sayfanın "A4" den başlayarak o günkü tarihin üstüne gelip sağındaki ilk boş hücreye götürmesi


"D3" Hücrenin üstüne tıkladığımda "1.AY" Sayfanın "Q4" den başlayarak o günkü tarihin üstüne gelip sağındaki ilk boş hücreye götürmesi
"D4" Hücrenin üstüne tıkladığımda "2.AY" Sayfanın "Q4" den başlayarak o günkü tarihin üstüne gelip sağındaki ilk boş hücreye götürmesi
 
Katılım
23 Ocak 2023
Mesajlar
24
Excel Vers. ve Dili
Microsoft Office Professional Plus 2019
Türkçe
Bugün 15.02.2024 siz E3 hücresine tıkladığınızda örnek dosyanıza göre tam olarak hangi hücreye (hücre adresi) gitmek istiyorsunuz.
Şöyle söyleyeyim;
Hesap kesimlerim her ayın 10'nu.
Dolayısıyla Mart ayı harcamaları 11.02.2024 ile 10.03.2024 tarihleri arası ve ödemesi de Mart 20'si.
Bu günkü harcamalarım (15.02.2024) Mart ayına yansıyacağı için Sayfa "2024" deki "A" Sütundaki MART ayına karşılık gelen "E5" hücresine tıklayıp "3.AY" Sayfasındaki "A" Sütunda sıralanmış olan 15.02.2024 tarihin üzerine gelip sağındaki ilk boş hücreye gidecek.

Yani;
OCAK ayı harcamaları 11.12.2023 ile 10.01.2024 arası........>Sayfa "1.AY"
ŞUBAT ayı harcamaları 11.01.2024 ile 10.02.2024 arası.......>Sayfa "2.AY"
MART ayı harcamaları 11.02.2024 ile 10.03.2024 arası........>Sayfa "3.AY"
NİSAN ayı harcamaları 11.03.2024 ile 10.04.2024 arası.......>Sayfa "4.AY"
.
.
ARALIK ayı harcamaları 11.11.2024 ile 10.12.2024 arası.......>Sayfa "12.AY"
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,191
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Siz dosyanızı ilgili detaylı bilgilendirmeyi yaptınız. Sağolun.

Ben sorularımı tekrar etmek istiyorum.

1- 15.02.2024 tarihindeyiz ve ben E3 hücresine tıkladım. Bu durumda makro ne yapacak.

2- 15.02.2024 tarihindeyiz ve ben E5 hücresine tıkladım. Bu durumda makro ne yapacak.
 
Katılım
23 Ocak 2023
Mesajlar
24
Excel Vers. ve Dili
Microsoft Office Professional Plus 2019
Türkçe
Siz dosyanızı ilgili detaylı bilgilendirmeyi yaptınız. Sağolun.

Ben sorularımı tekrar etmek istiyorum.

1- 15.02.2024 tarihindeyiz ve ben E3 hücresine tıkladım. Bu durumda makro ne yapacak.

2- 15.02.2024 tarihindeyiz ve ben E5 hücresine tıkladım. Bu durumda makro ne yapacak.
Öncelikle ben teşekkür ederim, daha iyi anlamak için uğraş veriyorsunuz;

Şöyle ki, belirttiğiniz üzere farklı ayın hücresine tıkladığımda hangi aysa aynı güne tekabül etsin.
15. günse 15, 16. günse 16'sına.

Yani;
1- 15.02.2024 tarihindeyiz ve ben E3 hücresine tıkladım. Bu durumda makro ne yapacak. (Sayfa "1.AY" da 15. güne gitsin "15.12.2023")

2- 15.02.2024 tarihindeyiz ve ben E5 hücresine tıkladım. Bu durumda makro ne yapacak. (Sayfa "3.AY" da 15. güne gitsin "15.02.2024")

3-15.02.2024 tarihindeyiz ve ben E4 hücresine tıkladım. Bu durumda makro ne yapacak. (Sayfa "2.AY" da 15. güne gitsin "15.01.2024")
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,191
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Ocak ayı için aşağıdaki kodu deneyiniz.

Diğer sayfalar için kendiniz uyarlarsınız...

C++:
Sub Ocak2024Harcama()
    Dim First_Date As Date, Last_Date As Date
    Dim X_Date As Date, Rng As Range, Sh As Worksheet
    
    X_Date = Date
    
    Set Sh = Sheets("1.AY")
    Sh.Select
    
    First_Date = WorksheetFunction.Min(Sh.Range("A4:A" & Sh.Rows.Count))
    Last_Date = WorksheetFunction.Max(Sh.Range("A4:A" & Sh.Rows.Count))
    
    Set Rng = Sh.Columns(1).Find(X_Date, LookAt:=xlWhole)
    If Not Rng Is Nothing Then
        Cells(Rng.Row, "O").End(1).Offset(, 1).Select
    Else
10      If X_Date > Last_Date Then
            X_Date = WorksheetFunction.EDate(X_Date, -1)
            GoTo 20
        Else
            X_Date = WorksheetFunction.EDate(X_Date, 1)
            GoTo 20
        End If
20      Set Rng = Sh.Columns(1).Find(X_Date, LookAt:=xlWhole)
        If Not Rng Is Nothing Then
            Cells(Rng.Row, "O").End(1).Offset(, 1).Select
        Else
            GoTo 10
        End If
    End If
End Sub
 
Katılım
23 Ocak 2023
Mesajlar
24
Excel Vers. ve Dili
Microsoft Office Professional Plus 2019
Türkçe
Ocak ayı için aşağıdaki kodu deneyiniz.

Diğer sayfalar için kendiniz uyarlarsınız...

C++:
Sub Ocak2024Harcama()
    Dim X_Date As Date, Rng As Range, Sh As Worksheet
    
    X_Date = Date
    
    Set Sh = Sheets("1.AY")
    Sh.Select
    
    Set Rng = Sh.Columns(1).Find(X_Date, LookAt:=xlWhole)
    If Not Rng Is Nothing Then
        Cells(Rng.Row, "O").End(1).Offset(, 1).Select
    Else
10      X_Date = WorksheetFunction.EDate(X_Date, -1)
        Set Rng = Sh.Columns(1).Find(X_Date, LookAt:=xlWhole)
        If Not Rng Is Nothing Then
            Cells(Rng.Row, "O").End(1).Offset(, 1).Select
        Else
            GoTo 10
        End If
    End If
End Sub
Korhan bey merhabalar;
öncelikle teşekkür ederim.
Vermiş olduğunuz formülü 12 ayın sayfasına uyguladım. İstenilen gibi olmuş elinize sağlık.
Yalnız "1.AY" "2.AY" "3. AY" sayfalarında sıkıntı yok diğer sayfalarda hata verdi. Formül üzerinde rakamlar üzerinde çeşitli değişiklikler yaptım olmadı.
Sadece "4.AY" ve sonraki sayfaların formülündeki
"10 X_Date = WorksheetFunction.EDate(X_Date, -1)" -1 değerini 1yaptım.
"10 X_Date = WorksheetFunction.EDate(X_Date, 1)" sorun düzeldi.

Şöyle bir sorun tekrar yaşanır mı?
Nisan ayına geldiğimde hata verir mi?
(X_Date, 1) kodunu tekrar (X_Date, -1) yapmak mı gerekir?

Ben formülleri yeni dosyaya ekledim.



 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,191
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Evet bir mantık hatası olmuş...

#14 nolu mesajımda ki kodu revize ettim. Tekrar deneyiniz.
 
Katılım
23 Ocak 2023
Mesajlar
24
Excel Vers. ve Dili
Microsoft Office Professional Plus 2019
Türkçe
Ocak ayı için aşağıdaki kodu deneyiniz.

Diğer sayfalar için kendiniz uyarlarsınız...

C++:
Sub Ocak2024Harcama()
    Dim First_Date As Date, Last_Date As Date
    Dim X_Date As Date, Rng As Range, Sh As Worksheet
    
    X_Date = Date
    
    Set Sh = Sheets("1.AY")
    Sh.Select
    
    First_Date = WorksheetFunction.Min(Sh.Range("A4:A" & Sh.Rows.Count))
    Last_Date = WorksheetFunction.Max(Sh.Range("A4:A" & Sh.Rows.Count))
    
    Set Rng = Sh.Columns(1).Find(X_Date, LookAt:=xlWhole)
    If Not Rng Is Nothing Then
        Cells(Rng.Row, "O").End(1).Offset(, 1).Select
    Else
10      If X_Date > Last_Date Then
            X_Date = WorksheetFunction.EDate(X_Date, -1)
            GoTo 20
        Else
            X_Date = WorksheetFunction.EDate(X_Date, 1)
            GoTo 20
        End If
20      Set Rng = Sh.Columns(1).Find(X_Date, LookAt:=xlWhole)
        If Not Rng Is Nothing Then
            Cells(Rng.Row, "O").End(1).Offset(, 1).Select
        Else
            GoTo 10
        End If
    End If
End Sub
Tamamdır. Çok teşekkür ederim, elinize sağlık.

Bilgi edinmek istediğim bir konuda şu; tarihi buldu ve ilk sütun dan değil de 13. sütun sonrasını seçtirmek veya 17. sütunda tarih var sola doğru seçtirmeyi nasıl yaparız.
Ben vermiş oluğunuz kod üzerinden oynamalar yaparak denedim beceremedim. Kodların ne demek istediğini bilmek gerekiyor!
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,191
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Aşağıdaki kod satırı bulunan tarihe ait satırda O sütunundan itibaren End(1) komutu ile sola doğru ilerleyerek son dolu sütunu buluyor. Sonra Offset(, 1) komutu ile 1 sağa doğru ilerleyerek boş hücreyi seçer.

Cells(Rng.Row, "O").End(1).Offset(, 1).Select

End(1) = Sol doğru ilerler.
End(2) = Sağa doğru ilerler.
End(3) = Yukarı doğru ilerler.
End(4) = Aşağı doğru ilerler.

Bu komutlarla oynayarak denemeler yapabilirsiniz.

Makro konusunda tecrübe kazanmak içinde MAKRO KAYDET yöntemini araştırabilirsiniz.
 
Katılım
23 Ocak 2023
Mesajlar
24
Excel Vers. ve Dili
Microsoft Office Professional Plus 2019
Türkçe
Aşağıdaki kod satırı bulunan tarihe ait satırda O sütunundan itibaren End(1) komutu ile sola doğru ilerleyerek son dolu sütunu buluyor. Sonra Offset(, 1) komutu ile 1 sağa doğru ilerleyerek boş hücreyi seçer.

Cells(Rng.Row, "O").End(1).Offset(, 1).Select

End(1) = Sol doğru ilerler.
End(2) = Sağa doğru ilerler.
End(3) = Yukarı doğru ilerler.
End(4) = Aşağı doğru ilerler.

Bu komutlarla oynayarak denemeler yapabilirsiniz.

Makro konusunda tecrübe kazanmak içinde MAKRO KAYDET yöntemini araştırabilirsiniz.
Teşekkürler :)
 
Üst