Kaydetmeyi engelleme

Katılım
17 Aralık 2010
Mesajlar
74
Excel Vers. ve Dili
2016 tr
Sayın hocalarım,
Oluşturduğum excel dosyama kilit koyup sadece bazı hücrelerde değişiklik yapabilecekleri şekilde oluşturdum. Benim istediğim Kilitsiz hücreleri istediklerini yazabilsinler ama çıkarken yada çıktıklarında ben dosyayı yeniden açtığımda değişiklikleri görmeden ilk oluşturduğum halde görmek istiyorum. Yani kullananın yazdıklarını değişiklikleri kaydetmesin. Bu mümkünmü
 

hakki83

Altın Üye
Katılım
30 Eylül 2021
Mesajlar
545
Excel Vers. ve Dili
Excel 2016 Türkçe 32 Bit
Altın Üyelik Bitiş Tarihi
30-09-2026
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.DisplayAlerts = False
Application.Quit
End Sub

deneyiniz.
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Merhaba.

1- BuÇalışmaKitabı adlı kod sayfasına aşağıdaki kodu kopyalayın.

Kod:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
'Cancel = True
End Sub
2- İmleç End Sub satırında yanıp sönerken F9 tuşuna basın. End Sub arka planı bordo renk olmalı.
3-Kaydet butonuna tıklayın yada CTRL+S tuşlarına basın.
4- Kodlarda bulunan 'Cancel = True satırının başındaki tırnak işaretini silin.
5- F5'e basın.
6- İmleç End Sub satırında yanıp sönerken F9 tuşuna basın. End Sub arka planı rengi beyaz olmalı.

Bundan sonra kaydet butonu, CTRL+S tuşları işlevini yerine getirmez
Dosyada değişiklik yaptıktan sonra kapatınca kaydetmek istiyor musunuz sorusuna "Kaydetme" yada "İptal" seçilmek zorunda bırakılır.
 

maliex

Altın Üye
Katılım
22 Eylül 2019
Mesajlar
227
Excel Vers. ve Dili
professional plus 2016-türkçe
Altın Üyelik Bitiş Tarihi
23-09-2025
C#:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Cancel = True
MsgBox "Değişiklikleri kaydetme izniniz yok. Dosya orijinal haliyle kaydedilecektir.", vbInformation, "Uyarı"
End Sub
kodları buraya kopyalayınız

246793
 
Katılım
17 Aralık 2010
Mesajlar
74
Excel Vers. ve Dili
2016 tr
C#:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Cancel = True
MsgBox "Değişiklikleri kaydetme izniniz yok. Dosya orijinal haliyle kaydedilecektir.", vbInformation, "Uyarı"
End Sub
kodları buraya kopyalayınız

Ekli dosyayı görüntüle 246793
teşekkürler hocam çalışmadı ama bir önceki mesajdaki Muzaffer Ali beyin dediği gibi yaptım çalıştı.
Merhaba.

1- BuÇalışmaKitabı adlı kod sayfasına aşağıdaki kodu kopyalayın.

Kod:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
'Cancel = True
End Sub
2- İmleç End Sub satırında yanıp sönerken F9 tuşuna basın. End Sub arka planı bordo renk olmalı.
3-Kaydet butonuna tıklayın yada CTRL+S tuşlarına basın.
4- Kodlarda bulunan 'Cancel = True satırının başındaki tırnak işaretini silin.
5- F5'e basın.
6- İmleç End Sub satırında yanıp sönerken F9 tuşuna basın. End Sub arka planı rengi beyaz olmalı.

Bundan sonra kaydet butonu, CTRL+S tuşları işlevini yerine getirmez
Dosyada değişiklik yaptıktan sonra kapatınca kaydetmek istiyor musunuz sorusuna "Kaydetme" yada "İptal" seçilmek zorunda bırakılır.
Hocam teşekkürler biraz uğraştım ama sizin dediğiniz gibi yaptım çalıştı
 

hakki83

Altın Üye
Katılım
30 Eylül 2021
Mesajlar
545
Excel Vers. ve Dili
Excel 2016 Türkçe 32 Bit
Altın Üyelik Bitiş Tarihi
30-09-2026
Muzaffer hocam, maliex hocam ve benim kodları birleştirip, örnek dosya yaptım.

Bu arada maliex hocamın kodları da aynısı, makro ayarını geçici olarak kapattığınız zaman kodları kaydedip aynı sonucu elde edebilirdiniz.
 

Ekli dosyalar

Katılım
17 Aralık 2010
Mesajlar
74
Excel Vers. ve Dili
2016 tr
Muzaffer hocam, maliex hocam ve benim kodları birleştirip, örnek dosya yaptım.

Bu arada maliex hocamın kodları da aynısı, makro ayarını geçici olarak kapattığınız zaman kodları kaydedip aynı sonucu elde edebilirdiniz.
Hocam ücretli üyeliğim mevcut değil link atabilirseniz sevinirim. Teşekkürler
 
Üst