farklı makrolar için sayaç

algerian

Altın Üye
Katılım
10 Haziran 2014
Mesajlar
45
Excel Vers. ve Dili
Excel365 İngilizce
Altın Üyelik Bitiş Tarihi
20-03-2025
Merhaba üstadlarım,
Öğrencilerimin arızalı devre elemanını bulması için Excel dosyasında bir elektrik devre simülasyonu oluşturdum. Dosyamda 30 adet komut butonu bulunuyor ve her biri farklı kodları çalıştırıyor. Burada amaç mümkün olan en az tıklama ile arızalı devre elemanını tespit etmek. Cevabı bulduğunu düşündüğünde ise listbox üzerinden seçim yaparak gönderiyor.
Sorum şu: Bir sayaç oluşturup her buton tıklamasında sayı artacak şekilde bir sayaç oluşturabilir miyim? Hangi butona kaç defa bastığı gerekmiyor. Toplam kaç tıklama ile sonuca ulaştığı önemli.
Destekleriniz için şimdiden teşekkür ederim.
 

DoğanD

Altın Üye
Katılım
22 Eylül 2023
Mesajlar
392
Excel Vers. ve Dili
Office 365 TR
Altın Üyelik Bitiş Tarihi
05-10-2028
Merhaba,

Buton kodlarının bulunduğu modülün üst kısmına Dim sayac as integer kodu ile bir değişken tanımlayın. Ardından, saymasını istediğiniz buton click eventlerin tümüne sayac=sayac+1 kodunu ekleyin. Sıfırlamasını istediğiniz bir tetikleyici ile de sayac=0 komutu ile sayacı sıfırlayabilirsiniz. Değişken içindeki değeri de dilerseniz mesaj box ile, dilerseniz de Label ile kullanıcıya gösterebilirsiniz.

Bu arada anlattığınız çalışma gerçekten ilgi çekici görünüyor, sorunuzdan bağımsız dosyayı paylaşabilirseniz çok mutlu olurum.
 

algerian

Altın Üye
Katılım
10 Haziran 2014
Mesajlar
45
Excel Vers. ve Dili
Excel365 İngilizce
Altın Üyelik Bitiş Tarihi
20-03-2025
Merhaba Doğan Bey,
Desteğiniz için teşekkür ederim. Dediğiniz şekilde yaptım ve sonra cevabı göndereceği zaman bastığı butonun makrosuna da son sayaç değerini bir hücreye yazacak şekilde tanımlama yaptım. Ancak sayaç değeri sıfırda kalıyor maalesef. Yine de bir başlangıç fikri verdi. Üzerinde çalışmaya devam ediyorum. Teşekkür ederim ilginiz için.
Henüz tamamlanmamış olsa da dosya ektedir. açılışta ID kısmına rastgele bir sayı ve Name kısmına da bir isim yazmanız yeterli. Boş olursa hata veriyor. Sonra bir senaryoya tıklayıp Start butonuna bastığınızda dosyayı kullanabiliyorsunuz. Kodlarda deneme yapmak isterseniz Private Sub cb_Send_Click() modülünde .To = "deneme.mailadresi@gmail.com" şeklinde yazdığım kısma kendi mail adresinizi ekleyebilirsiniz. Ben kendi adresimi sildim :)
 

Ekli dosyalar

DoğanD

Altın Üye
Katılım
22 Eylül 2023
Mesajlar
392
Excel Vers. ve Dili
Office 365 TR
Altın Üyelik Bitiş Tarihi
05-10-2028
Tekrar merhaba,

Açıkçası hiç hakim olmadığım bir alan fakat gerçekten harika bir çalışma emeğinize sağlık. Sayaç konusunda ise siz her bir sub içinde Dim ile tekrar tanımlama yapmışsınız. Bu da her tanımlamada değişkenin içini boşaltıyor. Modülün en başında, tüm Sub'ların dışında tek bir kez Dim sayac as integer yazmanız gerekiyordu. Bu sayede bu modül içerisinde dönen değişken değerini koruyacaktır. Fakat sizin projenizde farklı modüllerde sayaç işlevi ihtiyacı olduğu için şöyle bir alternatif olabilir;

Userform2 kodlarının arasına (sayaç değerinin çıktısını alacağınız modül orada olduğu için) sayaç için ufak bir sub ekledim. Sayacın çalışması gereken her noktada da userform2.sayac kodu ile a değerini bir arttırdım. Birkaç delmece test yaptım ve çalışıyor gibi, yine de test etmenizi öneririm.
 

Ekli dosyalar

algerian

Altın Üye
Katılım
10 Haziran 2014
Mesajlar
45
Excel Vers. ve Dili
Excel365 İngilizce
Altın Üyelik Bitiş Tarihi
20-03-2025
Tekrar merhaba,

Açıkçası hiç hakim olmadığım bir alan fakat gerçekten harika bir çalışma emeğinize sağlık. Sayaç konusunda ise siz her bir sub içinde Dim ile tekrar tanımlama yapmışsınız. Bu da her tanımlamada değişkenin içini boşaltıyor. Modülün en başında, tüm Sub'ların dışında tek bir kez Dim sayac as integer yazmanız gerekiyordu. Bu sayede bu modül içerisinde dönen değişken değerini koruyacaktır. Fakat sizin projenizde farklı modüllerde sayaç işlevi ihtiyacı olduğu için şöyle bir alternatif olabilir;

Userform2 kodlarının arasına (sayaç değerinin çıktısını alacağınız modül orada olduğu için) sayaç için ufak bir sub ekledim. Sayacın çalışması gereken her noktada da userform2.sayac kodu ile a değerini bir arttırdım. Birkaç delmece test yaptım ve çalışıyor gibi, yine de test etmenizi öneririm.
Üstadım, çok teşekkür ederim. Tam istediğim şekilde çalışıyor. Tek tek de düzeltmişsisniz. Emeğinize sağlık. Selamlar.
 

DoğanD

Altın Üye
Katılım
22 Eylül 2023
Mesajlar
392
Excel Vers. ve Dili
Office 365 TR
Altın Üyelik Bitiş Tarihi
05-10-2028
Faydalı olabildiysem ne mutlu, iyi çalışmalar dilerim.
 
Üst