Soru Kapat butonu aşamaları

klop01

Altın Üye
Katılım
19 Aralık 2016
Mesajlar
655
Excel Vers. ve Dili
2021 Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
07-02-2028
Değerli arkadaşlar,
Forumdan bulduğum aşağıdaki kod üzerinde oynamalar yaptım fakat CommandButton1’e tıklayınca dosya tam kapanmıyor, gizli kalıyor.
Yardımlarınızı rica ediyorum.

UserForm1 üzerindeki CommandButton1’e aşağıdaki kodu atamak istiyorum.
Yeşil renkli açıklamalar doğrultusunda kırmızı kısımları nasıl yazmalıyım?

Private Sub CommandButton1_Click()
Dim Cevap As VbMsgBoxResult
Cevap = MsgBox("Değişiklik y a p t ı y s a n ı z değişikliği kaydetmek istiyor musunuz?", _
vbOKOnly + vbYesNoCancel, "S E Ç İ N İ Z")
If Cevap = vbYes Then

Application.DisplayAlerts = False
Userform1’in içerisinde bulunduğu excel çalışma kitabını kaydet
UserForm1 kapat
Excel Çalışma Kitabını kapat
Application.DisplayAlerts = True

Kısaca EVET’e tıklayınca dosyadaki değişikliği kaydedip açık hiçbir şey bırakmadan dosyayı kapatsın.
Bu kapatma işlemi eğer açık olan başka excel dosyaları varsa onları etkilemesin.

End If
If Cevap = vbNo Then

Application.DisplayAlerts = False
Userform1’in içerisinde bulunduğu excel çalışma kitabını kaydetme
UserForm1 kapat
Excel Çalışma Kitabını kapat
Application.DisplayAlerts = True

Kısaca HAYIR’a tıklayınca dosyadaki değişikliği kaydetmedesin ve açık hiçbir şey bırakmadan dosyayı kapatsın.
Bu kapatma işlemi eğer açık olan başka excel dosyaları varsa onları etkilemesin.

End If
If Cevap = vbCancel Then
Exit Sub
End If
End Sub


Dosyada yukarıdaki koddan başka işlem yaptıran aşağıdaki kodlar da var.
Hata bunlarda da olabilir düşüncesi ile ekleyeyim dedim.

Private Sub Workbook_Open()
Application.Visible = False
UserForm1.Show (1)
End Sub


Private Sub Workbook_BeforeClose(Cancel As Boolean) DOSYAYI USERFORMDAN KAPATABİLMEK İÇİN
Cancel = True
Application.Visible = False
UserForm1.Show (1)
End Sub


Private Sub CommandButton2_Click()
Application.Visible = True
Sheets("Sayfa3").Select True
UserForm1.Hide
End Sub


Sub UserformaDön1()
Application.Visible = False
UserForm1.Show (1)
End Sub


Sub UserformaDön2()
ActiveWindow.Close Saved
Application.Visible = False
UserForm1.Show (1)
End Sub


Private Sub CommandButton2_Click()
Application.Visible = True
Sheets("Sayfa1").Select True
UserForm1.Hide
End Sub



http://s7.dosya.tc/server11/aq8ulx/UserForm_DENEME.rar.html
 

Ekli dosyalar

Son düzenleme:

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,411
Excel Vers. ve Dili
2019 Türkçe
Dosya kapatma olayında dosyanın kapatılmasınıa izin vermediğinizden kaynaklanıyor.
Workbook_BeforeClose olayı içerisindeki Cancel = True satırı Dosyayı kapatma demektir.
Ayrıca dosya kapatılırken bir form açma satırı var UserForm1.Show (1) bu da silinmelidir.

Sorun aşağıdaki kodlardan kaynaklanıyor tamamı silinmelidir.

Kod:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Cancel = True
Application.Visible = False
UserForm1.Show (1) Bu satırı silmelisiniz.
End Sub


CommandButton1 in kodları da aşağıdaki gibi olmalıdır.

Kod:
Private Sub CommandButton1_Click()
    Dim Cevap As VbMsgBoxResult
    Cevap = MsgBox("Değişiklik   y a p t ı y s a n ı z   değişikliği kaydetmek istiyor musunuz?", vbYesNoCancel, "S E Ç İ N İ Z")
    If Cevap = vbYes Then
        Application.Visible = True
        ThisWorkbook.Close True
    ElseIf Cevap = vbNo Then
        Application.Visible = True
        ThisWorkbook.Close False
    ElseIf Cevap = vbCancel Then
        Exit Sub
    End If
End Sub
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,852
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Alternatif kod:

Kod:
Private Sub CommandButton1_Click()

Dim Cevap As VbMsgBoxResult
Cevap = MsgBox("Değişiklik y a p t ı y s a n ı z değişikliği kaydetmek istiyor musunuz?", _
vbOKOnly + vbYesNoCancel, "S E Ç İ N İ Z")
Application.DisplayAlerts = False

If Cevap = vbYes Then
Unload Me
ActiveWorkbook.Save
ThisWorkbook.Close savechanges:=False

End If

If Cevap = vbNo Then
Unload Me
ThisWorkbook.Close savechanges:=False
Cancel = True
End If

If Cevap = vbCancel Then
Exit Sub
End If
End Sub
 

klop01

Altın Üye
Katılım
19 Aralık 2016
Mesajlar
655
Excel Vers. ve Dili
2021 Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
07-02-2028
Sayın dalgalikur ve halit3,
Dün bilgisayar başına geçemedim, dönüşü geç yaptım kusura bakmayınız.
Her iki kod da birinci iletimdeki kırmızı ve yeşil ile belirttiğim yerdeki işlemleri tam yapmıyor.
 
Üst