Excel Forum
ALTIN ÜYELİK Hakkında Bilgi


Geri Git   Excel Forum > EXCEL-Soruları > Makro-VBA
Atatürk
Şifremi Unuttum

DUYURU SİSTEMİ / REKLAM PANOSU

Makro-VBA Makro veya VBA ile ilgili sorularınızı buraya gönderebilirsiniz.
Dosya ekleyebilirsiniz

Özel Arama


Yanıtla
 
Paylaş Konu Araçları Görünüm Modları
Eski 12-01-2018, 21:27   #11
YUSUF44
Destek Ekibi
 
YUSUF44 kullanıcısının avatarı
 
Giriş: 04/01/2006
Şehir: Manisa, Kula
Mesaj: 6,483
Excel Vers. ve Dili:
İş : Ofis 2016 - Türkçe Ev: Ofis 2016 - Türkçe
Varsayılan

Teşekkürler sayın cems.

Zahmet olmazsa 2. kodu çalıştırdığınızda yemeklerden hiç seçilmeyen kalıyor mu diye kontrol eder misiniz?

Bu arada sayın uKİGS, bu kod tamamen örnek dosyanıza göre hazırlandı. Eğer dosyanızı ilerde değiştirirseniz örneğin Mart liste diye bir sayfa eklerseniz kodların da buna göre güncellenmesi gerekir. Ayrıca kodlar A1:E30 arasında işlem yaptığı için imza vs gibi hücreleri bu alanın dışında tutun.

Dosya değişikliği için de yerinizde olsam Şubat liste sayfasının adını "Aylık Liste" ve koddaki şubat liste ifadesini de Aylık Liste olarak değiştiririm. Daha sonra ayarlama yapınca bu sayfayı kopyalar, hangi ay ise o aya göre isimlendiririm. Aylık Liste sayfası temel listem olur.
__________________


Sorularınızı örnek dosyayla desteklemeniz çözüme ulaşmanızı kolaylaştırır.

Altın Üye olmanızı öneririm. Altın Üye değilseniz dosyanızı dosya yükleme sitelerinden birine yükleyip linkini paylaşabilirsiniz.
YUSUF44 Çevrimdışı   Alıntı Yaparak Cevapla
Eski 12-01-2018, 21:28   #12
uKiGS
Altın Üye
 
Giriş: 03/03/2008
Mesaj: 109
Excel Vers. ve Dili:
2013 ingilizce
Varsayılan

önerilerinizi dikkate alacağım. Çok teşekkür ederim tekrardan.
uKiGS Çevrimdışı   Alıntı Yaparak Cevapla
Eski 12-01-2018, 21:37   #13
YUSUF44
Destek Ekibi
 
YUSUF44 kullanıcısının avatarı
 
Giriş: 04/01/2006
Şehir: Manisa, Kula
Mesaj: 6,483
Excel Vers. ve Dili:
İş : Ofis 2016 - Türkçe Ev: Ofis 2016 - Türkçe
Varsayılan

Yalnız hanıma gösterdiğimde, "aynı öğünde mantı ve makarna olmaz" dedi.

Bu gibi durumları düşünürsek iş karışabilir. Bunu elle müdahale ederek düzeltebilirsiniz ya da aynı öğünde kesinlikle olmaması gereken yemekler varsa belirtirseniz kodda güncelleme yapmaya çalışayım.
__________________


Sorularınızı örnek dosyayla desteklemeniz çözüme ulaşmanızı kolaylaştırır.

Altın Üye olmanızı öneririm. Altın Üye değilseniz dosyanızı dosya yükleme sitelerinden birine yükleyip linkini paylaşabilirsiniz.
YUSUF44 Çevrimdışı   Alıntı Yaparak Cevapla
Eski 12-01-2018, 21:40   #14
uKiGS
Altın Üye
 
Giriş: 03/03/2008
Mesaj: 109
Excel Vers. ve Dili:
2013 ingilizce
Varsayılan

doğru demiş hanımınız ben Ana Yemek 2 yerine Ana Yemek 1 e yazmışım mantıyı sağolsun gözümüzden kaçanıda bulmuş bir teşekkürde hanımınıza o zaman

saygılar
uKiGS Çevrimdışı   Alıntı Yaparak Cevapla
Eski 12-01-2018, 21:52   #15
halit3
Uzman
 
halit3 kullanıcısının avatarı
 
Giriş: 18/01/2008
Mesaj: 10,593
Excel Vers. ve Dili:
2003 excel türkçe
Varsayılan

Merhaba YUSUF44

Kodlarınızda örnek olarak (ana yemek 1) bölümünde d sutünunda kaç kere yemek adı seçilmişse o yazıyor örneği burada vereyim atıyorum bir nohut yemeği iki kere seçmiş ama bir kuru fasülyeyi hiç seçmemiş burada bir seçileni bir daha seçmek için diğer yemek türlerinden hepsinin seçilmesi gerekir diye düşünüyorum.

Başka bir durumda (WorksheetFunction.RandBetween) fonksiyonu ofis 2007 nin altındaki versiyonlarda çalışmaz

kolay gelsin hayırlı akşamlar
__________________





Forum Kuralları
halit3 Çevrimdışı   Alıntı Yaparak Cevapla
Eski 12-01-2018, 21:57   #16
cems
Altın Üye
 
cems kullanıcısının avatarı
 
Giriş: 02/09/2005
Şehir: İstanbul
Mesaj: 1,705
Excel Vers. ve Dili:
office 2003 tr + office 2010 tr
Varsayılan

Sayın YUSUF44 ,

İkinci kod ile yaptığım denemede tuşa her dokunuşta kodlar normal çalışıyor , ancak inceleme uyarınızla bazı yemekleri atladığını gördüm. Atlanan yemekler her tuşta değişiyor ama tabloda sorun da çıkarmıyor. Sanıyorum bunu ilk kodlar da yapmıştı ama tabloda sorun olmayınca gözardı oldu .

İkinci koda ait 1 ve 2ci dokunuş sonuçları ektedir
Eklenmiş Resimler
Dosya Türü: jpg liste1.jpg (246.3 KB, 5 Görüntülenme)
Dosya Türü: jpg liste2 .jpg (249.7 KB, 6 Görüntülenme)
cems Çevrimdışı   Alıntı Yaparak Cevapla
Eski 12-01-2018, 22:30   #17
YUSUF44
Destek Ekibi
 
YUSUF44 kullanıcısının avatarı
 
Giriş: 04/01/2006
Şehir: Manisa, Kula
Mesaj: 6,483
Excel Vers. ve Dili:
İş : Ofis 2016 - Türkçe Ev: Ofis 2016 - Türkçe
Varsayılan

Sayın halit3'ün verdiği bilgiye göre hazırladığım kod aşağıdaki şekildedir. Bu şekilde her yemek en az 1 kez menüde yer alıyor:

Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
Sub yemek()
On Error Resume Next

Set s1 = Sheets("Yemek Liste")
Set s2 = Sheets("Aylık Liste")
çorbason = s1.Cells(Rows.Count, "A").End(3).Row
ana1son = s1.Cells(Rows.Count, "C").End(3).Row
ana2son = s1.Cells(Rows.Count, "E").End(3).Row

s1.Range("B2:B" & çorbason) = ""
s1.Range("D2:D" & ana1son) = ""
s1.Range("F2:F" & ana2son) = ""

s2.Range("A2:E6, A8:E12, A14:E18, A20:E24, A26:E30") = ""

For hafta = 1 To 25 Step 6
    For gün = 1 To 5
        If IsDate(s2.Cells(hafta, gün)) = True Then
10:
            çorba = WorksheetFunction.RandBetween(2, çorbason)
            If WorksheetFunction.CountIf(s2.Range("A" & hafta + 1 & ":E" & hafta + 5), s1.Cells(çorba, "A")) = 0 Then
                If s1.Cells(çorba, "B") <> "" And WorksheetFunction.CountBlank(s1.Range("B2:B" & çorbason)) > 0 Then
                    GoTo 10
                Else
                    s2.Cells(hafta + 1, gün) = s1.Cells(çorba, "A")
                    s1.Cells(çorba, "B") = s1.Cells(çorba, "B") + 1
                End If
            Else
                GoTo 10
            End If
20:
            ana1 = WorksheetFunction.RandBetween(2, ana1son)
            If WorksheetFunction.CountIf(s2.Range("A" & hafta + 1 & ":E" & hafta + 5), s1.Cells(ana1, "C")) = 0 Then
                If s1.Cells(ana1, "D") <> "" And WorksheetFunction.CountBlank(s1.Range("D2:D" & ana1son)) > 0 Then
                    GoTo 20
                Else
                    s2.Cells(hafta + 2, gün) = s1.Cells(ana1, "C")
                    s1.Cells(ana1, "D") = s1.Cells(ana1, "D") + 1
                End If
            Else
                GoTo 20
            End If
30:
            ana2 = WorksheetFunction.RandBetween(2, ana2son)
            If WorksheetFunction.CountIf(s2.Range("A" & hafta + 1 & ":E" & hafta + 5), s1.Cells(ana2, "E")) = 0 Then
                If s1.Cells(ana2, "F") <> "" And WorksheetFunction.CountBlank(s1.Range("F2:F" & ana2son)) > 0 Then
                    GoTo 30
                Else
                    s2.Cells(hafta + 3, gün) = s1.Cells(ana2, "E")
                    s1.Cells(ana2, "F") = s1.Cells(ana2, "F") + 1
                End If
            Else
                GoTo 30
            End If
        End If
    Next
Next
            
End Sub
Yalnız bu durumda şöyle bir sorun çıkabilir: Eğer yemek çeşidi sayısı gün sayısından fazla olursa makro sonsuz döngüye girebilir. Bunu önlemek için kodun başına on error satırını ekledim. Muhtemelen yemek çeşidiniz gün sayısından fazla olmayacağı için böyle bir sıkıntı da olmaz.

Sayın halit3 ve cems'e de desteklerinden dolayı teşekkür ederim.
__________________


Sorularınızı örnek dosyayla desteklemeniz çözüme ulaşmanızı kolaylaştırır.

Altın Üye olmanızı öneririm. Altın Üye değilseniz dosyanızı dosya yükleme sitelerinden birine yükleyip linkini paylaşabilirsiniz.
YUSUF44 Çevrimdışı   Alıntı Yaparak Cevapla
Eski 12-01-2018, 23:16   #18
cems
Altın Üye
 
cems kullanıcısının avatarı
 
Giriş: 02/09/2005
Şehir: İstanbul
Mesaj: 1,705
Excel Vers. ve Dili:
office 2003 tr + office 2010 tr
Varsayılan

Sayın YUSUF44

Soran için konu tamamlandı veya yeterli mi bilmiyorum , ancak 4cü kodu aynı tabloya uyguladığımda yemeklerin yanında saliselik sayılar beliriyor ve kayboluyor, tekrar da tetiklenmiyor. Her iki durumda da tabloya hiç bir ilk ya da değişen veri aktarılmıyor.

Yemek sayısını toplamda 30 un altına düşürdüm , sonuç değişmedi. Kodlar takılmıyor yürüyor sonlanıyor da ama , veriler tabloya " en azından bende " düşmüyor... Aylık Liste sayfasında da veri oluşmuyor.

Sadece bilginiz için ; soran için konu kapandı ise üzerinde durmaya gerek de kalmayabilir.
cems Çevrimdışı   Alıntı Yaparak Cevapla
Eski 13-01-2018, 06:13   #19
YUSUF44
Destek Ekibi
 
YUSUF44 kullanıcısının avatarı
 
Giriş: 04/01/2006
Şehir: Manisa, Kula
Mesaj: 6,483
Excel Vers. ve Dili:
İş : Ofis 2016 - Türkçe Ev: Ofis 2016 - Türkçe
Varsayılan

Bende öyle bir hata vermemişti. Bazen dengesiz dağıtabiliyor ama her yemek en az bir kez yer alıyor.
__________________


Sorularınızı örnek dosyayla desteklemeniz çözüme ulaşmanızı kolaylaştırır.

Altın Üye olmanızı öneririm. Altın Üye değilseniz dosyanızı dosya yükleme sitelerinden birine yükleyip linkini paylaşabilirsiniz.
YUSUF44 Çevrimdışı   Alıntı Yaparak Cevapla
Eski 13-01-2018, 07:05   #20
halit3
Uzman
 
halit3 kullanıcısının avatarı
 
Giriş: 18/01/2008
Mesaj: 10,593
Excel Vers. ve Dili:
2003 excel türkçe
Varsayılan

Alternatif dosya ekliyorum.

işlem akışı

veri sayfasında temizle düğmesine tıkla
veri sayfasında J1 Tarih başlangıcını yaz
veri sayfasında K1 Tarih batişini yaz
veri sayfasında K sütununtaki Tatil yazılarını elle sil veya Tatil günlerini elle yaz
veri sayfasında Takvim aktar düğmesine tıkla
veri sayfasına çorbalar,anayemek1,anayemek2 bölümlerini yemek isimlerini yaz
veri sayfasında aktar1 düğmesine tıkla birden fazla tıklamak gerekebilir tarih sutunu kadar tıklanacak.
veri sayfasında aktar2 düğmesine tıkla birden fazla tıklamak gerekebilir tarih sutunu kadar tıklanacak.
veri sayfasında aktar3 düğmesine tıkla birden fazla tıklamak gerekebilir tarih sutunu kadar tıklanacak.
Tablo sayfasında H1 Hücresinden ilgili ayı seç ve aktar düğmesine tıkla
Eklenmiş Dosyalar
Dosya Türü: xls Kitap2.xls (94.5 KB, 15 Görüntülenme)
__________________





Forum Kuralları
halit3 Çevrimdışı   Alıntı Yaparak Cevapla
Yanıtla


Konu Araçları
Görünüm Modları

Gönderme Kuralları
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Açık
SimgelerAçık
[IMG] kodu Açık
HTML kodu Kapalı


Saat 17:44


Bu forum Elit NET - www.elitnet.com.tr tarafından sunulmaktadır.

Excel Eğitimi - Mobil Uygulama - Çorlu - Çorlu Web Tasarım -- Beylikdüzü mali müşavir - Lingerie - Dyeing Machine - Karton Bardak- Çorlu Dil Konuşma Terapisti- Çorlu Özel Eğitim- Site Yönetimi- Pronet Tekirdağ- Çorlu Kamera- Pronet Edirne- Pronet Çorlu- Çorlu Araç Takip- Çorlu Su Arıtma- Gebze Emlak- Rampa- Rotary- Çorlu İnternet Sitesi- Çorlu Sürücü Kursu- Çorlu Sürücü Kursu- Şişli Avukat- Edirne Serbest Muhasebeci- Çorlu Etüt- İstanbul Botanik- Çorlu Sigorta- Kağıt Bardak- Kaplan Tekstil- Çorlu Perde- Çorlu Havuz- Makina- Danışmazlar-
Powered by vBulletin Version 3.7.2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Advertisement System V2.6 By   Branden