DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
Altın Üyelik Hakkında Bilgi
Sub yemek()
Set s1 = Sheets("Yemek Liste")
Set s2 = Sheets("Şubat 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
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
s2.Cells(hafta + 1, gün) = s1.Cells(çorba, "A")
s1.Cells(çorba, "B") = s1.Cells(çorba, "B") + 1
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
s2.Cells(hafta + 2, gün) = s1.Cells(ana1, "C")
s1.Cells(ana1, "D") = s1.Cells(ana1, "D") + 1
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
s2.Cells(hafta + 3, gün) = s1.Cells(ana2, "E")
s1.Cells(ana2, "F") = s1.Cells(ana2, "F") + 1
Else
GoTo 30
End If
End If
Next
Next
End Sub
Sub yemek()
Set s1 = Sheets("Yemek Liste")
Set s2 = Sheets("Şubat 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") = ""
öğün = WorksheetFunction.Count(s2.[A1:E30])
çorbaçeşidi = Int(öğün / (çorbason - 1)) + 1
ana1çeşidi = Int(öğün / (ana1son - 1)) + 1
ana2çeşidi = Int(öğün / (ana2son - 1)) + 1
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 And _
s1.Cells(çorba, "B") < çorbaçeşidi Then
s2.Cells(hafta + 1, gün) = s1.Cells(çorba, "A")
s1.Cells(çorba, "B") = s1.Cells(çorba, "B") + 1
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 And _
s1.Cells(ana1, "D") < ana1çeşidi Then
s2.Cells(hafta + 2, gün) = s1.Cells(ana1, "C")
s1.Cells(ana1, "D") = s1.Cells(ana1, "D") + 1
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 And _
s1.Cells(ana2, "F") < ana2çeşidi Then
s2.Cells(hafta + 3, gün) = s1.Cells(ana2, "E")
s1.Cells(ana2, "F") = s1.Cells(ana2, "F") + 1
Else
GoTo 30
End If
End If
Next
Next
End Sub
Sub yemek()
Set s1 = Sheets("Yemek Liste")
Set s2 = Sheets("Şubat 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") = ""
öğün = WorksheetFunction.Count(s2.[A1:E30])
çorbaçeşidi = Int(öğün / (çorbason - 1)) + 1
ana1çeşidi = Int(öğün / (ana1son - 1)) + 1
ana2çeşidi = Int(öğün / (ana2son - 1)) + 1
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
s2.Cells(hafta + 1, gün) = s1.Cells(çorba, "A")
s1.Cells(çorba, "B") = s1.Cells(çorba, "B") + 1
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
s2.Cells(hafta + 2, gün) = s1.Cells(ana1, "C")
s1.Cells(ana1, "D") = s1.Cells(ana1, "D") + 1
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
s2.Cells(hafta + 3, gün) = s1.Cells(ana2, "E")
s1.Cells(ana2, "F") = s1.Cells(ana2, "F") + 1
Else
GoTo 30
End If
End If
Next
Next
End Sub
Sayın YUSUF44' ün verdiği kodlar tam da bu işi yapıyor , hafta içinde tekrar eden yemek yok ve bir aylık listeyi çıkarıyor.bir tuş yardımıyla otomatik olarak haftalık ya da aylık doldursun listeyi mümkün müdür?
Sayın YUSUF44 3 kod da bende sorunsuz çalıştı ve hafta içinde hiç birinde mükerrer çıkarmadı. Sayenizde liste değil sanki tabaklar uçuştu ,bu saatte acıktığımı hatırladımbenim bilgisayarım bu makroyu çalıştırdığımda hep dondu. Tam çalışmasının sonucunu inceleyemedim.
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