• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

İhtiyaç Çizelgesi

  • Konbuyu başlatan Konbuyu başlatan 1Al2Ver
  • Başlangıç tarihi Başlangıç tarihi
Katılım
5 Kasım 2007
Mesajlar
4,727
Excel Vers. ve Dili
64 Bit TR - Microsoft Office 365 - Win11 Home
Merhabalar,

Aylık Yemek Listesi ve Reçetelere göre, kişi sayısı belirleyerek, ihtiyaç olan ürünlerin listelendiği ve hesaplandığı bir çizelge oluşturmak istiyorum.

Orijinal yemek listesi ; "AYLIK_YEMEK_LİSTESİ" sayfasında B3:K30 aralığında olup, liste elle girilmektedir.

"AYLIK_YEMEK_LİSTESİ" sayfası, B3:K30 veya M2:M200 aralığına girilmiş listeden,

"REÇETE_LİSTESİ" sayfas,ı B2:C2000 aralığındaki gramajlara ve

"İHTİYAÇ_LİSTESİ" sayfası, P1 hücresindeki sayıya göre,

"İHTİYAÇ_LİSTESİ" sayfası, G2:K aralığına, hesaplanmış bir İhtiyaç_Çizelgesi elde etmek istiyorum.

Dosyayı örnekledim,

Teşekkür ederim.
 

Ekli dosyalar

Merhaba.

VBA bölümüne konu açmışsınız ama öncelikle formül ile çözüm önerisinde bulunayım.
VBA için de daha sonra bakarım inşallah.

-- REÇETE sayfası G2 hücresine (yardımcı sütun-liste boyunca kopyalanacak);
Kod:
=EĞERSAY(AYLIK_YEMEK_LİSTESİ!$C$3:$G$26;$B2)*F2
-- REÇETE sayfası H2 hücresine (yardımcı sütun-liste boyunca kopyalanacak);
Kod:
=EĞER(EĞERSAY($C$2:C2;C2)=1;ETOPLA($C$2:$C$704;$C2;$G$2:$G$704);"")
-- İHTİYAÇ sayfası G2 hücresine (liste boyunca kopyalanacak);
Kod:
=EĞER(EĞERHATA(İNDİS(REÇETE_LİSTESİ!$H$2:$H$704;KAÇINCI(B2;REÇETE_LİSTESİ!$C$2:$C$704;0);0);0)*$P$1=0;"";EĞERHATA(İNDİS(REÇETE_LİSTESİ!$H$2:$H$704;KAÇINCI(B2;REÇETE_LİSTESİ!$C$2:$C$704;0);0);0)*$P$1)
 
Sayın Ömer BARAN merhaba,

Bu haliyle işimi görmektedir, teşekkür ederim. İyi varsınız.

Zaman bulur da makro yazarsanız, bu listenin 2 tarih arası olmasını tercih ederim.

Saygılarımla.
 
Son düzenleme:
Tekrar merhaba.

Aşağıdaki kod'u boş bir modül'e yapıştırın ve çalıştırın.
Malzeme listesinde olmayan malzeme adları İHTİYAÇ sayfasının sonuna eklenir.
Reçete sayfasında içeriği yer almayan yemek adları da REÇETE sayfasının sonuna eklenir.
.
Kod:
[FONT="Arial Narrow"][COLOR="Red"]Kodların eklendiği örnek belge 6 numaralı cevapta.[/COLOR][/FONT]
 
Son düzenleme:
Merhaba Ömer bey,

İlk test sonuçları ; "İHTİYAÇ_ÇİZELGESİ" sayfası ; G1 ve J1 deki başlığı siliyor, (Kodda G:G ve J:J yi G2:G300 ve J2:J300 yaptım ama sonuç alamadım)

Teşekkür ederim.
 
Tekrar merhaba.

Belge ekte. Deneyiniz.
Kod'da bazı dğişiklik/ilaveler yaparak belgeye eklediğim için önceki cevabımdaki kodları sildim.
Belge yenilendi: 03.10.2016 00:18:00
.
 

Ekli dosyalar

Son düzenleme:
Sayın Ömer BARAN tekrar merhaba,

Öncelikle emeğiniz ve gösterdiğiniz özen için çok teşekkür ederim,

Beklediğimden de işlevsel olmuş, sağ olun.

Küçük bir değişiklik rica edebilir miyim ?

Eğer; G2<D2'den yada D2>G2' den ise ; J2 boş kalmalı,

Teşekkür ederim.
 
Merhaba.

Kod'daki kırmızı satırı (aşağıdan yukarıya doğru üçüncü Next'ten önce) silip yerine mavi olan iki satırı ekleyin.
Ayrıca AYLIK_YEMEK_LİSTESİ sayfasındaki L:M sütununa gerek kalmıyor (silebilirsiniz),
işlemler C:G sütun aralığındaki dolu hücrelerdeki yemek adları üzerinden yapılıyor.
Bir önceki cevabımdaki belgeyi güncelledim.
.
Kod:
[FONT="Arial Narrow"][COLOR="Red"]                iç.Cells(içsat, 10) = iç.Cells(içsat, 7) - iç.Cells(içsat, 4)[/COLOR]
[COLOR="Blue"]                If iç.Cells(içsat, 4) >= iç.Cells(içsat, 7) Then iç.Cells(içsat, 10) = ""
                If iç.Cells(içsat, 4) < iç.Cells(içsat, 7) Then iç.Cells(içsat, 10) = iç.Cells(içsat, 7) - iç.Cells(içsat, 4)[/COLOR][/FONT]
 
Son düzenleme:
Merhaba.

Kod'daki kırmızı satırı (aşağıdan yukarıya doğru üçüncü Next'ten önce) silip yerine mavi olan iki satırı ekleyin.
Ayrıca AYLIK_YEMEK_LİSTESİ sayfasındaki L:M sütununa gerek kalmıyor (silebilirsiniz),
işlemler C:G sütun aralığındaki dolu hücrelerdeki yemek adları üzerinden yapılıyor.
Bir önceki cevabımdaki belgeyi güncelledim.
.
Kod:
[FONT="Arial Narrow"][COLOR="Red"]                iç.Cells(içsat, 10) = iç.Cells(içsat, 7) - iç.Cells(içsat, 4)[/COLOR]
[COLOR="Blue"]                If iç.Cells(içsat, 4) >= iç.Cells(içsat, 7) Then iç.Cells(içsat, 10) = ""
                If iç.Cells(içsat, 4) < iç.Cells(içsat, 7) Then iç.Cells(içsat, 10) = iç.Cells(içsat, 7) - iç.Cells(içsat, 4)[/COLOR][/FONT]

Sayın Ömer BARAN tekrar merhaba,

Çizelge son ilave ile mükemmel çalışıyor, teşekkür ederim.

Saygılarımla.
 
Geri
Üst