- Katılım
- 28 Eylül 2007
- Mesajlar
- 4,017
- Excel Vers. ve Dili
- 2013 Türkçe
1- Önce dosyayı bilgisayarınıza kaydedin.
2- Bu dosyanızı ve taşımak istediğiniz dosyanızı açın.
3- Bu dosyanın sayfa adına sağ tıklayıp "Taşı veya Kopyala" seçeneğini tıklayıp kendi dosyanıza taşıyın veya kopya oluşturun.
4- Daha sonra kendi dosyanızda kod görüntüle yapın ve bir tane Modül ekleyin.
5- O modüle bu kodları yapıştırın.
8- Kod sayfasında Nöbet sayfasını seçin ve bu kodları yapıştırın.
2- Bu dosyanızı ve taşımak istediğiniz dosyanızı açın.
3- Bu dosyanın sayfa adına sağ tıklayıp "Taşı veya Kopyala" seçeneğini tıklayıp kendi dosyanıza taşıyın veya kopya oluşturun.
4- Daha sonra kendi dosyanızda kod görüntüle yapın ve bir tane Modül ekleyin.
5- O modüle bu kodları yapıştırın.
7- Sonra düğmelere sağ tıklayın ve makro ataması yapın.Sub Nöbet()
Application.ScreenUpdating = False
Range("B6:K36") = ""
For i = 1 To 31
If Cells(i, 19) > 5 Or WorksheetFunction.CountIf(Range("M6:M36"), i) > 0 Then GoTo 10
alt = Cells(Rows.Count, 2).End(3).Row + 1
Cells(alt, 2) = Cells(i, 18).Value
10
Next
son = Cells(Rows.Count, 2).End(3).Row
ögr = Cells(Rows.Count, 26).End(3).Row
For i = 6 To son
'----KAPI
For j = 3 To ögr
Range("AC3:AC" & ögr) = 0
If Cells(j, 27) = "K" Then GoTo 20
adet = WorksheetFunction.CountIf(Range("D6:J36"), Cells(j, 26))
If adet = 1 Then GoTo 20
Cells(i, 4) = Cells(j, 26).Value
Cells(i, 5) = Cells(j, 27).Value
Cells(j, 28) = Cells(j, 28) + 1
Cells(j, 29) = 1
Exit For
20
Next
'----1. KAT
Range("Z3:AC" & ögr).Sort Range("AC3"), xlAscending
Range("AC3:AC" & ögr) = ""
Range("Z3:AB" & ögr).Sort Range("AB3"), xlAscending
For j = 3 To ögr
Range("AC3:AC" & ögr) = 0
adet = WorksheetFunction.CountIf(Range("D6:J36"), Cells(j, 26))
If adet = 1 Then GoTo 30
Cells(i, 7) = Cells(j, 26).Value
Cells(i, 8) = Cells(j, 27).Value
Cells(j, 28) = Cells(j, 28) + 1
Cells(j, 29) = 1
Exit For
30
Next
Range("Z3:AC" & ögr).Sort Range("AC3"), xlAscending
Range("AC3:AC" & ögr) = ""
Range("Z3:AB" & ögr).Sort Range("AB3"), xlAscending
'----2. KAT
For j = 3 To ögr
Range("AC3:AC" & ögr) = 0
adet = WorksheetFunction.CountIf(Range("D6:J36"), Cells(j, 26))
If adet = 1 Then GoTo 40
Cells(i, 10) = Cells(j, 26).Value
Cells(i, 11) = Cells(j, 27).Value
Cells(j, 28) = Cells(j, 28) + 1
Cells(j, 29) = 1
Exit For
40
Next
Range("Z3:AC" & ögr).Sort Range("AC3"), xlAscending
Range("AC3:AC" & ögr) = ""
Range("Z3:AB" & ögr).Sort Range("AB3"), xlAscending
Next
Range("M6:M36") = ""
Application.ScreenUpdating = True
MsgBox "Nöbet çizelgesi tamamlandı.", vbInformation, "Uyarı"
End Sub
Sub Temizle()
sor = MsgBox("Tüm veriler silinsin mi?", vbYesNo, "Uyarı")
If sor = vbNo Then Exit Sub
Application.ScreenUpdating = False
Range("B6:K36") = ""
Range("Z:AB") = ""
son = Cells(Rows.Count, "AG").End(3).Row
Range("Z3:Z" & son) = Range("AG3:AG" & son).Value
Range("AA3:AA" & son) = Range("AI3:AI" & son).Value
Range("AB3:AB" & son) = 0
End Sub
Sub NöbeteGeç()
ActiveWindow.ScrollColumn = 1
ActiveWindow.ScrollRow = 1
End Sub
Sub ListeyeGeç()
ActiveWindow.ScrollColumn = 30
ActiveWindow.ScrollRow = 1
End Sub
8- Kod sayfasında Nöbet sayfasını seçin ve bu kodları yapıştırın.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Range("AE2:AN2"), Target) Is Nothing Then Exit Sub
If Target.CountLarge > 1 Then Exit Sub
son = Cells(Rows.Count, "AG").End(3).Row
süt = ActiveCell.Column
Range("AF3:AN" & son).Sort Cells(3, süt)
End Sub
Ekli dosyalar
-
44.4 KB Görüntüleme: 13