- Katılım
- 4 Ocak 2006
- Mesajlar
- 12,070
- Excel Vers. ve Dili
-
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Bilgilendirme için teşekkür ederim sayın Ömer Baran.
Ben soru sahibinin dosyasını daha önce inceleyememiştim. Az önce gördüm ve sizin de belirttiğiniz hususlara vakıf oldum.
Konu sahibi arkadaşın öncelikle "makro nedir, ne zaman kullanılır, çeşitleri nelerdir, nasıl çalıştırılır?" gibi temel bilgileri öğrenmesi yerinde olur diye düşünüyorum.
Sizin de belirttiğiniz gibi makroların çalışması için çeşitli yöntemler vardır. Örneğin sayfaya bir düğme/resim/nesne eklenip, buna makro atanarak, her basıldığında makronun çalışması sağlanabilir. Makroya kısayol tuşu atanıp çalıştırılabilir. Sayfa olaylarına bağlanıp, change olayıyla, yani herhangi veya belirli bir hücrede değişiklik olduğunda çalışması sağlanabilir, SelectionChange olayıyla hücre seçildiğinde çalıştırılabilir, Activate olayıyla sayfa açıldığında, calculate olayıyla hesaplama yapıldığında, beforedoubleclick olayıyla çift tıklanarak çalıştırılabilir vs.
Onun için ben önceki sorumda "nasıl çalışması gerektiğini" sormuştum, o sırada dosyayı incelememiştim.
Sonuç olarak belirttiğiniz gibi kontrol edilmesi istenen hücre formül içerdiğinden, Change olayına bağlı olarak, o hücreye etki eden ve elle değiştirilen hücreler değiştirildiğinde çalışacak şekilde ayarlama yapılabilir.
Dosyada KIYASLAMA B15 yani kontrol edilmesi istenen hücre Veri girişi B1 ve KIYASLAMA B19'dan etkileniyor.
Veri Girişi B1'deki veri bildiğim kadarıyla evrensel bir değer, yani 1 kw her zaman 860 kcal'dır. Bu nedenle bu hücrede değişiklik yapılacağını sanmıyorum.
B19 ise KIYASLAMA B10 ile Veri girişi B6 ve B16'dan etkileniyor.
KIYASLAMA B10, B7 ve B9'dan etkileniyor. B7 başka bir hücreden, B9 başka hücreden vs.
Tüm hücreleri sizin gibi inceleme sabrını gösteremedim maalesef. Bu nedenle konu sahibinin aşağıda verdiğim kodda kırmızı ile yazılmış kısmı değiştirerek, hangi hücrelere el ile veri girildiğinde kontrol edilecek hücre değişiyorsa onu belirtip, makronun çalışmasını sağlayabilir:
Sayın Tdanışman, verdiğim kodu veri girişi sayfasına sağ tıklayıp Kod görüntüle deyince açılan sayfaya ( burası o sayfanın kod bölümü oluyor) yapıştırın ve veri girişi sayfasında B13, B14 ve B16 hücrelerini değiştirerek sonucu gözlemleyin.
Ben soru sahibinin dosyasını daha önce inceleyememiştim. Az önce gördüm ve sizin de belirttiğiniz hususlara vakıf oldum.
Konu sahibi arkadaşın öncelikle "makro nedir, ne zaman kullanılır, çeşitleri nelerdir, nasıl çalıştırılır?" gibi temel bilgileri öğrenmesi yerinde olur diye düşünüyorum.
Sizin de belirttiğiniz gibi makroların çalışması için çeşitli yöntemler vardır. Örneğin sayfaya bir düğme/resim/nesne eklenip, buna makro atanarak, her basıldığında makronun çalışması sağlanabilir. Makroya kısayol tuşu atanıp çalıştırılabilir. Sayfa olaylarına bağlanıp, change olayıyla, yani herhangi veya belirli bir hücrede değişiklik olduğunda çalışması sağlanabilir, SelectionChange olayıyla hücre seçildiğinde çalıştırılabilir, Activate olayıyla sayfa açıldığında, calculate olayıyla hesaplama yapıldığında, beforedoubleclick olayıyla çift tıklanarak çalıştırılabilir vs.
Onun için ben önceki sorumda "nasıl çalışması gerektiğini" sormuştum, o sırada dosyayı incelememiştim.
Sonuç olarak belirttiğiniz gibi kontrol edilmesi istenen hücre formül içerdiğinden, Change olayına bağlı olarak, o hücreye etki eden ve elle değiştirilen hücreler değiştirildiğinde çalışacak şekilde ayarlama yapılabilir.
Dosyada KIYASLAMA B15 yani kontrol edilmesi istenen hücre Veri girişi B1 ve KIYASLAMA B19'dan etkileniyor.
Veri Girişi B1'deki veri bildiğim kadarıyla evrensel bir değer, yani 1 kw her zaman 860 kcal'dır. Bu nedenle bu hücrede değişiklik yapılacağını sanmıyorum.
B19 ise KIYASLAMA B10 ile Veri girişi B6 ve B16'dan etkileniyor.
KIYASLAMA B10, B7 ve B9'dan etkileniyor. B7 başka bir hücreden, B9 başka hücreden vs.
Tüm hücreleri sizin gibi inceleme sabrını gösteremedim maalesef. Bu nedenle konu sahibinin aşağıda verdiğim kodda kırmızı ile yazılmış kısmı değiştirerek, hangi hücrelere el ile veri girildiğinde kontrol edilecek hücre değişiyorsa onu belirtip, makronun çalışmasını sağlayabilir:
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("[COLOR="Red"]B13, B14, B16[/COLOR]")) Is Nothing Then Exit Sub
Set s1 = Sheets("KIYASLAMA")
Set s2 = Sheets("VERİ GİRİŞİ")
If s1.[B15] < 2350 Or s1.[B15] > 2450 Then
s2.Activate
MsgBox "Santral Alanında Bulunan Toplam Rezerv Miktarı" & Chr(10) & _
"Mevcut Rezervle Santralin Elektrik Üretim Süresi" & Chr(10) & _
"Santral Dizaynına Bağlı Elektrik Üretim Miktarı", vbCritical, "SANTRAL VERİLERİNİ KONTROL EDİNİZ"
End If
End Sub