sayfa silme onay penceresinin iptal edilmesi

uzmanamele

Uzman
Uzman
Katılım
26 Eylül 2007
Mesajlar
9,421
Excel Vers. ve Dili
excel 2010
merhaba
Sub Auto_Open()
Application.CommandBars.FindControl(ID:=847).Enabled = False
Application.CommandBars.FindControl(ID:=848).Enabled = False
End Sub

Sub Auto_Close()
Application.CommandBars.FindControl(ID:=847).Enabled = True
Application.CommandBars.FindControl(ID:=848).Enabled = True
End Sub

Sub sayfayı_sil()
Application.CommandBars.FindControl(ID:=847).Enabled = True
If MsgBox("Sayfayı Silmek İstediğinizden Emin misiniz?", vbYesNo) = vbNo Then Exit Sub
ActiveSheet.Delete
Application.CommandBars.FindControl(ID:=847).Enabled = False
End Sub

yukarıdaki kodlar sayesinde sil ve taşı veya kopyala işlemini iptal edebiliyorum.
sayfa silmek için kullandığım kod çalıştığında onay mesajı çıkıyor.
yapmak istediğim, msgbox'da onay verdikten sonra excelin standart onay mesajını tekrar çıkmasın.
bunun için nasıl bir komut satırı ilave etmem gerekir?
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,369
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
Silmeden önce,
Kod:
Application.DisplayAlerts = False
satırını eklemelisiniz..
 

uzmanamele

Uzman
Uzman
Katılım
26 Eylül 2007
Mesajlar
9,421
Excel Vers. ve Dili
excel 2010
merhaba
syn Zeki Gürsoy çok teşekkür ederim.
çalışma kitabımda sayfa kopyalamayı iptal edip bu işlemi makro ile yapıyorum.
örneğin kesinlikle silinmemesi gereken bir sayfayı makro ile kopyalıyorum.

sorun şu; bu sayfanın birkaç kopyasını aldıktan sonra bunlardan birini silmek istediğimde sil makrosuyla silebileyim ama asıl sayfa hiçbirşekilde silinemesin.
sayfayı makro ile kopyaladığım için bu sayfanın üzerinde "sayfayı sil" butonu bulunması gerekiyor.
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,369
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
Peki şöyle bir mantık yürütsek olur mu?
Eğer aktif sayfa adı "Orjinal" ise menu pasif, diğer durumda aktif olsun.
Örneğin:
Kod:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If Not ActiveSheet.Name = "Orjinal" Then
    Call EnableMenu
Else
    Call DisableMenu
End If
End Sub
 

uzmanamele

Uzman
Uzman
Katılım
26 Eylül 2007
Mesajlar
9,421
Excel Vers. ve Dili
excel 2010
merhaba
syn Zeki Gürsoy, sanırım bu mantık uygulanabilir.
çok teşekkür ederim.
 

uzmanamele

Uzman
Uzman
Katılım
26 Eylül 2007
Mesajlar
9,421
Excel Vers. ve Dili
excel 2010
merhaba
syn Zeki Gürsoy, aşağıdaki şekilde uyarladım, işimi gördü.
çok teşekkürler

Sub Auto_Open()
Application.CommandBars.FindControl(ID:=847).Enabled = False
Application.CommandBars.FindControl(ID:=848).Enabled = False
End Sub

Sub sayfayı_sil()
If Not ActiveSheet.Name = "ana_sayfa" Then
Application.CommandBars.FindControl(ID:=847).Enabled = True
If MsgBox("Sayfayı Silmek İstediğinizden Emin misiniz?", vbYesNo) = vbNo Then Exit Sub
Application.DisplayAlerts = False
ActiveSheet.Delete
Application.CommandBars.FindControl(ID:=847).Enabled = False
Else
Msg = CreateObject("WScript.Shell").Popup("Sayfayı Silmeye Yetkiniz Yok!!!" & vbLf & "iyi çalışmalar", 2, "UYARI")
End If
End Sub

Sub Auto_Close()
ThisWorkbook.Application.CommandBars.FindControl(ID:=847).Enabled = True
ThisWorkbook.Application.CommandBars.FindControl(ID:=848).Enabled = True
End Sub
 
Üst