• DİKKAT

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

Sayfadan Çıkarken Koşullu Makro Çalıştırma

Katılım
4 Kasım 2011
Mesajlar
7
Excel Vers. ve Dili
excel 2007 türkçe
Merhaba Arkadaşlar..

Eğer sayfada herhangi bir değişiklik yapıldı ise makro,sayfadan çıkarken çalışsın,
Eğer sayfada herhangi bir değişiklik yapılmadı ise makro çalışmasın.
Aşağıda kodları bir arada kullanarak yapılabilme imkanı var mı acaba?


Private Sub worksheet_Change(ByVal Target As Range)

Sub worksheet_Deactivate()

sor = MsgBox("Fiyatlarda Yaptığınız Değişiklik Kaydedilsinmi?", vbYesNo)
If sor = vbNo Then Exit Sub

dataac
End Sub
 
Son düzenleme:
Ne tür bir değişiklik ? Çünkü her sayfa olayı yakalanamıyor. Örneğin; biçim değişiklikleri.
 
hücrelerde birim fiyatları var kullanıcı her hangi bir hücredeki değeri değişince yeni değeri sayfadan çıkarken data diye baska bir dosyaya alert e evet derse kaydet makro su ile otomatik kaydettiriyorum.
burada ki sorun kullanıcı her hangi bir hücreyi değişmesse
Private Sub worksheet_Deactivate()
çalışmasın
 
Ne tür bir değişiklik ? Çünkü her sayfa olayı yakalanamıyor. Örneğin; biçim değişiklikleri.



Private Sub worksheet_Change(ByVal Target As Range)

Sub worksheet_Deactivate()

sor = MsgBox("Fiyatlarda Yaptığınız Değişiklik Kaydedilsinmi?", vbYesNo)
If sor = vbNo Then Exit Sub

dataac
End Sub


İşin içindenden bir türlü çıkamıyorum
yardım edecek arkadaşlara şimdiden teşekkürler.
dosyalar ekte.
 

Ekli dosyalar

Merhaba,

"fiyatlar" isimli sayfanızın kod bölümündeki tüm kodları silin ve aşağıdaki kodları uygulayın.

Kod:
Dim Kontrol As Boolean
Dim Eski_veri
 
Private Sub Worksheet_Activate()
    Kontrol = False
End Sub
 
Private Sub Worksheet_Change(ByVal Target As Range)
    On Error GoTo Son
    Application.EnableEvents = False
    If Target <> Eski_veri Then Kontrol = True
Son:
    Application.EnableEvents = True
End Sub
 
Private Sub Worksheet_Deactivate()
    If Kontrol = True Then
    sor = MsgBox("Fiyatlarda Yaptığınız Değişiklik Kaydedilsinmi?", vbYesNo)
    If sor = vbNo Then Exit Sub
    Kontrol = False
    dataac
    End If
End Sub
 
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Eski_veri = Target
End Sub
 
Merhaba,

"fiyatlar" isimli sayfanızın kod bölümündeki tüm kodları silin ve aşağıdaki kodları uygulayın.

Kod:
Dim Kontrol As Boolean
Dim Eski_veri
 
Private Sub Worksheet_Activate()
    Kontrol = False
End Sub
 
Private Sub Worksheet_Change(ByVal Target As Range)
    On Error GoTo Son
    Application.EnableEvents = False
    If Target <> Eski_veri Then Kontrol = True
Son:
    Application.EnableEvents = True
End Sub
 
Private Sub Worksheet_Deactivate()
    If Kontrol = True Then
    sor = MsgBox("Fiyatlarda Yaptığınız Değişiklik Kaydedilsinmi?", vbYesNo)
    If sor = vbNo Then Exit Sub
    Kontrol = False
    dataac
    End If
End Sub
 
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Eski_veri = Target
End Sub
Var ya büyüksün usta, çok çok sağolasın kod sorunsuz çalıştı.
büyük bi dertten kurtuldum sayende.
Tekrar teşekkür ederim,İyi Bayramlar...
 
Geri
Üst