kapasite dolması

Katılım
24 Ağustos 2005
Mesajlar
34
merhaba,
commondbutton2 düğmesine basınca yapılması gereken işlemler fazla olduğu için excel çok fazla komut satırı olduğunu belirten mesaj verip programı çalıştırmıyor.
bende bu düğmenin sonuna commandbutton3 e basacak bir kod yazıp geriye kalan kodları
Private Sub CommandButton3_Click() ün
altına yazarak kendiliğinden prosedürün devam etmesini istiyorum.

bunun komutunu
commondbutton3.click
olarak denedim ama olmadı. yardımcı olursanız çok sevinirim.
çok teşekkürler
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
commondbutton2 düğmesine basınca yapılması gereken işlemler fazla olduğu için excel çok fazla komut satırı olduğunu belirten mesaj verip programı çalıştırmıyor.
Bunu nasıl başardınız bilmiyorum ama, o kadar çok kod satırı olması mümkün değil. Mutlaka kısaltılabilir.
 
Katılım
24 Ağustos 2005
Mesajlar
34
bende bilmiyorum bi sürü döngü kullandım ama kısalmıyo. yaklaşıp 4 tane dosyaya gidip bir sürü döngü oluşturmam gerekiyor.
word e atınca yaklaşık 40 sayfa kadar. benim çözemediğim ben userform için mi yoksa o düğme için mi kapasiteyi aştım. o yüzden yeni bi düğme ekleyip bu denemeyi yapıcam. komutunu bulursam çok iyi olur
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
word e atınca yaklaşık 40 sayfa kadar.
doğrusu ne diyeceğimi bilemiyorum .... ne kadar fazla bir kod böyle ?

Þimdi tam olarak hatırlamıyorum ama, VBA' nin bazı sınırları var. Bir modul için şu kadar Kb falan diye. Belki de kodu değişik modullere bölmeniz gerekebilir.

Ama yine de uzaya bir araştırma gemisi gönderecek bir program değilse, 40 sayfa uzunluğunda kod olması bana hala imkansız geliyor.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Sanıyorum, kodun içinde bulunduğu modul 64K' dan büyük olduğu için program kodları başlangıçta "compile" edilemiyor.

Söz konusu kodun olduğu modül aktifken, Ctrl + G tuşlarına basıp, gelen pencereye aşağıdakini yapıştırdıktan sonra Enter tuşuna basıp, çıkan sonucu buraya bildirebilirmisiniz ?

Kod:
Debug.Print Len(Application.VBE.ActiveCodePane.CodeModule.Lines(1, Application.VBE.ActiveCodePane.CodeModule.CountOfLines)) / 1000
 
Katılım
7 Temmuz 2004
Mesajlar
1,141
Each procedure can contain up to 64K of code. If a procedure or module exceeds this limit, Visual Basic generates a compile-time error. If you encounter this error, you can avoid it by breaking extremely large procedures into several smaller procedures, or by moving module -level declarations into another module.

64 k'yi geçmişiniz. Hiç başıma gelmemişti.

prosedürlerinizi daha küçük parçalara bölün.


sub a()
'uzun
'bir
'prosedür
'yazdın
end sub


yerine

sub a()
'uzun
'bir
b()
end sub


sub b()
'prosedür
'yazdım
end sub


gibi.

Ancak Sn. Haluk'un (Elim alışmamış Hakul yazdım iki kere yanlışlıkla :mrgreen:) da bahsettiği gibi kesinlikle kod'un kısaltılabileceğini düşünüyorum.
 
Katılım
24 Ağustos 2005
Mesajlar
34
O zaman visible özelliği false olan bi formun üzerinde açtığım bi düğmeye basılmasını sağlarsam farklı bir modül kullanmış olurum değil mi?
ya bunun için çok basit bir komut olması lazım hatırlıyorum dephi de vardı böyle bir şey ama VB için olanını bilmiyorum. :yardim:
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Katılım
24 Ağustos 2005
Mesajlar
34
Tamamdır. çok teşekkür ederim. :hihoho:
 
Üst