Excel Forum

Excel Forum (http://www.excel.web.tr/index.php)
-   Makro-VBA (http://www.excel.web.tr/forumdisplay.php?f=48)
-   -   Şartı Kaydeme makrosu (http://www.excel.web.tr/showthread.php?t=167926)

hgenc545 06-11-2017 00:38

Şartı Kaydeme makrosu
 
Slmlar,

excel dosyamı koşula göre kaydetmesini istiyorum, yaptım Visual Basic ekranında run(F5) yapınca çalışıyor ancak çalışma kitabından save yada ctr+s yapınca normal kaydediyor. Makro işlemiyo. Buton kurmadan save deyince nasıl kaydeder. Destek olursanız sevinirim. macro modülüm aşağıda.

Private Sub Worksheet_Change()
If Range("A1").Value = "1" Then
ActiveWorkbook.Save
MsgBox "Shıft kaydedildi"
Else
MsgBox "Kaydetmek İçin Tüm Kişileri Girin!"
End If
End Sub

Excelmy 06-11-2017 09:01

Merhaba

Kod:

Application.OnKey "^{s}", "macronuzunadınıyazın"

hgenc545 07-11-2017 00:58

slm Excelmy,
denedim olmadı,yada beceremedim. tam olarak nereye yazacağım.

Yeni bir yordammı açacağım...

private sub açacakmıyım..

açıklamalı aktarırsanız sevinirim.

Excelmy 07-11-2017 06:48

Çalışma Kitabınızın Workbook_Open olayına, kendi kodlarınızıda modüle ekleyin.

hgenc545 09-11-2017 00:15

Oldu yaptım, çok teşekkürler. Bu kez Application.OnKey "^{s}", "macronuzunadınıyazın" kod ile sadece ctrl+s yapınca makro çalışıyor, yani şartlı kaydediyor, ama save ikonu ile mause ile kaydedince kaydediyor. Bunun içinde bir kod ekleyebilirmiyiz

hgenc545 09-11-2017 01:59

excelmy tekrar slm,
siteyi dolaşırken bir şey buldum. Aşağıdaki kod.

Private Sub Workbook_BeforeClose(Cancel As Boolean)
msgbox "hmmmm....."
Cancel = True
End Sub

Aslında bu kod daha çok işime yarar. Ama şöyle yapabilir miyiz.

A1 hücresi 1 İse sayfa kapatılabilsin, Değilse kapatılamasın yukarıdaki kod devreye girsin, ben mesajı değiştiririm...

Aslında amacım şu, dosyaya girdi yapan bazı görevliler eksik bırakabiliyor. Ben kimse eksik girdi yapmasın istiyorum,

dolayısıyla kimse eksik bırakamıyacak, herkes tamamlamak zorunda kalacak. Bu şekilde çözerim diyorum.

Bunu yapabilirseniz süper olur

ASLAN7410 09-11-2017 02:24

Merhaba, aşağıdaki kodu sayfanın kod bölümüne yapıştırın.

Kod:

Private Sub Worksheet_Change(ByVal Target As Range)
If [A1] = 1 Then
ActiveWorkbook.Save
Application.Quit
Else
MsgBox "hmmmm", vbInformation, "UYARI"
End If
End Sub


Aşağıdaki koduda BuÇalışmaKitabı (ThisWorkbook) kod bölümüne yapıştırın.

Kod:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Sheets("Sayfa1").[A1] > 1 Then
MsgBox "hmmmm", vbInformation, "UYARI"
Cancel = True
End If
End Sub


hgenc545 09-11-2017 21:22

Harikasınız ASLAN7410 valla. Elinize ağlık. Kodları işliyor.. Ama son olarak şöyle bir şey oldu, bunu da düzeltebilirseniz sevinirim.

Hani A1 hücresi 1 olmadığında kapanmıyor ve uyarı veriyor ya, işte o uyarı çalışma sayfasında ne yaparsak yapalım A1 Hücresi 1 olana kadar her işlemde çıkıyor. Bu da çalışmayı aksatan ve sinir bozucu bir durum. Yani diyelim çalışma kitabı ile 5 dakikalık çalışma sonucunda A1 1 olacak, çalışma boyunca A1 deki şartın 1 olması mümkün değil, dolayısı ile hücrelere her veri girildiğinde, uyarı geliyor. Eğer 50 hücreye veri gireceksek 50inci veride A1 1 olacak, 50 ye kadar her işlemde uyarı vermesi sıkıntı... Burdaki 50 ve 5dk temsilidir, çalışmanın sonunda A1 şartı doğru hale gelecek demek istedim.


Bunu da çözerseniz sevinirim

hgenc545 10-11-2017 01:43

Ve ayrıca A1 istenilen şarta ulaştığında yani 1 olduğunda sayfa kendiliğinden kapanıyor. Buda olmasın, eğer şartı doğrulandığında x ikonu aktif olsun kullanıcı istediğinde kapatsın..

ASLAN7410 10-11-2017 17:52

Sayın hgenc545, bu şekilde doğru sonuçlar alamazsınız.

Örnek dosya ile sorunuzu desteklerseniz, size yardımcı olacak arkadaşlar çıkacaktır.
Dosyanızı dosya yükleme sitelerine yükleyip, linkini buraya ekleyebilirsiziniz.


Saat 17:06

Powered by vBulletin Version 3.7.2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.