vbyesnocancel

muratgunay48

Altın Üye
Katılım
10 Şubat 2010
Mesajlar
1,212
Excel Vers. ve Dili
Office 365 - Türkçe (64 bit)
Altın Üyelik Bitiş Tarihi
31-01-2026
Arkadaşlar, sayın hocalarım, iptal dediğim zaman neden iptal olmuyor da excel'in kaydet kaydetme bölümü çıkıyor.
Yardımcı olabilir misiniz? Neresini yanlış yazdım acaba?

Kod:
Sub Auto_Close()
Application.DisplayAlerts = False
soru = MsgBox("Yaptığınız Değişiklikler Kaydedilsin mi?", vbYesNoCancel, "muratgunay48")
If soru = vbCancel Then
    Exit Sub
ElseIf soru = vbNo Then
    MsgBox "Yaptığınız değişiklikler kaydedilmeyecek...!", vbCritical, "muratgunay48"
    ActiveWorkbook.Close False
Else
MsgBox "Yaptığınız değişiklikler kaydedilecek...!", vbInformation, "muratgunay48"
    ActiveWorkbook.Close True
End If
Application.DisplayAlerts = True
End Sub
Teşekkür ederim. Saygılarımla.
 

cems

Altın Üye
Katılım
2 Eylül 2005
Mesajlar
2,525
Excel Vers. ve Dili
office 2010 tr 32bit
Altın Üyelik Bitiş Tarihi
13-06-2029
Sub Auto_Close()
' Uyarıları kapat
Application.DisplayAlerts = False

' Kullanıcıya mesaj kutusu göster
soru = MsgBox("Yaptığınız Değişiklikler Kaydedilsin mi?", vbYesNoCancel, "muratgunay48")

If soru = vbCancel Then
' Eğer iptal seçilmişse çık
Exit Sub
ElseIf soru = vbNo Then
' Eğer hayır seçilmişse kaydetmeden kapan
MsgBox "Yaptığınız değişiklikler kaydedilmeyecek...!", vbCritical, "muratgunay48"
ActiveWorkbook.Close False
Else
' Eğer evet seçilmişse kaydedip kapan
MsgBox "Yaptığınız değişiklikler kaydedilecek...!", vbInformation, "muratgunay48"
ActiveWorkbook.Close True
End If

' Uyarıları tekrar aç
Application.DisplayAlerts = True
End Sub
 

muratgunay48

Altın Üye
Katılım
10 Şubat 2010
Mesajlar
1,212
Excel Vers. ve Dili
Office 365 - Türkçe (64 bit)
Altın Üyelik Bitiş Tarihi
31-01-2026
Sub Auto_Close()
' Uyarıları kapat
Application.DisplayAlerts = False

' Kullanıcıya mesaj kutusu göster
soru = MsgBox("Yaptığınız Değişiklikler Kaydedilsin mi?", vbYesNoCancel, "muratgunay48")

If soru = vbCancel Then
' Eğer iptal seçilmişse çık
Exit Sub
ElseIf soru = vbNo Then
' Eğer hayır seçilmişse kaydetmeden kapan
MsgBox "Yaptığınız değişiklikler kaydedilmeyecek...!", vbCritical, "muratgunay48"
ActiveWorkbook.Close False
Else
' Eğer evet seçilmişse kaydedip kapan
MsgBox "Yaptığınız değişiklikler kaydedilecek...!", vbInformation, "muratgunay48"
ActiveWorkbook.Close True
End If

' Uyarıları tekrar aç
Application.DisplayAlerts = True
End Sub
Çok teşekkür ederim hocam. Emeğinize sağlık.
 

muratgunay48

Altın Üye
Katılım
10 Şubat 2010
Mesajlar
1,212
Excel Vers. ve Dili
Office 365 - Türkçe (64 bit)
Altın Üyelik Bitiş Tarihi
31-01-2026
Sub Auto_Close()
' Uyarıları kapat
Application.DisplayAlerts = False

' Kullanıcıya mesaj kutusu göster
soru = MsgBox("Yaptığınız Değişiklikler Kaydedilsin mi?", vbYesNoCancel, "muratgunay48")

If soru = vbCancel Then
' Eğer iptal seçilmişse çık
Exit Sub
ElseIf soru = vbNo Then
' Eğer hayır seçilmişse kaydetmeden kapan
MsgBox "Yaptığınız değişiklikler kaydedilmeyecek...!", vbCritical, "muratgunay48"
ActiveWorkbook.Close False
Else
' Eğer evet seçilmişse kaydedip kapan
MsgBox "Yaptığınız değişiklikler kaydedilecek...!", vbInformation, "muratgunay48"
ActiveWorkbook.Close True
End If

' Uyarıları tekrar aç
Application.DisplayAlerts = True
End Sub
Hocam iptal deyince dosya kapanıyor. Sadece kutunun kaybolmasını nasıl sağlarız acaba?
 

cems

Altın Üye
Katılım
2 Eylül 2005
Mesajlar
2,525
Excel Vers. ve Dili
office 2010 tr 32bit
Altın Üyelik Bitiş Tarihi
13-06-2029
Sub Auto_Close()
' Uyarıları kapat
Application.DisplayAlerts = False

' Kullanıcıya mesaj kutusu göster
soru = MsgBox("Yaptığınız Değişiklikler Kaydedilsin mi?", vbYesNoCancel, "muratgunay48")

If soru = vbCancel Then
' Eğer iptal seçilmişse sadece kutuyu kapat, Excel açık kalsın
Application.DisplayAlerts = True
Exit Sub
ElseIf soru = vbNo Then
' Eğer hayır seçilmişse kaydetmeden kapan
MsgBox "Yaptığınız değişiklikler kaydedilmeyecek...!", vbCritical, "muratgunay48"
ActiveWorkbook.Close False
Else
' Eğer evet seçilmişse kaydedip kapan
MsgBox "Yaptığınız değişiklikler kaydedilecek...!", vbInformation, "muratgunay48"
ActiveWorkbook.Close True
End If

' Uyarıları tekrar aç
Application.DisplayAlerts = True
End Sub
 

muratgunay48

Altın Üye
Katılım
10 Şubat 2010
Mesajlar
1,212
Excel Vers. ve Dili
Office 365 - Türkçe (64 bit)
Altın Üyelik Bitiş Tarihi
31-01-2026
Sub Auto_Close()
' Uyarıları kapat
Application.DisplayAlerts = False

' Kullanıcıya mesaj kutusu göster
soru = MsgBox("Yaptığınız Değişiklikler Kaydedilsin mi?", vbYesNoCancel, "muratgunay48")

If soru = vbCancel Then
' Eğer iptal seçilmişse sadece kutuyu kapat, Excel açık kalsın
Application.DisplayAlerts = True
Exit Sub
ElseIf soru = vbNo Then
' Eğer hayır seçilmişse kaydetmeden kapan
MsgBox "Yaptığınız değişiklikler kaydedilmeyecek...!", vbCritical, "muratgunay48"
ActiveWorkbook.Close False
Else
' Eğer evet seçilmişse kaydedip kapan
MsgBox "Yaptığınız değişiklikler kaydedilecek...!", vbInformation, "muratgunay48"
ActiveWorkbook.Close True
End If

' Uyarıları tekrar aç
Application.DisplayAlerts = True
End Sub
Hocam ben mi yanlış yapıyorum acaba?
 

Ekli dosyalar

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
C#:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Dim soru As VbMsgBoxResult

    Application.DisplayAlerts = False

    soru = MsgBox("Yaptığınız Değişiklikler Kaydedilsin mi?", vbYesNoCancel, "muratgunay48")
   
    Select Case soru
        Case VbMsgBoxResult.vbYes
            ThisWorkbook.Close True
        Case VbMsgBoxResult.vbNo
            ThisWorkbook.Close False
        Case Else 'Cancel
            Cancel = True
    End Select
End Sub
.
 

muratgunay48

Altın Üye
Katılım
10 Şubat 2010
Mesajlar
1,212
Excel Vers. ve Dili
Office 365 - Türkçe (64 bit)
Altın Üyelik Bitiş Tarihi
31-01-2026
C#:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Dim soru As VbMsgBoxResult

    Application.DisplayAlerts = False

    soru = MsgBox("Yaptığınız Değişiklikler Kaydedilsin mi?", vbYesNoCancel, "muratgunay48")
  
    Select Case soru
        Case VbMsgBoxResult.vbYes
            ThisWorkbook.Close True
        Case VbMsgBoxResult.vbNo
            ThisWorkbook.Close False
        Case Else 'Cancel
            Cancel = True
    End Select
End Sub
.
Hocam öncelikle teşekkür ederim.
Hocam, İPTAL deyince sorun yok. Tam istediğim gibi.
Ancak EVET desem de HAYIR desem de ikinci kere soruyor ve tekrar tıklayınca şöyle bir kalıntı dosya bırakıyor. (Kaydet deyiysem, kaydediyor, sıkıntı yok)

Ekran görüntüsü 2025-01-06 224354.png
 

muratgunay48

Altın Üye
Katılım
10 Şubat 2010
Mesajlar
1,212
Excel Vers. ve Dili
Office 365 - Türkçe (64 bit)
Altın Üyelik Bitiş Tarihi
31-01-2026
Bu konular faydalı olabilir..

Arama Sonuçları
Hocam teşekkür ederim. Sizin yazdığınız kodu revize ederek kullandım.
 
Üst