Excel Forum

Excel Forum (http://www.excel.web.tr/index.php)
-   Beyin Fırtınası (http://www.excel.web.tr/forumdisplay.php?f=142)
-   -   Yıla göre günleri listelemek ve renklendirmek (http://www.excel.web.tr/showthread.php?t=30586)

Korhan Ayhan 15-04-2007 19:05

Yıla göre günleri listelemek ve renklendirmek
 
1 Eklenti(ler)
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.

İdris SERDAR 16-04-2007 09:58

2 Eklenti(ler)
Dosya ekte.

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


.

zafer 16-04-2007 11:32

1 Eklenti(ler)
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 17-04-2007 01:13

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") 's1 değişkenini sayfa1 olarak atar
For a = 2000 To 2050
deg = deg & "," & a ' deg değişkenine 2000-2050 arasındaki tarihleri aralarında virgül olacak şekilde birleştirir.
Next
With s1.[b1].Validation
      .Delete ' B1 hücresindeki veri doğrulamayı siler
      .Add Type:=xlValidateList, Formula1:=Right(deg, Len(deg) - 1) 'B1 hücresinde veri doğrulama oluşturur ve deg değişkenini liste olarak atar_
buradaki right fonksiyonu deg değişkenindeki ilk virgülü dikkate almamak için kullanılmıştır.
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 ' Kodun sadece B1 hücresindeki değişime göre çalışmasını sağlar
[a4:a65536].ClearContents ' A4:A65536 arasındaki verileri siler
[a4] = DateSerial([b1], 1, 1) 'A4 hücresine B1 de seçilen yılın ilk gününü yazar
fark = DateSerial([b1], 12, 31) - DateSerial([b1], 1, 1) + 4 'yılın ilk ve son günü arasındaki farktır. Bu şubat ayı 29 gün çektiği yıllardaki fark nedeniyle gereklidir.
[a4].AutoFill Destination:=Range("A4:A" & fark) 'Sürükle ile otomatik doldur işlemini yapar
End Sub


takirti 17-04-2007 17:54

Çözümler daha sonra bir dosyada toplanması mümkün olur mu acaba? Teşekkürler emekleriniz için..

zafer 18-04-2007 18:27

Merhaba

Alıntı:

takirti tarafından gönderildi (Mesaj 163608)
Çö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 19-04-2007 16:09

Merhaba

Cevabınızı yanlış yerde vermişsiniz.
Kandiliniz mübarek olsun

Alıntı:

takirti tarafından gönderildi (Mesaj 164086)
bende cvp yazsam bence örneklerle verır ve bizim görmemızı saglardık ama sizin yaptıgınız kendınız yazdıgınız örneklere vermıssınız ama bence göstermelısınız



Afferdersiniz biraz daha konuyu açabilirmisiniz.

baranby 09-05-2007 16:00

sagolun teşekkurler

salih_81 11-05-2007 08:23

güzel......................

pembepanter 16-02-2008 00:04

Merhaba,
takıldığım bir nokta var ve bir türlü çözüm oluşturamadım. Amacım başlangıç ve bitiş tarihini verip bu tarih aralığındaki aylarda kaç gün var? örneğin 10/9/2007 başlangıç 10/2/2008 bitiş tarihleri arasında 9. ayda kaç gün 10. ayda, 11. ayda, 12, 1 ve 2 aylarda kaç gün olduğunu bulmak için hangi fonksiyon yada fonksiyonları kullanmalıyım. Yardımcı olursanız sevinirim.
Şimdiden teşekkürler.


Saat 03:11

Powered by vBulletin Version 3.7.2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.