Makronun otomatik çalışması

Erdinç FIRTINA

Altın Üye
Katılım
14 Şubat 2007
Mesajlar
400
Excel Vers. ve Dili
excel 2003 türkçe
Altın Üyelik Bitiş Tarihi
15-05-2026
Değerli üyeler,
Sizlerin katkıları ile hazırlanmış bir makro kodu üzerinde değişiklik yaparak kendime uyarladım.

Söz konusu makro bir button yardımıyla çalışıyor. Oysa ben bu makronun herhangi bir komut verilmeden kendiliğinden çalışmasını istiyorum.
Yani ben ilgili hücrelere veri girdikçe makronun otomatik olarak çalışmasını ve toplamasını istiyorum. (Formüllü hücreler gibi)

Ama bu konuda düşündüğüm "Acaba hız kaybı oluşturur mu? çünkü her veri girişinde makronun çalışacağı düşünülürse böyle bir şey olur mu?"

Yardımlarınız için şimdiden teşekkürler!!!

Sub toplam()
[ı4:m13].ClearContents
For say = 2 To Sheets.Count - 6
For sut = 1 To 10
Range("ı" & sut + 3) = Range("ı" & sut + 3) + Sheets(say).Range("d" & sut + 3)
Range("j" & sut + 3) = Range("j" & sut + 3) + Sheets(say).Range("ı" & sut + 3)
Range("k" & sut + 3) = Range("k" & sut + 3) + Sheets(say).Range("ı" & sut + 22)
Range("l" & sut + 3) = Range("l" & sut + 3) + Sheets(say).Range("ı" & sut + 41)
Range("m" & sut + 3) = Range("m" & sut + 3) + Sheets(say).Range("ı" & sut + 55)
Next
Next
End Sub
 

Mahmut Kök

Özel Üye
Katılım
14 Temmuz 2006
Mesajlar
878
Excel Vers. ve Dili
Excel 2007 - Türkçe
veri girişi yaptığınız sayfanın kod kısmına aşağıdaki kodları yapıştırıp deneyiniz.




Kod:
Private Sub Worksheet_Change(ByVal Target As Range)

toplam 'sizin makronuz.

End Sub
 

Erdinç FIRTINA

Altın Üye
Katılım
14 Şubat 2007
Mesajlar
400
Excel Vers. ve Dili
excel 2003 türkçe
Altın Üyelik Bitiş Tarihi
15-05-2026
Sayın Mesleki teşekkür ederim.
Aşağıdaki şekilde denedim ama çalışmadı nedeni ne olabilir acaba?

Private Sub Worksheet_Change(ByVal Target As Range)
Sub toplam()
[ı4:m13].ClearContents
For say = 2 To Sheets.Count - 6
For sut = 1 To 10
Range("ı" & sut + 3) = Range("ı" & sut + 3) + Sheets(say).Range("d" & sut + 3)
Range("j" & sut + 3) = Range("j" & sut + 3) + Sheets(say).Range("ı" & sut + 3)
Range("k" & sut + 3) = Range("k" & sut + 3) + Sheets(say).Range("ı" & sut + 22)
Range("l" & sut + 3) = Range("l" & sut + 3) + Sheets(say).Range("ı" & sut + 41)
Range("m" & sut + 3) = Range("m" & sut + 3) + Sheets(say).Range("ı" & sut + 55)
Next
Next
End Sub
 
S

Skorpiyon

Misafir
Sayın sefkatim,

Sub toplam() ' KALDIRIN

Saygılarımla...
 

Mahmut Kök

Özel Üye
Katılım
14 Temmuz 2006
Mesajlar
878
Excel Vers. ve Dili
Excel 2007 - Türkçe

*** - Yıldızlı satırdaki toplam sözcüğü, sizin Sub Toplam () adlı makronuzu çalıştırır, kodlarınızı tekrar yazmadan, bu şekilde de çalıştırabilirsiniz.


Kod:
[LEFT]Private Sub Worksheet_Change(ByVal Target As Range)

toplam 'sizin makronuz.***

End Sub[/LEFT]
 

Erdinç FIRTINA

Altın Üye
Katılım
14 Şubat 2007
Mesajlar
400
Excel Vers. ve Dili
excel 2003 türkçe
Altın Üyelik Bitiş Tarihi
15-05-2026
Sayın Mesleki ve Sertkaya,
Yardımlarınız için çok teşekkürler ama herhalde benden kaynaklanan bir durum. Denedim çalışmıyor.

Yine de her şey için çok teşekkürler!!!
 
S

Skorpiyon

Misafir
Sayın sefkatim,

Eğer kodlarınız aynen buraya yazdığınız gibi ise,

[ı4:m13].ClearContents

bu ve diğer satırlarda "ı" harfi geçen yerlerde zaten hata verecektir. Excelde küçük "ı" harfli sütun veya satır yoktur. Ya onu büyük I harfi yapınız. Ya da küçük i harfi.

Saygılarımla...


 

Erdinç FIRTINA

Altın Üye
Katılım
14 Şubat 2007
Mesajlar
400
Excel Vers. ve Dili
excel 2003 türkçe
Altın Üyelik Bitiş Tarihi
15-05-2026
Denedim ama olmuyor...

Sayın Sertkaya,
Ben büyük harf kullanarak da denedim ama olmuyor. Ben yine de dosyamı gönderiyorum. Eğer zaman bulabilirseniz ve bir bakarsanız çok sevinirim.

Şimdiden çok teşekkürler!!!
 
S

Skorpiyon

Misafir
Sayın sefkatim,

Butona basın demişsiniz. Bastım ve normal çalıştı. Otomatik çalışsın istiyorum derken kastettiğiniz butonu kaldırarak mı yapmak istiyorsunuz bu işlemi ? Yani siz ilgili bir sayfada bir değişiklik yaptığınızda SONUÇ sayfasına otomatik olarak işlenmesini mi istiyorsunuz ? Veya kodların sizde verdiği hata nedir ?

Saygılarımla...
 

Erdinç FIRTINA

Altın Üye
Katılım
14 Şubat 2007
Mesajlar
400
Excel Vers. ve Dili
excel 2003 türkçe
Altın Üyelik Bitiş Tarihi
15-05-2026
Sayın Sertkaya,
Öncelikle benimle ilgilendiğiniz çok çok teşekkür ederim. Dedim ya sorunun kaynağı ben olabilirim diye. şimdi daha iyi anladım ki öyleymiş. Derdimi bile anlatamamışım. Buna üzüldüm. Evet benim istediğim atanmış düğmeye basarak değil veri girişi olduğunda makronun otomatik olarak çalışması ve verileri aktarmasıydı. Aslında işin doğrusu bunu yapmak istememin nedeni bundan yararlanarak aynı dosya üzerinde başka şeyler yaparak bilgi ve becerimi geliştirmekti.

Herşey için şimdiden çok teşekkürler!!!


SAYGILARIMLA!!!
 
S

Skorpiyon

Misafir
Sayın şefkatim,

Biz de bu işleri tam 4 x 4 'lük bilen biri değiliz. Benim bulduğum yöntem biraz uzun ama işinizi görür sanırım.

Aşağıdaki kodları gerekli yerlere yazınız.

Her Sayfanın Kod Bölümüne bunları :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim sut As Integer
For sut = 1 To 10
Sheets("SONUÇ").Range("ı" & sut + 3) = Sheets("SONUÇ").Range("ı" & sut + 3) + Range("d" & sut + 3)
Sheets("SONUÇ").Range("j" & sut + 3) = Sheets("SONUÇ").Range("j" & sut + 3) + Range("ı" & sut + 3)
Sheets("SONUÇ").Range("k" & sut + 3) = Sheets("SONUÇ").Range("k" & sut + 3) + Range("ı" & sut + 22)
Sheets("SONUÇ").Range("l" & sut + 3) = Sheets("SONUÇ").Range("l" & sut + 3) + Range("ı" & sut + 41)
Sheets("SONUÇ").Range("m" & sut + 3) = Sheets("SONUÇ").Range("m" & sut + 3) + Range("ı" & sut + 55)
Next
End Sub

Dosyanızdaki Modül14'ü tamamen kaldırın.

Ve,
This Workbook'e

Private Sub Workbook_Open()
Sheets("SONUÇ").Select
[ı4:m13].ClearContents
End Sub

Saygılarımla...
 

Erdinç FIRTINA

Altın Üye
Katılım
14 Şubat 2007
Mesajlar
400
Excel Vers. ve Dili
excel 2003 türkçe
Altın Üyelik Bitiş Tarihi
15-05-2026
Çok çok teşekkür ederim Sayın Sertkaya!!!

SAYGILARIMLA!!!
 
S

Skorpiyon

Misafir
Sayın sefkatim,

Yardımcı olabildiysek ne mutlu.

Saygılarımla...
 
Üst