- Katılım
- 9 Eylül 2010
- Mesajlar
- 868
- Excel Vers. ve Dili
- 2016&2019&2021 TR
- Altın Üyelik Bitiş Tarihi
- 29-09-2023
DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
Altın Üyelik Hakkında Bilgi
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rng As Range
If Intersect(Target, Range("H1")) Is Nothing Then Exit Sub
Application.ScreenUpdating = False
Select Case Target
Case "1. Grup"
With Range("$A$4:$T$" & Rows.Count)
.AutoFilter Field:=8, Criteria1:=Target
.AutoFilter Field:=16, Criteria1:="="
Set Rng = Range("Q5:R" & Cells(Rows.Count, "H").End(3).Row).SpecialCells(xlCellTypeVisible)
If Not Rng Is Nothing Then Rng.Value = "09:00"
End With
Case "2. Grup", "3. Grup"
With Range("$A$4:$T$" & Rows.Count)
.AutoFilter Field:=8, Criteria1:=Target
.AutoFilter Field:=16, Criteria1:="="
Set Rng = Range("T5:T" & Cells(Rows.Count, "H").End(3).Row).SpecialCells(xlCellTypeVisible)
If Not Rng Is Nothing Then Rng.Value = "İstirahatli"
End With
Case "Müracaat", "DBK"
With Range("$A$4:$T$" & Rows.Count)
.AutoFilter Field:=8, Criteria1:=Target
.AutoFilter Field:=16, Criteria1:="="
Set Rng = Range("Q5:Q" & Cells(Rows.Count, "H").End(3).Row).SpecialCells(xlCellTypeVisible)
If Not Rng Is Nothing Then Rng.Value = "09:00"
Set Rng = Range("R5:R" & Cells(Rows.Count, "H").End(3).Row).SpecialCells(xlCellTypeVisible)
If Not Rng Is Nothing Then Rng.Value = "18:00"
End With
End Select
On Error Resume Next
ActiveSheet.ShowAllData
On Error GoTo 0
Application.ScreenUpdating = True
End Sub
Select Case Target
Case "1. Grup"
With Range("$A$4:$T$" & Rows.Count)
.AutoFilter Field:=8, Criteria1:=Target
.AutoFilter Field:=16, Criteria1:="="
Set Rng = Range("Q5:R" & Cells(Rows.Count, "H").End(3).Row).SpecialCells(xlCellTypeVisible)
If Not Rng Is Nothing Then Rng.Value = "09:00"
.AutoFilter Field:=8, Criteria1:="<>" & Target
.AutoFilter Field:=16, Criteria1:="="
Set Rng = Range("T5:T" & Cells(Rows.Count, "H").End(3).Row).SpecialCells(xlCellTypeVisible)
If Not Rng Is Nothing Then Rng.Value = "İstirahatli"
End With
"Müracaat", "DBK" seçimleri için ne yapılacacak bunu belirtmemişsiniz? Gerçi sonradan farkettim bunlar zaten H1 hücresinden seçilemiyor.
DBK için hiç bir koşulda işlem yapılmıyor hocam. Müracaat ve NBA yazanlar için ise N sütununa 09.00 O sütununa ise 18.00 yazılacak. I1 Tatil yazdığında ise "T sütununa "İzinli" yazılacak.
Ayrıca "H1 hücresinde her tetiklendiğinde verilerin silinerek yenilenmesi gerekiyor hocam. " ifadenizden ne anlamalıyım?
Hocam H1 hücresi değiştiğinnde
H1=1. Grup olduğunda P sütunu boş ise H sütununda 1. Grup yazan tüm personel için N ve O sütunlarına 09.00 yazılacak. 2. ve 3 gruplarda ise yine P sütunu boş ise T sütununa "İstirahatli" yazacak. H sütununda DBK yazan personel hariç geri kalan tüm personel için yine P sütunu boş ise N sütununa 09.00 O sütununa ise 18.00 yazacak.
H1=2. Grup olduğunda P sütunu boş ise H sütununda 2. Grup yazan tüm personel için N ve O sütunlarına 09.00 yazılacak. 1. ve 3 gruplarda ise yine P sütunu boş ise T sütununa "İstirahatli" yazacak. H sütununda DBK yazan personel hariç geri kalan tüm personel için yine P sütunu boş ise N sütununa 09.00 O sütununa ise 18.00 yazacak.
H1=3. Grup olduğunda P sütunu boş ise H sütununda 3. Grup yazan tüm personel için N ve O sütunlarına 09.00 yazılacak. 1. ve 2 gruplarda ise yine P sütunu boş ise T sütununa "İstirahatli" yazacak. H sütununda DBK yazan personel hariç geri kalan tüm personel için yine P sütunu boş ise N sütununa 09.00 O sütununa ise 18.00 yazacak.
Diyelim ki "1. Grup" seçildi işlemler yapıldı. Sonra 2. Grup" seçildi. Bu aşamada neler silinecek?
Hocam silinecek veri yok bunu yanlış yazmışım.
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rng As Range
If Intersect(Target, Range("H1,I1")) Is Nothing Then Exit Sub
Application.ScreenUpdating = False
Select Case Target
Case "1. Grup"
With Range("$A$4:$T$" & Rows.Count)
.AutoFilter Field:=8, Criteria1:=Target
.AutoFilter Field:=16, Criteria1:="="
Set Rng = Range("N5:O" & Cells(Rows.Count, "H").End(3).Row).SpecialCells(xlCellTypeVisible)
If Not Rng Is Nothing Then Rng.Value = "09:00"
.AutoFilter Field:=8, Criteria1:="=2. Grup", Operator:=xlOr, Criteria2:="=3. Grup"
.AutoFilter Field:=16, Criteria1:="="
Set Rng = Range("T5:T" & Cells(Rows.Count, "H").End(3).Row).SpecialCells(xlCellTypeVisible)
If Not Rng Is Nothing Then Rng.Value = "İstirahatli"
.AutoFilter Field:=8, Criteria1:="=Müracaat", Operator:=xlOr, Criteria2:="=NBA"
.AutoFilter Field:=16, Criteria1:="="
Set Rng = Range("N5:N" & Cells(Rows.Count, "H").End(3).Row).SpecialCells(xlCellTypeVisible)
If Not Rng Is Nothing Then Rng.Value = "09:00"
Set Rng = Range("O5:O" & Cells(Rows.Count, "H").End(3).Row).SpecialCells(xlCellTypeVisible)
If Not Rng Is Nothing Then Rng.Value = "18:00"
End With
Case "2. Grup"
With Range("$A$4:$T$" & Rows.Count)
.AutoFilter Field:=8, Criteria1:=Target
.AutoFilter Field:=16, Criteria1:="="
Set Rng = Range("N5:O" & Cells(Rows.Count, "H").End(3).Row).SpecialCells(xlCellTypeVisible)
If Not Rng Is Nothing Then Rng.Value = "09:00"
.AutoFilter Field:=8, Criteria1:="=1. Grup", Operator:=xlOr, Criteria2:="=3. Grup"
.AutoFilter Field:=16, Criteria1:="="
Set Rng = Range("T5:T" & Cells(Rows.Count, "H").End(3).Row).SpecialCells(xlCellTypeVisible)
If Not Rng Is Nothing Then Rng.Value = "İstirahatli"
.AutoFilter Field:=8, Criteria1:="=Müracaat", Operator:=xlOr, Criteria2:="=NBA"
.AutoFilter Field:=16, Criteria1:="="
Set Rng = Range("N5:N" & Cells(Rows.Count, "H").End(3).Row).SpecialCells(xlCellTypeVisible)
If Not Rng Is Nothing Then Rng.Value = "09:00"
Set Rng = Range("O5:O" & Cells(Rows.Count, "H").End(3).Row).SpecialCells(xlCellTypeVisible)
If Not Rng Is Nothing Then Rng.Value = "18:00"
End With
Case "3. Grup"
With Range("$A$4:$T$" & Rows.Count)
.AutoFilter Field:=8, Criteria1:=Target
.AutoFilter Field:=16, Criteria1:="="
Set Rng = Range("N5:O" & Cells(Rows.Count, "H").End(3).Row).SpecialCells(xlCellTypeVisible)
If Not Rng Is Nothing Then Rng.Value = "09:00"
.AutoFilter Field:=8, Criteria1:="=1. Grup", Operator:=xlOr, Criteria2:="=2. Grup"
.AutoFilter Field:=16, Criteria1:="="
Set Rng = Range("T5:T" & Cells(Rows.Count, "H").End(3).Row).SpecialCells(xlCellTypeVisible)
If Not Rng Is Nothing Then Rng.Value = "İstirahatli"
.AutoFilter Field:=8, Criteria1:="=Müracaat", Operator:=xlOr, Criteria2:="=NBA"
.AutoFilter Field:=16, Criteria1:="="
Set Rng = Range("N5:N" & Cells(Rows.Count, "H").End(3).Row).SpecialCells(xlCellTypeVisible)
If Not Rng Is Nothing Then Rng.Value = "09:00"
Set Rng = Range("O5:O" & Cells(Rows.Count, "H").End(3).Row).SpecialCells(xlCellTypeVisible)
If Not Rng Is Nothing Then Rng.Value = "18:00"
End With
Case "Müracaat", "NBA"
With Range("$A$4:$T$" & Rows.Count)
.AutoFilter Field:=8, Criteria1:=Target
.AutoFilter Field:=16, Criteria1:="="
Set Rng = Range("N5:N" & Cells(Rows.Count, "H").End(3).Row).SpecialCells(xlCellTypeVisible)
If Not Rng Is Nothing Then Rng.Value = "09:00"
Set Rng = Range("O5:O" & Cells(Rows.Count, "H").End(3).Row).SpecialCells(xlCellTypeVisible)
If Not Rng Is Nothing Then Rng.Value = "18:00"
End With
Case "Tatil"
With Range("$A$4:$T$" & Rows.Count)
.AutoFilter Field:=8, Criteria1:="=Müracaat", Operator:=xlOr, Criteria2:="=NBA"
.AutoFilter Field:=16, Criteria1:="="
Set Rng = Range("N5:O" & Cells(Rows.Count, "H").End(3).Row).SpecialCells(xlCellTypeVisible)
If Not Rng Is Nothing Then Rng.Value = ""
Set Rng = Range("T5:T" & Cells(Rows.Count, "H").End(3).Row).SpecialCells(xlCellTypeVisible)
If Not Rng Is Nothing Then Rng.Value = "İstirahatli"
End With
End Select
On Error Resume Next
ActiveSheet.ShowAllData
On Error GoTo 0
Application.ScreenUpdating = True
End Sub