Uyarı Mesajı

Katılım
7 Eylül 2010
Mesajlar
6
Excel Vers. ve Dili
2003
Merhaba arkadaşlar. Öncelikle, bilgilerinizi birçok kişiyle paylaşıp; insanlara gerek başarı, gerekse sağladığız sayısız kolaylıklardan dolayı teşekkür ederim.

Benim sorum şudur;

Firmamızda server' dan takip ettiğimiz bir çizelge, yaklaşık 10 farklı bilgisayardan açılarak kullanılmakta. Fakat bazı arkadaşlar excel dosyasını açtıktan sonra kapatmayı unutuyorlar. Malumunuz, kullanılan dosya, başka bir pc tarafından açıldığında, diğer pc' lerden açılsa da üzerinde değişiklik yapılamıyor. Bunun için, belirli aralıklarla ( Örneğin: 2 dakikada bir ) kullanıcının ekranında uyarı mesajı çıksın istiyorum.

Bunun bir yöntemi varmıdır? Yardımcı olacak arkadaşlara şimdiden sonsuz teşekkürler...
 

Mustafa MUTLU

Destek Ekibi
Destek Ekibi
Katılım
24 Temmuz 2008
Mesajlar
1,587
Excel Vers. ve Dili
Ofis 2013 TR 32 Bit
Şunu Dernermisiniz.

Option Explicit
Sub AUTO_OPEN()
DoEvents
Application.OnTime Now + TimeValue("00:02:00"), "İhtar"
End Sub
Sub İhtar()
DoEvents
Range("A1") = Time
AUTO_OPEN
MsgBox ("Dosya İle İşiniz Yoksa, Lütfen Dosyayı Kapatınız")
End Sub
 
Katılım
7 Eylül 2010
Mesajlar
6
Excel Vers. ve Dili
2003
Şunu Dernermisiniz.

Option Explicit
Sub AUTO_OPEN()
DoEvents
Application.OnTime Now + TimeValue("00:02:00"), "İhtar"
End Sub
Sub İhtar()
DoEvents
Range("A1") = Time
AUTO_OPEN
MsgBox ("Dosya İle İşiniz Yoksa, Lütfen Dosyayı Kapatınız")
End Sub


Merhabalar. Yardımlarınız için çok çok teşekkür ederim. Fakat şöyle bir sorun var. Ben ilk açılışta şöyle bir mesaj kutusu açtırıyorum;

Kod:
Sub AUTO_OPEN()
MsgBox "HOŞGELDİNİZ....  İŞİNİZ BİTTİĞİNDE LÜTFEN PROGRAMI KAPATINIZ...  ", vbApplicationModal, " XXXXX XXXX XXX XXX A.Ş."
End Sub

Fakat bu kod ile süreli makro (aşağıda ) birlikte çalışmıyor ?? Ayrı ayrı çalıştırdığımda sorun olmuyor ama bir türlü birlikte çalıştıramadım :( Şöyle bir hata alıyorum: "Ambigous name detected "


Kod:
Option Explicit
 
Sub AUTO_OPEN()
    DoEvents
    Application.OnTime Now + TimeValue("00:00:10"), "SÜRELİ_MAKRO"
End Sub
 
Sub SÜRELİ_MAKRO()
    DoEvents
    MsgBox "İŞİNİZ BİTTİYSE LÜTFEN PROGRAMI KAPATINIZ...  ", vbApplicationModal, " XXXXX XXXX XXX XXX A.Ş."
    AUTO_OPEN
End Sub


Bu durumda ne gibi bir yöntem uygulamam gerekiyor yardımcı olurmusunuz ?
 
Son düzenleme:
Katılım
7 Eylül 2010
Mesajlar
6
Excel Vers. ve Dili
2003
Tekrar merhabalar. İki makroyu birlikte çalıştırmaktan vazgeçtim. Sadece aşağıdaki kodu çalıştırmaya karar verdim. Fakat şöyle bir sorunla karşılaştım;

Makroyu oluşturduğum dosyayı açıp ( ÇALIŞMA isimli dosya ), ardından da başka bir excel dosyası açtıktan sonra, ÇALIŞMA isimli dosyayı kapatıp, diğer dosya ile çalışmaya devam etsem bile, 2 dakika sonra "işiniz bittiyse kapatınız" uyarısı geliyor. Tabi o sırada ÇALIŞMA isimli dosya kendi kendine tekrar açılmış oluyor. Bunun bir çözümü var mıdır ?

Kod:
Sub AUTO_OPEN()
    DoEvents
    Application.OnTime Now + TimeValue("00:02:00"), "SÜRELİ_MAKRO"
End Sub
 
Sub SÜRELİ_MAKRO()
    DoEvents
    MsgBox "İŞİNİZ BİTTİYSE LÜTFEN PROGRAMI KAPATINIZ...  ", vbApplicationModal, " xxxxx xxxxx A.Ş."
    AUTO_OPEN
End Sub
 
Katılım
16 Mayıs 2008
Mesajlar
162
Excel Vers. ve Dili
excel 2003
Kodlarınıza ekleme yaptım:

Sub AUTO_OPEN()
If ActiveSheet.Name<>"ÇALIŞMA" Then
Exit Sub
Else
DoEvents
Application.OnTime Now + TimeValue("00:02:00"), "SÜRELİ_MAKRO"
End If
End Sub

Sub SÜRELİ_MAKRO()
DoEvents
MsgBox "İŞİNİZ BİTTİYSE LÜTFEN PROGRAMI KAPATINIZ... ", vbApplicationModal, " xxxxx xxxxx A.Ş."
AUTO_OPEN
End Sub

ÇALIŞMA sayfanızın kod bölümüne de:
Private Sub Worksheet_Activate()
Call AUTO_OPEN
End Sub

Diğer sayfaya geçtiğiniz zaman, bazen sadece 1 kez daha uyarı veriyor.Bir daha uyarı mesajı gelmiyor. 1 defadan bişey olmaz sanırım.

Ayrıca ilk sorduğunuz soru (aynı anda 2 makro çalışmıyor dediğiniz.Yani ilk açılışta uyarı mesajı vermesini istediğiniz.) ya aşağıdaki gibi küçük bir değiştirmeyle sorununuz çözülecektir.

Sub ZAMANLA()
If ActiveSheet.Name <> "ÇALIŞMA" Then
Exit Sub
Else
DoEvents
Application.OnTime Now + TimeValue("00:02:00"), "SÜRELİ_MAKRO"
End If
End Sub

Sub SÜRELİ_MAKRO()
DoEvents
MsgBox "İŞİNİZ BİTTİYSE LÜTFEN PROGRAMI KAPATINIZ... ", vbApplicationModal, " xxxxx xxxxx A.Ş."
Call ZAMANLA
End Sub

Sub AUTO_OPEN()
Sheets("ÇALIŞMA").Select
MsgBox "HOŞGELDİNİZ.... İŞİNİZ BİTTİĞİNDE LÜTFEN PROGRAMI KAPATINIZ... ", vbApplicationModal, " XXXXX XXXX XXX XXX A.Ş."
Call ZAMANLA
End Sub



ÇALIŞMA sayfanızın kod bölümüne de:
Private Sub Worksheet_Activate()
Call SÜRELİ_MAKRO
End Sub

Eğer "ÇALIŞMA" sayfanızdan diğer sayfaya geçtikten sonra tekrar tekrar "ÇALIŞMA" sayfasına dönerseniz ki , her "ÇALIŞMA" sayfasını yeniden açmak yeni bir zamanlama çalıştırmak demek.Çok kez art arda uyarı mesajı geliyor.Buna sebepte "ÇALIŞMA" sayfasının kod bölümüne yazılan kod yüzünden.Kitabı açıp kapatmaktan bahsetmiyorum.Açıp kapatırken herhangi bir sorun oluşmuyor.
 
Son düzenleme:
Katılım
16 Mayıs 2008
Mesajlar
162
Excel Vers. ve Dili
excel 2003
Merhaba, sorunsuz çalışan kodları aşağıya yazıyorum.Açılışta uyarı mesajı verecek.2 dakika arayla uyarı mesajı vermeye devam edecek."ÇALIŞMA" sayfasından diğer sayfaya geçince zamanlama tamamen duracak ve uyarı mesajı gelmeyecek.
Modüle aşağıdaki kodları komple kopyalayın.Kodlar alıntıdır.

Option Explicit
Public RunWhen As Variant
Public Const cRunIntervalSeconds = 120
Public Const cRunWhat = "MESAJ"

Sub ZAMANLAMA()

RunWhen = TimeValue(Now + TimeSerial(0, 0, cRunIntervalSeconds))
Application.OnTime RunWhen, cRunWhat
End Sub

Sub DURDUR()

On Error Resume Next
Application.OnTime RunWhen, cRunWhat, , False
End Sub

Sub MESAJ()


MsgBox "İŞİNİZ BİTTİYSE LÜTFEN PROGRAMI KAPATINIZ... ", vbApplicationModal, " xxxxx xxxxx A.Ş."

ZAMANLAMA



End Sub

Sub Auto_Open()
Call MESAJ
End Sub
-----------------------------------------------------------------------------------------------------
Kitabınızın ThisWorkbook bölümüne de aşağıdaki kodları kopyalayın.

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If ActiveSheet.Name = "ÇALIŞMA" Then
Call MESAJ
Else
Call DURDUR
End If
End Sub
 
Son düzenleme:
Üst