• DİKKAT

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

Soru Döngü ile ilgili yardım

Katılım
21 Ekim 2019
Mesajlar
7
Excel Vers. ve Dili
2007 Türkçe
Öğrencilerim için farklı işlevler içeren bir abaküs üzerinde çalışıyorum.
Yüzlük tablo üzerinde her buton için aşağıdaki gibi bir kodu yazıp düzenlemem gerekli. Ancak 100 butonun her biri için uzun bir iş ve bir süre sonra beyin sulandıran bir iş halini alıyor. Bu işi bir döngü ile halletmek mümkündür büyük ihtimalle. Ustalar ne der acaba.
Yardımlarınız için şimdiden teşekkürler.

Kod:
Private Sub CommandButton1_Click()
sndPlaySound "c:\Varmısın\click.wav", 1
If CommandButton2.Visible = False Then
CommandButton1.Visible = False
CommandButton2.Visible = True
ElseIf CommandButton3.Visible = False Then
CommandButton1.Visible = False
CommandButton3.Visible = True
ElseIf CommandButton4.Visible = False Then
CommandButton1.Visible = False
CommandButton4.Visible = True
ElseIf CommandButton5.Visible = False Then
CommandButton1.Visible = False
CommandButton5.Visible = True
ElseIf CommandButton6.Visible = False Then
CommandButton1.Visible = False
CommandButton6.Visible = True
ElseIf CommandButton7.Visible = False Then
CommandButton1.Visible = False
CommandButton7.Visible = True
ElseIf CommandButton8.Visible = False Then
CommandButton1.Visible = False
CommandButton8.Visible = True
ElseIf CommandButton9.Visible = False Then
CommandButton1.Visible = False
CommandButton9.Visible = True
ElseIf CommandButton10.Visible = False Then
CommandButton1.Visible = False
CommandButton10.Visible = True
ElseIf CommandButton11.Visible = False Then
CommandButton1.Visible = False
CommandButton11.Visible = True
End If
End Sub
 
Butonları çoktan UserForma eklediyseniz ve isimleri de CommandButton1, CommandButton2 olarak duruyorsa şu örneği inceleyiniz. UserForma istediğiniz kadar buton ekleyin her tıklanan butonu ayrı ayrı tespit edebilirsiniz.
 

Ekli dosyalar

Ne yazık ki dosyaya ulaşamıyorum. Kod paylaşabilirseniz sanırım daha faydalı olacak. İlginize teşekkürler.
 
Çok teşekkür ederim paylaşımınız için. Ama işimi görmedi.
Bana daha çok 10 buton arasında tıkladığım numaradaki buton gizlensin diğerleri görünsün biçiminde bir döngü lazım.
1-10, 10-20, 20-30, gibi her on buton için bunu yapmam gerekiyor. Ama döngü olayına tam hakim değilim.
 
İhtiyacım tam olarak şu. ilk on butondan tıkladığım buton gizlenecek, on buton arasında gizli olan buton görünür olacak.
Sanki şöyle bir şey iş görecek gibi ama tam yazamadım sanırım.

Private Sub CommandButton1_Click()
sndPlaySound "c:\Varmısın\click.wav", 1
For i = 1 To 11
If CommandButton(i).vissible = False Then
Commanbutton (i).vissible = True
CommandButton1.Visible = False
end if
end sub

bu kodu bi düzeltebilir misiniz.
 
Yazım hatasına dikkat ettiniz mi ?

Dosyada da bu şekilde hatalı ise , kurulum doğru olsa da çalışmaz takılır.

vissible yazanların tamamını noktadan sonra ya Visible yazın ya da nokta koyduğunuzda açılan olay listesinde Visible seçin ve deneyin.
 
onu düzelttim ama
Commanbutton (i) ya da Commanbutton i
yazımını hatalı gösteriyor. buton numarasını i değişkenine nasıl bağlamalıyım.
doğru yazım biçimi ne olmalı?
 
For i = 1 To 11
If CommandButton(i).Visible = False Then
Commanbutton(i).Visible = True
CommandButton1.Visible = False
Next
End if
End Sub

Dener misiniz ?
 
For i = 1 To 11
If CommandButton(i).Visible = False Then
Commanbutton(i).Visible = True
CommandButton1.Visible = False
Next i
End if
End Sub
 
For i = 1 To 11
If CommandButton(i).Visible = False Then
Commanbutton(i).Visible = True
CommandButton1.Visible = False
Next i
End if
End Sub

compile error diyor.
Sub or Function not defined


hata.png
 
siz abaküs diyince ben direk 100 tane buton olduğunu varsaydım. çalışmanızın bir örneğini paylaşırsanız çözüm üretmek daha kolay olacaktır.
userform üzerindeki CommandButton nesnelerine erişmek için Controls() fonksiyonunu kullanın.
Kod:
For i = 1 To 3
Controls("CommandButton" & i).Visible = False
Next
 
Kod:
For i = 1 To 3
Controls("CommandButton" & i).Visible = False
Next
[/QUOTE]


Bu kod işimi gördü.
Çok teşekkür ederim.
 
Geri
Üst