Excel Forum
ALTIN ÜYELİK Hakkında Bilgi


Geri Git   Excel Forum > EXCEL-Soruları > Makro-VBA
Atatürk
Şifremi Unuttum

DUYURU SİSTEMİ / REKLAM PANOSU

Makro-VBA Makro veya VBA ile ilgili sorularınızı buraya gönderebilirsiniz.
Dosya ekleyebilirsiniz

Özel Arama


Yanıtla
 
Paylaş Konu Araçları Görünüm Modları
Eski 04-07-2017, 20:42   #1
firatgunay
 
Giriş: 25/01/2006
Şehir: Samsun
Mesaj: 146
Excel Vers. ve Dili:
2016
Varsayılan eşitsizlik varsa pop-up uyarısı

http://dosya.co/pl06tpynlxjz/Kitap1.xlsx.html
linkteki örnekte belirtmiş olduğum hücrelerin birbirinden farklı olması durumunda, excelden çıkarken kaydetme mesajından önce belli bir metni içeren hata mesajı vermesini istiyorum. devam et dersek kaydedip kapatsın, iptal dersek o sayfa açılsın. böyle bir şey mümkün mü?
firatgunay Çevrimdışı   Alıntı Yaparak Cevapla
Eski 05-07-2017, 02:33   #2
Ömer BARAN
Uzman
 
Giriş: 08/03/2011
Şehir: ANKARA / İSTANBUL
Mesaj: 8,513
Excel Vers. ve Dili:
Office 2013 TÜRKÇE
Varsayılan

Merhaba.

Öncelikle üyelik profilinizdeki eksik bilgileri tamamlamanızı hatırlatmak isterim.
Kullandığınız excel dili ve versiyon bilgisi bile yok.

Aşağıdaki basit bir örnek verdim, kendi isteğinize göre düzenleme yapabilirsiniz sanırım.

-- Belgeniz açıkken ALT+F11 tuşlarına basarak VBA ekranını açın,
-- Sol taraftan Bu Çalışma Kitabı (ThisWorkbook)'na çift tıklayın,
-- Sağdaki boş alana aşağıdaki kod'u yapıştırın.
-- Belgeyi 2003 versiyonuyla veya Makro İçerebilen Excel Belgesi olarak kaydedin,
-- Belgeyi kaydederek kapatın, sonraki ilk açılışta makroları etkinleştirin.

Kod Sayfa1 adlı sayfadaki A1 hücresi BOŞ ise veya A1 ve A2 hücrelerinin değeri birbirinden farklı ise
UYARI içerikli bir MESAJ KUTUSU görüntülenmesini sağlar ve KAYDET/KAYDETME ekranı gelmez.
.
Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    If Sheets("Sayfa1").[A1].Value <> "" Or _
        Sheets("Sayfa1").[A1].Value <> Sheets("Sayfa1").[A2].Value Then
        MsgBox "A1 ve A2 hücrelerinin değeri aynı DEĞİL!" & vbLf & _
        "A1 ve A2 hücrelerini kontrol ediniz!", vbCritical, "..::.. DOSYADA HATA VAR ..::.."
        Cancel = True
    Else
        Cancel = False
    End If
End Sub
__________________
.
☾✭ İnadına TÜRKÇE ✭☽

-- Sorunuzu, gerçek belgenizle aynı yapıda ve olması gereken sonuçların elle yazıldığı örnek belge ile destekleyiniz.
-- ALTIN ÜYELİK öneriyorum. / FORUM KURALLARInı mutlaka okuyunuz.
-- ALTIN ÜYE olmayanlar, örnek belgeyi dosya.tc, dosya.co gibi bir siteye yükleyip, belgeye erişim adresini verebilir.
-- Özel mesaj ile soru sormayınız. / Geri bildirimde bulunulmayan cevaplarımı siliyorum.
Ömer BARAN Çevrimdışı   Alıntı Yaparak Cevapla
Eski 05-07-2017, 08:23   #3
firatgunay
 
Giriş: 25/01/2006
Şehir: Samsun
Mesaj: 146
Excel Vers. ve Dili:
2016
Varsayılan

Ömer BARAN, öncelikle verdiğin kod için sağolasın. profil bilgilerini düzenledim ama bunların sizlerin cevap vermesi ya da nazik davranması için etken olacağı aklımın ucundan geçmezdi. neyse verdiğiniz makro ile ilgili olarak düzenleme yaptım ama eşit olmama durumunda excelden çıkamıyorum. benim maklsadım excelden çıkamamak değil, sadece uyarı gelecek ve devam etmek istediğimde atıyorum devam et ve iptal tuşları olsa, devam et basıldığında kaydet kaydetme penceresi tekrar gelerek isteyen kaydedip çıkacak.
firatgunay Çevrimdışı   Alıntı Yaparak Cevapla
Eski 05-07-2017, 23:35   #4
firatgunay
 
Giriş: 25/01/2006
Şehir: Samsun
Mesaj: 146
Excel Vers. ve Dili:
2016
Varsayılan

cancel = false yapınca uyarıdan sonra kaydet kaydetme yazısı geliyor. onu çözdüm. kendi eşit olması gereken hücrelere göre de yazdım herşeyi. bir tek, sadece o sekmede olduğumda uyarı veriyor. başka sekmede de olsam eşitsizlik olduğunda uyarı çıkmasını nasıl yapacağımı bulamadım.
firatgunay Çevrimdışı   Alıntı Yaparak Cevapla
Eski 06-07-2017, 00:08   #5
Ömer BARAN
Uzman
 
Giriş: 08/03/2011
Şehir: ANKARA / İSTANBUL
Mesaj: 8,513
Excel Vers. ve Dili:
Office 2013 TÜRKÇE
Varsayılan

Tekrar merhaba.

Örnek belgenizde, belgenizde olmayan sayfa/belgelere atıflar içeren ve mevcut haliyle #DEĞER!
hatası veren formüller var.
Belgeyi içerisinde harici bağlantı kalmayacak şekilde güncellemeniz yerine olur sanırım.
Ayrıca UYARI sözcüğü bana ENGELLEMEyi çağrıştırıyor.
Sanki sizin isteğiniz uyarı değil BİLGİ verme ve ENGELLEME İÇERMİYOR doğru mudur?
.
__________________
.
☾✭ İnadına TÜRKÇE ✭☽

-- Sorunuzu, gerçek belgenizle aynı yapıda ve olması gereken sonuçların elle yazıldığı örnek belge ile destekleyiniz.
-- ALTIN ÜYELİK öneriyorum. / FORUM KURALLARInı mutlaka okuyunuz.
-- ALTIN ÜYE olmayanlar, örnek belgeyi dosya.tc, dosya.co gibi bir siteye yükleyip, belgeye erişim adresini verebilir.
-- Özel mesaj ile soru sormayınız. / Geri bildirimde bulunulmayan cevaplarımı siliyorum.
Ömer BARAN Çevrimdışı   Alıntı Yaparak Cevapla
Eski 06-07-2017, 08:18   #6
firatgunay
 
Giriş: 25/01/2006
Şehir: Samsun
Mesaj: 146
Excel Vers. ve Dili:
2016
Varsayılan

günaydın. uyarı yerine hatırlatma dersek daha doğru olacaktır. http://dosya.co/u945xktqceyp/BARAN.xlsx.html dosya bu linkte. içinde açıklamalarımı yaptım. kolaylıklar diliyorum.
firatgunay Çevrimdışı   Alıntı Yaparak Cevapla
Eski 06-07-2017, 17:39   #7
Ömer BARAN
Uzman
 
Giriş: 08/03/2011
Şehir: ANKARA / İSTANBUL
Mesaj: 8,513
Excel Vers. ve Dili:
Office 2013 TÜRKÇE
Varsayılan

Tekrar merhaba.

Son belgenize bakmadım.
Eski belge üzerinden FORMÜL HATASInı da araştıran kod satırları ekledim.

Bir de böyle deneyin.
-- ALT+F11 tuşlarına basarak VBA ekranını görüntüleyin.
-- VBA ekranında sol tarafta BuÇalışmaKitabı (ThisWorkbook)'na çift tıklayın,
-- Sağdaki boş alana aşağıdaki kod'u yapıştırın.
-- Dosyayı kapatmak üzere köşedeki X'e tıklayıp sonucu gözlemleyin.
-- Kod'da End Sub satırından önceki Cancel = True kısmını False olarak değiştirirseniz,
hata (1 TL üstü fark veya HATA SONUCU döndüren FORMÜL) düzeltilmeden de belgenin kaydedilip kapatılmasına engel olmaz.
.
Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Set s = Sheets("kntrl")
If IsError(s.[D4]) Or IsError(s.[D5]) Or IsError(s.[D6]) Or IsError([D7]) Then
    MsgBox "ÖDEME DURUMU hücrelerinde FORMÜL HATASI var, önce bu hata düzeltilmelidir", vbCritical
    Cancel = False
ElseIf Abs(s.[D4] - s.[D5]) > 1 Or _
        Abs(s.[D5] - s.[D6]) > 1 Or _
        Abs(s.[D6] - s.[D7]) > 1 Then
            MsgBox "Ödeme durumunda uyumsuzluk var." & vbLf & _
                "Yine de çıkmak istiyor musunuz?", _
                vbCritical, "::..ÖDEME DURUMU HATASI..::"
Else
    Cancel = False
    s.Activate
End If
If IsError(s.[I4]) Or IsError(s.[I5]) Or IsError(s.[I6]) Then
    MsgBox "BORÇ DURUMU hücrelerinde  FORMÜL HATASI var, önce bu hata düzeltilmelidir", vbCritical
    Cancel = False
ElseIf Abs(s.[I4] - s.[I5]) > 1 Or _
        Abs(s.[I5] - s.[I6]) > 1 Then
            MsgBox "Borç durumunda uyumsuzluk var." & vbLf & _
                "Yine de çıkmak istiyor musunuz?", _
                vbCritical, "::..BORÇ DURUMU HATASI..::"
Else
    Cancel = False
    s.Activate
End If
    
If IsError(s.[N25]) Or IsError(s.[N42]) Then
    MsgBox "BÜTÇE TERTİBİ DURUMU hücrelerinde  FORMÜL HATASI var, önce bu hata düzeltilmelidir", vbCritical
    Cancel = True
ElseIf Abs(s.[N25] - s.[N42]) > 1 Then
            MsgBox "Bütçe tertibi toplamlarında uyumsuzluk var." & vbLf & _
                "Yine de çıkmak istiyor musunuz?", _
                vbCritical, "::..BÜTÇE TERTİBİ TOPLAMI HATASI..::"
Else
    Cancel = False
    s.Activate
End If
Cancel = True
End Sub
__________________
.
☾✭ İnadına TÜRKÇE ✭☽

-- Sorunuzu, gerçek belgenizle aynı yapıda ve olması gereken sonuçların elle yazıldığı örnek belge ile destekleyiniz.
-- ALTIN ÜYELİK öneriyorum. / FORUM KURALLARInı mutlaka okuyunuz.
-- ALTIN ÜYE olmayanlar, örnek belgeyi dosya.tc, dosya.co gibi bir siteye yükleyip, belgeye erişim adresini verebilir.
-- Özel mesaj ile soru sormayınız. / Geri bildirimde bulunulmayan cevaplarımı siliyorum.
Ömer BARAN Çevrimdışı   Alıntı Yaparak Cevapla
Eski 06-07-2017, 18:29   #8
firatgunay
 
Giriş: 25/01/2006
Şehir: Samsun
Mesaj: 146
Excel Vers. ve Dili:
2016
Varsayılan

merhaba, denedim. makro dediğim gibi hangi sayfada olsam da hata varsa soruyu soruyor. fakat kaydet kaydetme çıkmıyor. yani hatayı düzeltmeden çıkamıyorum. bazen hatayı bulmamız günleri alabiliyor .
firatgunay Çevrimdışı   Alıntı Yaparak Cevapla
Eski 06-07-2017, 18:33   #9
Ömer BARAN
Uzman
 
Giriş: 08/03/2011
Şehir: ANKARA / İSTANBUL
Mesaj: 8,513
Excel Vers. ve Dili:
Office 2013 TÜRKÇE
Varsayılan

Önceki cevabımda belirtmiştim.
End Sub satırının hemen üstündeki Cancel=True değerini False olarak değiştirip deneyin.
__________________
.
☾✭ İnadına TÜRKÇE ✭☽

-- Sorunuzu, gerçek belgenizle aynı yapıda ve olması gereken sonuçların elle yazıldığı örnek belge ile destekleyiniz.
-- ALTIN ÜYELİK öneriyorum. / FORUM KURALLARInı mutlaka okuyunuz.
-- ALTIN ÜYE olmayanlar, örnek belgeyi dosya.tc, dosya.co gibi bir siteye yükleyip, belgeye erişim adresini verebilir.
-- Özel mesaj ile soru sormayınız. / Geri bildirimde bulunulmayan cevaplarımı siliyorum.
Ömer BARAN Çevrimdışı   Alıntı Yaparak Cevapla
Eski 06-07-2017, 18:50   #10
firatgunay
 
Giriş: 25/01/2006
Şehir: Samsun
Mesaj: 146
Excel Vers. ve Dili:
2016
Varsayılan

Alıntı:
Ömer BARAN tarafından gönderildi Mesajı Görüntüle
Önceki cevabımda belirtmiştim.
End Sub satırının hemen üstündeki Cancel=True değerini False olarak değiştirip deneyin.
tamamdır. onu çözmüştüm zaten, ben yazınızdan öyle yapmayın yaparsan bişey olur gibi algıladım. o halde sıkıntı kalmadı. maksadım zaten sadece uyarı mesajı çıkmasıydı. çok teşekkür ediyorum. iyi akşamlar.
firatgunay Çevrimdışı   Alıntı Yaparak Cevapla
Yanıtla


Konu Araçları
Görünüm Modları

Gönderme Kuralları
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Açık
SimgelerAçık
[IMG] kodu Açık
HTML kodu Kapalı


Saat 08:53


Bu forum Elit NET - www.elitnet.com.tr tarafından sunulmaktadır.

Excel Eğitimi - Mobil Uygulama - Çorlu - Çorlu Hurda - Torna - Çorlu Web Tasarım - Tarot Falı - Fenerbahçe Haberleri - Trakya Haberleri - investing - Hurda - Kozmetik Ürünler - Excel Eğitimi - Lingerie - Dyeing Machine - Çorlu Temizlik- Hazır Site- SEO- Çorlu Burun Estetiği- Karton Bardak- Çorlu Pimapenci- İstanbul Avukat- Çorlu Rehabilitasyon- Edirne Su Arıtma- Çorlu Perde Yıkama- Marmara Ereğlisi Hotel- Site Yönetimi- Led Aydınlatma- Pronet Tekirdağ- Çorlu Pronet- Pronet Edirne- Pronet Kırklareli- Pronet Çerkezköy- Pronet Çorlu- Pronet Lüleburgaz- Pronet Keşan-
Powered by vBulletin Version 3.7.2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Advertisement System V2.6 By   Branden