• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

saveden önce msgbox

  • Konbuyu başlatan Konbuyu başlatan elam
  • Başlangıç tarihi Başlangıç tarihi
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.
 
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
 
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
 
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.
 
Ç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..
 
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?
 
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...
 
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.
 
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]
 
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...
 
Verdiğim kodu thisworkbook sayfasına kopyalayarak deneyin. Kod Excelin menülerinde bulunan kaydet butonuna bastığınızda otomatikman devreye girecektir.
 
Tamam demek istediğini anladım Fakat ben form üzerindeki kaydet buttonuna tıklanıldığında devreye girmesini istiyorum.Bunu nasıl sağlayabilirim?
 
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]
 
tamam sağolun verdiğiniz kodlar oldu.Çok teşekkür ederim... :hihoho:
 
Geri
Üst