saveden önce msgbox

Katılım
5 Aralık 2005
Mesajlar
83
Slm,
Ben exceldeki save komutuna tıklanıldığında bir msgboxın gelmesini istiyorum.Yani excelde yapılan işlemlerden sonra kaydet denildiğinde bir msgbox ile "yapılan işlemleri yeni dosya adıyla kaydetmek ister misiniz?"diye bir msgbox yapabilmek mümkün mü?Ayrıca bu msgbox a yanıt "evet" olursa yeni bir form açıp yeni dosya adı ile kaydetmesi gerekecek bunu nasıl sağlayabilirim?Ya da "evet" denildiğinde save as penceresine yönlendirilebilir mi?"hayır" yanıtı verildiğinde de normal kaydetmesini sağlayabilir miyim? Bana yardımcı olursanız sevinirim.
 
Katılım
2 Mart 2005
Mesajlar
556
Excel Vers. ve Dili
Office 2013 Türkçe
merhaba
kodları kontrol edemedim.bir deneyin.hata çıkarsa tekrar bakarız.

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, _
Cancel As Boolean)
a = MsgBox("Yapılan işlemleri yeni dosya adıyla kaydetmek ister misiniz?", vbYesNo)
If a = vbNo Then ActiveWorkbook.Save
ActiveWorkbook.Close

If a = vbYes Then
isim = InputBox("Lütfen Dosyanın Yeni İsmini Girin.", "Dosya İsmi")
ActiveWorkbook.SaveAs Filename:= _
"C:\Documents and Settings\Mustafa\Desktop\" & isim & ".xls"
End If

End Sub
 

Kemal Demir

Özel Üye
Katılım
29 Temmuz 2004
Mesajlar
2,108
Sub kayit()
Application.ScreenUpdating = False
Cevap = MsgBox(Prompt:= _
"Verileri Kaydetmek İstiyormusunuz?", Buttons:=vbQuestion + vbYesNo)
If Cevap = vbNo Then
MsgBox Prompt:="Siz İstemediğiniz İçin Sayfa Kaydedilmemiştir!"
Exit Sub
End If
ActiveWorkbook.Save
MsgBox ("Kayıt İşlemi Yapıldı")
End Sub



Zannedersem Size Yol Gösterebilir
 

Kemal Demir

Özel Üye
Katılım
29 Temmuz 2004
Mesajlar
2,108
Birazdaha Amatörce ama cevap hazırladıgım için yollamak İstedim

Sub kayit()
Application.ScreenUpdating = False
Cevap = MsgBox(Prompt:= _
"Verileri Kaydetmek İstiyormusunuz?", Buttons:=vbQuestion + vbYesNo)
If Cevap = vbNo Then
MsgBox Prompt:="Siz İstemediğiniz İçin Sayfa Kaydedilmemiştir!"
Exit Sub
End If
ChDir "C:\Documents and Settings\cati\Desktop"
ActiveWorkbook.SaveAs Filename:= _
"C:\Documents and Settings\cati\Desktop\deneme.xls", FileFormat:=xlNormal, _
Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
CreateBackup:=False
ActiveWorkbook.Save
MsgBox ("Dosyanız Farklı Kaydedilmiştir.")
End Sub

Bold ve Kırmız olanları Kendı İstegınıze Göre Değiştirebilirsiniz.

Bu arada Sn.Bedersu nun Kodu Daha Profosyonelce.
 
Katılım
5 Aralık 2005
Mesajlar
83
Çok sağolun teşekkür ederim.Yalnız sizide oyalıyorum kusura bakmayın ama ilk söylediğim konu hakkında yeni bir fikir aklıma geldi.Þimdi elimde bir tane form var ve excelden eski verileri form üzerindeki textbox ve comboboxlara çekiyo.Ben bu form üzerine 2 tane commandbutton koymak istiyorum.Bu buttonlardan 1.save diğeri ise save as işlemini yapacak.Hani eski verileri çekiyo demiştim ya işte o verilerde değişiklik yapıldıktan sonra save denildiğinde eski verilerle yer değiştirecek.Ama veriler değiştirildikten sonra save as denildiğinde ise dosyayı yeni bir isimle kaydedilmesini isteyecek.Bana yardımcı olursanız sevinirim.
sn.rakkas ve bedersu tekrar teşekkür ederim..
 
Katılım
5 Aralık 2005
Mesajlar
83
Bişey daha eklemek istiyorum.Formuma save ve save as buttonları eklediğimde excelin file menüsündeki save ve save ası inaktif yapılabilir mi?Yapılırsa nasıl olur?
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
elam' Alıntı:
Bişey daha eklemek istiyorum.Formuma save ve save as buttonları eklediğimde excelin file menüsündeki save ve save ası inaktif yapılabilir mi?Yapılırsa nasıl olur?
Başka yolları da var ama biraz değişik bir yöntem ektedir...
 
Katılım
5 Aralık 2005
Mesajlar
83
ektekini inceledim tamam onu uyguladım.Yalnız Form üzerideki save ve save as buttonları var demiştim ya işte form üzerine girilen verileri kaydetmek için bu iki buttona hangi kodları yazmam gerekiyor.Birde kaydetme işlemi bittikten sonra form üzerine girilen verilerin yok olmasını nasıl sağlayabilirim.Çok teşekkür ederim.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Bende aşağıdaki kodu öneriyorum. Evet derseniz farklı kaydet penceresi açılacaktır. Thisworkbook sayfasına kopyalayın.

[vb:1:3ea45658ab]Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If MsgBox("FARKLI KAYDETMEK İSTEMİSİNİZ", vbYesNo) = vbYes Then
Application.Dialogs(xlDialogSaveAs).Show
End If
End Sub
[/vb:1:3ea45658ab]
 
Katılım
5 Aralık 2005
Mesajlar
83
Siz koda"Private Sub WorkBook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) bu şekilde yazmışsınız workbok olarak adlandırmışsınız ama benim burda demek istediğim form üzerindeki bilgileri kaydedecek.Üstelik save buttonuna basılınca normal, save as buttonuna basılınca farklı kaydedecek.Umarım tam olarak anlatabilmişimdir.cvp bek.

Herşey için çok teşekkür ederim.Sağolun...
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Verdiğim kodu thisworkbook sayfasına kopyalayarak deneyin. Kod Excelin menülerinde bulunan kaydet butonuna bastığınızda otomatikman devreye girecektir.
 
Katılım
5 Aralık 2005
Mesajlar
83
Tamam demek istediğini anladım Fakat ben form üzerindeki kaydet buttonuna tıklanıldığında devreye girmesini istiyorum.Bunu nasıl sağlayabilirim?
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Fakat ben form üzerindeki kaydet buttonuna tıklanıldığında devreye girmesini istiyorum.Bunu nasıl sağlayabilirim?
Bunu baştan belirtseydiniz iyi olurdu. Bu durumda commandbutona aşağıdaki kodu yazarak deneyin.

[vb:1:1e6e4c3859]Private Sub CommandButton1_Click()
If MsgBox("FARKLI KAYDETMEK İSTEMİSİNİZ", vbYesNo) = vbYes Then
Application.Dialogs(xlDialogSaveAs).Show
Exit Sub
End If
ActiveWorkbook.Save
End Sub
[/vb:1:1e6e4c3859]
 
Katılım
5 Aralık 2005
Mesajlar
83
tamam sağolun verdiğiniz kodlar oldu.Çok teşekkür ederim... :hihoho:
 
Üst