Yıla göre günleri listelemek ve renklendirmek

Korhan Ayhan

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

Ekteki dosyada sayfada sabit bir hücrede oluşturulacak açılır listeden seçilen yıla göre o yıla ait günleri listelemek için nasıl bir yöntem kullanmalıyız. Listelenen tarihlerden haftasonuna denk gelen günleri nasıl farklı bir renkle belirginleştirebiliriz. Ayrıca diğer günleride kendi gün grubuna göre nasıl renklendirebiliriz.

Soruyu çözecek arkadaşlarımızın formül ve makro kodlarının açıklamalarını yazarak yorumda bulunmaları yeni başlayan arkadaşlarımız için faydalı olacaktır.

Not: Başlangıç aşamasında olan arkadaşlarımızda lütfen yorumlarını belirtsinler.

Kolay gelsin.
 

Ekli dosyalar

Moderatör tarafında düzenlendi:

İdris SERDAR

Moderatör
Yönetici
Katılım
21 Ekim 2005
Mesajlar
17,104
Excel Vers. ve Dili
Excel, 365 - İngilizce
Dosya ekte.

Açıklamalar dosyanın içinde yapılmıştır.


.
 

Ekli dosyalar

Son düzenleme:

zafer

Super Moderator
Yönetici
Katılım
8 Mart 2005
Mesajlar
3,288
Excel Vers. ve Dili
OFFICE 2003 TÜRKÇE
OFFICE 2010 TÜRKÇE
Merhaba

Makro ile çözülmüş günün sorusu ektedir.

Sayın Yurttaş beyin çözümüne yakın bir çözüm fakat alternatif olabilir.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,058
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Eğer hücrelerde renklendirme istenmeseydi döngüsüz bir çözümde bulunabilirdi. Renklendirme sebebi ile Sn yurttas ve Sn Zafer'in çözümleri geçerlidir. Ben yinede bilgi olması açısından döngüsüz çözümü vereyim.

B1 hücresindeki veri doğrulamaya 2000-2050 tarihlerini kod ile yüklemek istersek aşağıdaki auto_open prosedürünü kullanabiliriz.

Kod:
Sub auto_open()
Set s1 = Sheets("sayfa1") [COLOR=seagreen]'s1 değişkenini sayfa1 olarak atar[/COLOR]
For a = 2000 To 2050
deg = deg & "," & a [COLOR=seagreen]' deg değişkenine 2000-2050 arasındaki tarihleri aralarında virgül olacak şekilde birleştirir.[/COLOR]
Next
With s1.[b1].Validation 
       .Delete [COLOR=seagreen]' B1 hücresindeki veri doğrulamayı siler[/COLOR]
       .Add Type:=xlValidateList, Formula1:=Right(deg, Len(deg) - 1) [COLOR=seagreen]'B1 hücresinde veri doğrulama oluşturur ve deg değişkenini liste olarak atar_[/COLOR]
[COLOR=seagreen]buradaki right fonksiyonu deg değişkenindeki ilk virgülü dikkate almamak için kullanılmıştır.[/COLOR]
End With
End Sub
Aşağıdaki kodda sayfa1in kod sayfasına kopyalanmalıdır. Burada kodda , hücre üzerindeki sürükle ile otomatik doldur (autofill) işlemi esas alınmıştır. Böylece yılın tüm günleri döngüsüz olarak sıralanmaktadır.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$B$1" Then Exit Sub [COLOR=seagreen]' Kodun sadece B1 h&#252;cresindeki de&#287;i&#351;ime g&#246;re &#231;al&#305;&#351;mas&#305;n&#305; sa&#287;lar[/COLOR]
[a4:a65536].ClearContents [COLOR=seagreen]' A4:A65536 aras&#305;ndaki verileri siler[/COLOR]
[a4] = DateSerial([b1], 1, 1) [COLOR=seagreen]'A4 h&#252;cresine B1 de se&#231;ilen y&#305;l&#305;n ilk g&#252;n&#252;n&#252; yazar[/COLOR]
fark = DateSerial([b1], 12, 31) - DateSerial([b1], 1, 1) + 4 [COLOR=seagreen]'y&#305;l&#305;n ilk ve son g&#252;n&#252; aras&#305;ndaki farkt&#305;r. Bu &#351;ubat ay&#305; 29 g&#252;n &#231;ekti&#287;i y&#305;llardaki fark nedeniyle gereklidir.[/COLOR]
[a4].AutoFill Destination:=Range("A4:A" & fark) [COLOR=seagreen]'S&#252;r&#252;kle ile otomatik doldur i&#351;lemini yapar[/COLOR]
End Sub
 
Katılım
29 Ekim 2006
Mesajlar
295
Excel Vers. ve Dili
OFİS 2003 Türkçe
Çözümler daha sonra bir dosyada toplanması mümkün olur mu acaba? Teşekkürler emekleriniz için..
 

zafer

Super Moderator
Yönetici
Katılım
8 Mart 2005
Mesajlar
3,288
Excel Vers. ve Dili
OFFICE 2003 TÜRKÇE
OFFICE 2010 TÜRKÇE
Merhaba

Çözümler daha sonra bir dosyada toplanması mümkün olur mu acaba? Teşekkürler emekleriniz için..
Diğer sorulara bakarsanız verilen cevaplar isteğiniz gibi tek dosyada toplanmıştır.
 

zafer

Super Moderator
Yönetici
Katılım
8 Mart 2005
Mesajlar
3,288
Excel Vers. ve Dili
OFFICE 2003 TÜRKÇE
OFFICE 2010 TÜRKÇE
Merhaba

Cevab&#305;n&#305;z&#305; yanl&#305;&#351; yerde vermi&#351;siniz.
Kandiliniz m&#252;barek olsun

bende cvp yazsam bence &#246;rneklerle ver&#305;r ve bizim g&#246;rmem&#305;z&#305; saglard&#305;k ama sizin yapt&#305;g&#305;n&#305;z kend&#305;n&#305;z yazd&#305;g&#305;n&#305;z &#246;rneklere verm&#305;ss&#305;n&#305;z ama bence g&#246;stermel&#305;s&#305;n&#305;z
Afferdersiniz biraz daha konuyu a&#231;abilirmisiniz.
 
Katılım
8 Ocak 2007
Mesajlar
3
Excel Vers. ve Dili
office 2003
Merhaba,
tak&#305;ld&#305;&#287;&#305;m bir nokta var ve bir t&#252;rl&#252; &#231;&#246;z&#252;m olu&#351;turamad&#305;m. Amac&#305;m ba&#351;lang&#305;&#231; ve biti&#351; tarihini verip bu tarih aral&#305;&#287;&#305;ndaki aylarda ka&#231; g&#252;n var? &#246;rne&#287;in 10/9/2007 ba&#351;lang&#305;&#231; 10/2/2008 biti&#351; tarihleri aras&#305;nda 9. ayda ka&#231; g&#252;n 10. ayda, 11. ayda, 12, 1 ve 2 aylarda ka&#231; g&#252;n oldu&#287;unu bulmak i&#231;in hangi fonksiyon yada fonksiyonlar&#305; kullanmal&#305;y&#305;m. Yard&#305;mc&#305; olursan&#305;z sevinirim.
&#350;imdiden te&#351;ekk&#252;rler.
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
A1 h&#252;cresinde bir tarih B1 h&#252;cresindede ba&#351;ka bir tarih oldu&#287;unu kabul edersek C1 H&#252;cresine =B1-A1 form&#252;l&#252;n&#252; girersek ka&#231; g&#252;n fark oldu&#287;unun bulabiliriz.:cool:
 
Katılım
8 Ocak 2007
Mesajlar
3
Excel Vers. ve Dili
office 2003
onda sorun yok ama amac&#305;m &#246;rne&#287;e g&#246;re konu&#351;acak olursak ayr&#305; ayr&#305; 9. ayda 20 g&#252;n,10. ayda 31 g&#252;n, 11. ayda 30, 12. ayda 31, 1 ayda 31 g&#252;n ve 2. ayda ise 10 g&#252;n oldu&#287;unu tespit edebilmek. yinede te&#351;ekk&#252;r ederim Evren Gizlen arkada&#351;&#305;m.
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Say&#305;n,pembepanter san&#305;r&#305;m istedi&#287;niz b&#246;yle bir &#351;ey.
Ekli dosyay&#305; inceleyiniz.:cool:
 
Katılım
8 Ocak 2007
Mesajlar
3
Excel Vers. ve Dili
office 2003
Evren Gizlen arkada&#351;&#305;m supersin b&#246;yle bir&#351;eyden ziyade ta kendisi. ellerine sa&#287;l&#305;k te&#351;ekk&#252;rler.
 
Katılım
29 Aralık 2006
Mesajlar
80
Excel Vers. ve Dili
visualbasic
iki tarih arası bulmak

"E 10 'a girilen tarihten F 10 daki sayı kadar , aradaki tatil günlerini (kırmızı renkli)atlayarak sayacak ve G10 hücresine tarihi yazacak.
ÖRNEK: 05.01.2008 + 20 ( 4 ADET kırmızı hücre tatil günü)=28.01.2008 "
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit

S.Yiğit

Destek Ekibi
Destek Ekibi
Katılım
1 Temmuz 2008
Mesajlar
1,748
Excel Vers. ve Dili
2019 TR
Sn Evren Gizlen çok güzel çalışmalar. Eline sağlık sen ve tüm arkadaşların..
 
Son düzenleme:

istanbulcahan

Altın Üye
Katılım
11 Ocak 2008
Mesajlar
1,386
Excel Vers. ve Dili
Office 365 (Türkçe)
Altın Üyelik Bitiş Tarihi
05-11-2024
Sayın Korhan Ayhan, Zafer ve diğer uzman arkadaşlar bu bölümdeki dosyaları bir daha gönderirmisiniz. Malum 6.11.08 öncesi dosyalar silinmişti.
 
Üst