sayfa adı getirme kod hatası

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
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Merhaba,

With Sheets("Sabitler").Range("E21").Validation

satırından önce aşağıdaki satırı ilave edin.

If Syf = "" Then Exit Sub

.
 
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
Oldu hocam teşekkür ederim.
 
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
Hocam "sayfa yok" diyebiliyormuyuz.
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Bu şekilde deneyin.
Kod:
If Syf = "" Then
    MsgBox "Sayfa Yok"
    Exit Sub
End If
 
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
Tamam hocam sağolun
 
Üst