- Katılım
- 5 Kasım 2007
- Mesajlar
- 4,727
- Excel Vers. ve Dili
- 64 Bit TR - Microsoft Office 365 - Win11 Home
DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
Altın Üyelik Hakkında Bilgi
[FONT="Arial Narrow"][B][COLOR="Blue"]Sub YEMEK_AL()[/COLOR][/B]
' Set satırında sayfa adlarını kısaltılmış olarak kullanmak için tanımlama yapılıyor
Set rl = Sheets("RAPOR_LİSTESİ"): Set ayl = Sheets("AYLIK_YEMEK_LİSTESİ")
'Önceki tarihe ait yemek adları temizleniyor.
rl.Range("H5:I13").ClearContents
'Eğer RAPOR H1 hücresi boşsa veya buradaki tarih AYLIK sayfası B sütununda yoksa İŞLEM SONLANDIRILACAK.
If rl.[H1] = "" Or WorksheetFunction.CountIf(ayl.Range("B3:B33"), rl.[H1]) = 0 Then Exit Sub
'H1 hücresindeki tarih AYLIK LİSTEnin kaçıncı satırında?
satır = WorksheetFunction.Match(rl.[H1], ayl.Range("B3:B33"), 0) + 2
'Tespit edilen satırda AYLIK LİSTE son dolu sütun kaçıncı sütun?
sonsütun = 11 - WorksheetFunction.CountBlank(ayl.Range(ayl.Cells(satır, "C"), ayl.Cells(satır, "K")))
'Eğer ilgili satırda son dolu sütun no 2 ise yani hiç yemek yoksa İŞLEM SONLANDIRILACAK.
If [COLOR="Red"]sonsütun[/COLOR] = 2 Then Exit Sub
'Eğer son dolu sütun no 2'den büyükse yemek adlarını RAPOR sayfasına almak için döngüye başlanıyor.
'İşlem 3'üncü sütundan SONSÜTUNA kadar tekrarlanacak
For sut = 3 To sonsütun
'RAPOR sayfasında verinin yazılacağı SATIR NO = AYLIK sayfasındaki SÜTUN NO + 2
rl.Cells(sut + 2, "H") = ayl.Cells(satır, sut)
Next
[B]End Sub[/B][/FONT]
[FONT="Arial Narrow"][B]Private Sub Worksheet_Change(ByVal Target As Range)[/B]
If Intersect(Target, [[B][COLOR="Blue"]H1[/COLOR][/B]]) Is Nothing Then Exit Sub
Call [B][COLOR="Blue"]YEMEK_AL[/COLOR][/B]
[B]End Sub[/B][/FONT]