- Katılım
- 13 Mayıs 2005
- Mesajlar
- 761
- Excel Vers. ve Dili
- 2010 Türkçe
- Altın Üyelik Bitiş Tarihi
- 03.11.2024
Aşağıdaki kodu sayfa adlarını getirmede kullanıyordum. Yine burda hocalarımdan almıştım. Hiç sayfa yokken 400 hatası veriyor. 1 sayfa ekleyince çalışıyor. Hiç sayfa yoksa uyarı verdirtemezmiyiz sayfa yok gibi. Belki o zaman hata vermez.
Kod:
Private Sub Workbook_NewSheet(ByVal Sh As Object)
VeriDogrulama
End Sub
Private Sub Workbook_SheetBeforeDelete(ByVal Sh As Object)
VeriDogrulama
End Sub
Sub VeriDogrulama()
Sheets("Sabitler").Select
ActiveSheet.Unprotect "61"
Dim Sh As Worksheet, _
Syf As String
For Each Sh In Worksheets
If Not Sh.Name = "Sabitler" And Not Sh.Name = "Puantaj" And Not Sh.Name = "Ekstra" And Not Sh.Name = "F.Mesai" And Not Sh.Name = "Günlük Çal.Çiz." And Not Sh.Name = "Personel Listesi" And Not Sh.Name = "Fiili Görevler" And Not Sh.Name = "Kodlar" And Not Sh.Name = "Vardiyalar" And Not Sh.Name = "Resmi Tatiller" And Not Sh.Name = "Puantaj Açıklamaları" And Not Sh.Name = "ArşivP" And Not Sh.Name = "ArşivF.M." And Not Sh.Name = "MesaiCetveliPersonel" Then
If Syf = "" Then
Syf = Sh.Name
Else
Syf = Syf & "," & Sh.Name
End If
End If
Next Sh
With Sheets("Sabitler").Range("E21").Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:=Syf
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
MsgBox "İşlem tamam.", vbInformation
Sheets("Sabitler").Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowFormattingCells:=True
End Sub