F

Çözüldü Evet Hayır İle Uyarı Mesajı Kapatma

fledermaus

Site Üyesi
Excel Versiyonu
Excel 2016
Excel Sürümü
64 Bit
Excel Dili
Türkçe
Merhaba,

Ekte paylaşmış olduğum dosyamda geçen makrolar;

1- Saat Uyarısı : Ay sayfalarındaki K3 hücrelerine ve son sayfanın E-F sütunlarında geçen alt/üst sınır saatlere.

2- Tarih Uyarısı : Ay sayfalarındaki H sütununa ve güncel takvime bağlı olarak E-F sütunlarında geçen alt/üst sınır tarihlere göre

uyarı mesajları vermektedirler.

Söz konusu dosyanın H sütununa saat verileri girilmekte ve K3 hücresi buna bağlı olarak güncellenmekte ve değişmektedir.

Dosya kullanımındaki amaç farklı güncel saat verilerini (K3 gibi) takip etmektir.

Makrolardaki amaç ise bu verilere ilişkin belirli zaman ve tarih aralıklarında uyarı mesajları ile hatırlatma almaktır.

Dosyada geçen makro uyarıları şu anda sadece K3 hücresine bağlı alt/üst sınır saat değişimine ve alt/üst sınır güncel takvim değişimlerine göre uyarı vermektedir.

Burada yapmak istediğim bahsi geçen uyarıları "bir daha uyarıyı almak istemiyorsanız evet/hayır" uyarısı ekleyerek isteğe bağlı olarak üst sınıra kadar devam ettirmek yada kapatabilmektir.

(Son sayfadaki E sütununda geçen tarih aralıklarından birini bugünün tarihi ile (yada dosyayı denediğiniz tarih) ile değiştirir ve herhangi bir sayfanın H sütununa H7 den itibaren saat verisi yazmayı denerseniz uyarı mesajı alırsınız)

Tarih uyarılarında kod tetikleyicisi olarak H sütununun atanmasının nedeni ise;

diyelim gece yarısından hemen önce dosyayı açtık ve tarih, açılışta otomatik kontrol edildi ve tarihe göre uyarıya gerek yok,
gece yarısı geçildiğinde ise uyarı tarihine denk geliyor diyelim ve belge açık durumda. Bu durumda dosya açık olduğunda herhangi bir tetikleme olmayacaktı. Bu nedenle kod tetikleyicisi olarak sürekli kullanılan H sütunu seçildi.

Umarım yeterince açıklayıcı ve doğru anlatabilmişimdir.

Syg,
 

Ekli dosyalar

Ömer Bey Merhaba,
Yardımlarınız için teşekkür ederim. Yanlız saat için çalışıyor ancak tarih için çalışmıyor.
Son sayfadaki listede geçen tarihlerden birini bugün olarak değiştirdim ancak çalışmadı.
Syg.
 
Moderatörün son düzenlenenleri:
Yanlız saat için çalışıyor ancak tarih için çalışmıyor.

Son sayfadaki listede geçen tarihlerden birini bugün olarak değiştirdim ancak çalışmadı.
Merhaba, ben de sizin yüklediğiniz dosyada aynısını yaşamıştım. Maalesef yüklediğiniz dosya bugüne göre kontrol yapmıyor, farklı bir algoritma kurmuşsunuz. Açıkçası yanlış anladığımı düşünmüştüm.
Özetle paylaştığım dosyada sizin algoritmanızı değiştirmedim sadece mesaj gösterme kodlarında değişiklik yaptım.
 

Ekli dosyalar

  • 1646989089573.webp
    1646989089573.webp
    46.6 KB · Görüntüleme: 30
Moderatörün son düzenlenenleri:
Ömer Bey Merhaba,

Forumda paylaştığım dosyayı şimdi denedim çalıştı. Bir yanlışlık olabilir mi ?
Belki de bir önceki mesajımda belirttiğim gibi sizi yanlış anlamış olabilirim, hala bugünün tarihini girdiğimde uyarı alamadım.
Paylaştığım dosyada sizin kodlardan farklı olan yerleri kırmızı renkle gösterdim. İlk satır uyarı iptalini sorguluyor. Diğer iki satır da uyarı mesajını userforma yazarak gösteriyor.
VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(31 satır)
 
Merhaba , @fledermaus
Dosyanızdaki kodlama sadece saat üzerine kodlamışsınız MAINTENANCE MONITORING sayfasındaki 7.ve 8. sutundaki tarih veriyle ilgili bir kod çalışması göremedim tüm çalışma k3 değeri altsınırdan yüksekse k3 değeri üst sınırdan küçükte ,k3 değeri alt sınırdan küçükse k3 değeri üst sınırdan büyükse kodlamada başka birşey yok vba yerine yardımcı sutunla datavalidation yada condation formatin de işinizi görürdü. sizi uyarması için.
Kodunuza tarihi için kontrol kodu yazarsanız probleminiz çözülmüş olacaktır.
Dosyanızdaki kodlardan bunu anladım . Bir de msgbox de alt satıra geçmek için vbnewline kullanabilirsiniz char(10) yerine.
 
Merhaba , @fledermaus
Dosyanızdaki kodlama sadece saat üzerine kodlamışsınız MAINTENANCE MONITORING sayfasındaki 7.ve 8. sutundaki tarih veriyle ilgili bir kod çalışması göremedim tüm çalışma k3 değeri altsınırdan yüksekse k3 değeri üst sınırdan küçükte ,k3 değeri alt sınırdan küçükse k3 değeri üst sınırdan büyükse kodlamada başka birşey yok vba yerine yardımcı sutunla datavalidation yada condation formatin de işinizi görürdü. sizi uyarması için.
Kodunuza tarihi için kontrol kodu yazarsanız probleminiz çözülmüş olacaktır.
Dosyanızdaki kodlardan bunu anladım . Bir de msgbox de alt satıra geçmek için vbnewline kullanabilirsiniz char(10) yerine.

Merhaba, Burhan Cesur

7.ve 8. sütundaki tarihler de 6. ve 7. sütunlara alındı. Kodlar tekrar yenilendi. Sanırım yanlışlıkla revize edilmeden önceki dosyayı paylaşmışım.

Revize dosya ekteki gibidir.

Syg,
 

Ekli dosyalar

@fledermaus Merhaba,
Güncel dosyanızdaki hesaplamalar doğru eksik olan mesajın erteleme işlemi mi ?
Eğer ki bu şekilde ise size yapılacak adımları söylüyorum en basitinden,

Şuan ki mesaj alanını if içine alacaksınız mesela anasayfa gibi kullandığınız bir sayfanız A1 hücresine True veya False yazacaksınız . Eğer a1 deki değer true ise mesajı göster sizin yaptığınız mesaj gözükecek sonra yes no mesajı gelip birdaha bu mesajı görmek istiyor musunuz diye soracak. Evet derseniz aynı şekilde sürekli sormaya devam edecek ve ilgili hücreye true yazacak , hayır derseniz ilgili hücre false olacak ve ilk mesajın dışındaki if komutuna k3 değeri büyükse geçiş izni verilecek .karışık olmamıştır inşallah
 
@fledermaus Merhaba,
Güncel dosyanızdaki hesaplamalar doğru eksik olan mesajın erteleme işlemi mi ?
Eğer ki bu şekilde ise size yapılacak adımları söylüyorum en basitinden,

Şuan ki mesaj alanını if içine alacaksınız mesela anasayfa gibi kullandığınız bir sayfanız A1 hücresine True veya False yazacaksınız . Eğer a1 deki değer true ise mesajı göster sizin yaptığınız mesaj gözükecek sonra yes no mesajı gelip birdaha bu mesajı görmek istiyor musunuz diye soracak. Evet derseniz aynı şekilde sürekli sormaya devam edecek ve ilgili hücreye true yazacak , hayır derseniz ilgili hücre false olacak ve ilk mesajın dışındaki if komutuna k3 değeri büyükse geçiş izni verilecek .karışık olmamıştır inşallah

Merhaba,

Hocam anlamadım desem yeridir. Makroyu çok bilmiyorum açıkcası. Kodları da Ömer Baran hocam yazmıştı zaten.

Dosyadaki kodlar aşağıdaki gibidir;

VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(51 satır)
 
Uyarı olarak bir userform ekranı değil MsgBox kullanıldığına göre;
uyarının durdurulması için UYARI sayfasında ilgili satırda G sütununa elle harf/sayı herhangi bir işaret koyulması gerekir.

Mevcut kodlardaki şu iki satırı (iki kod var ikisinde de aynı değişikliği yapın) şöyle değiştirin.

VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(2 satır)

Artık ilgili uyarı satırında G sütunu hücresine bir şey yazdığınızda o satırdaki uyarı alınmaz.
O satır için uyarıyı aktif hale getirmek için yazılan bu şeyin silinmesi yeterli olur.
 
Uyarı olarak bir userform ekranı değil MsgBox kullanıldığına göre;
uyarının durdurulması için UYARI sayfasında ilgili satırda G sütununa elle harf/sayı herhangi bir işaret koyulması gerekir.

Mevcut kodlardaki şu iki satırı (iki kod var ikisinde de aynı değişikliği yapın) şöyle değiştirin.

VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(2 satır)

Artık ilgili uyarı satırında G sütunu hücresine bir şey yazdığınızda o satırdaki uyarı alınmaz.
O satır için uyarıyı aktif hale getirmek için yazılan bu şeyin silinmesi yeterli olur.

Hocam Tekrar Merhaba,

Bu işi, mesajın alındığı sayfada mesajı bir daha göster yada gösterme (evet/hayır yada kutucuğa tik şeklinde olabilir) onayı gibi yapmamız mümkün değil mi ?

Dosya birçok kişi tarafından kullanacağı ancak kriter mesajlarının veya bazı ekleme ve düzeltmelerin sadece bir kişi üzerinden yapılacağı için bu şekilde kullanmak mümkün olmuyor açıkçası.

Bu durumunda G sütununa bir imge vs koymak yerine E:F aralığından istenilen alt/üst sınır kriterler silinerek de mesaj tetiklemesi durdurulabiliyor.

Burada amaç dosyayı açan kullanıcının ana temalara müdahale etmeden çalıştığı sayfada dosyayı kullanabilmesi.

Syg,
 
İşte "bir daha gösterme" seçiminin belgede bir iz bırakması gerekir.
Yoksa kodun tetiklenmesi nasıl engellenecek.
Belge açık olduğu sürece bir "akılda tutma" işlemi kodlansa bile, belge kapatılıp açıldığında her şey sıfırdan başlar.
 
İşte "bir daha gösterme" seçiminin belgede bir iz bırakması gerekir.
Yoksa kodun tetiklenmesi nasıl engellenecek.
Belge açık olduğu sürece bir "akılda tutma" işlemi kodlansa bile, belge kapatılıp açıldığında her şey sıfırdan başlar.

Haklısınız hocam bunu düşünemedim açıkçası.

Peki bu uyarılar için MsgBox yerine userfom kullansak yine aynı problem karşımıza çıkar mı ?

Makro çalışmayı bilmediğimden soruyorum.

Syg,
 
Dediğim gibi.
Veri girişinin (G sütununa işaret koyma veya kriteri silme) elle veya userform ile yapılmasından başka yolu yok.
UYARI sayfasında bir şeyi silmeden veya bir işaret koymadan sonuç alınamaz,
kodun belgenin sonraki açılışında, önceki tercihi hatırlamasının başka yolu yok.
 
Dediğim gibi.
Veri girişinin (G sütununa işaret koyma veya kriteri silme) elle veya userform ile yapılmasından başka yolu yok.
UYARI sayfasında bir şeyi silmeden veya bir işaret koymadan sonuç alınamaz,
kodun belgenin sonraki açılışında, önceki tercihi hatırlamasının başka yolu yok.

Hocam Merhaba,

Bu durumda dosyanın kullanım verimliliğine yönelik yapılabilecek en doğru çalışma dosya açıkken yani kapanana kadar geçici olarak
uyarı mesajını kesmek olacaktır.

Aksi taktirde dosyayı kullanan personel ilgili sayfaya yetkisi olmadığından müdahale edemeyeceği için uyarı almaya devam edecektir.

Bu durum da dosya kapatılana kadar uyarı mesajlarını kesmek adına kodları nasıl revize edebilirim ?

Bu konu başlığı altında "bir daha gösterme" kutucuğu şeklinde ekleme yapılmıştı açıkçası. Ancak görsel anlamda biraz sönük kalıyor. Sizin yazmış olduğunuz kodlar üzerine çıkan mesajlarda renk canlılığı, yazı formatı vb. daha göze hitap ediyor açıkçası.

Makro çok bilmediğimden bunun nedenini bilemiyorum. Bu formatlar bozulmadan kodları nasıl revize etmem yada ekleme yapmam gerekir acaba?


Saygılarımı sunarım,
 
Üst