[]
excel-vba--indeks mevzusu
Selamlar,
Excel'de bir form var. Soruların önünde kutucuklar yaptık label ile. Bu kutucuğa tıklandığında background color siyah oluyor, tekrar tıklanırsa beyaza dönüyor. Yani basit bir form sayfası yapmaya çalışıyoruz.
Label tek olunca sorun yok ama 30-40 tane label var ve galiba vba'da nesnelerde indeks olmadığı için label1 için yazılı kodu tüm label'lar için tekrar etmek gerekiyor. Indeks olsaydı tekbir kod ile tüm label nesnelerini kontrol edebilecektik (visual basic'te olduğu gibi)
Sorum bunun kolay bir yolu olup olmadığı?
Checkbox kullan diyecekler için checkbox istemiyoruz. Tikli bir şey yerine siyah renkle dolmasını istiyoruz kutucuğun ve checkbox'da bunu yapmanın yolunu bulamadım.
Teşekkürler.
Excel'de bir form var. Soruların önünde kutucuklar yaptık label ile. Bu kutucuğa tıklandığında background color siyah oluyor, tekrar tıklanırsa beyaza dönüyor. Yani basit bir form sayfası yapmaya çalışıyoruz.
Label tek olunca sorun yok ama 30-40 tane label var ve galiba vba'da nesnelerde indeks olmadığı için label1 için yazılı kodu tüm label'lar için tekrar etmek gerekiyor. Indeks olsaydı tekbir kod ile tüm label nesnelerini kontrol edebilecektik (visual basic'te olduğu gibi)
Sorum bunun kolay bir yolu olup olmadığı?
Checkbox kullan diyecekler için checkbox istemiyoruz. Tikli bir şey yerine siyah renkle dolmasını istiyoruz kutucuğun ve checkbox'da bunu yapmanın yolunu bulamadım.
Teşekkürler.
Class module kullanarak yapabilirsin.
- cakabo (10.10.13 09:43:26)
for
next
?
next
?
- cirkinkizyokturazvotkavardir (10.10.13 09:48:36)
@cakabo selam.
Class module ile ilgili hiçbir bilgim yok. Class module ile aşağıdaki kodu örneğin iki label için nasıl yapabileceğimi gösterebilir misin? eğer çok vakit almayacaksa.
Kod açıklaması: kutucuk arka plan rengi beyazsa siyah; siyahsa beyaz yapıyor sadece.
Dim sayac As Integer
Private Sub Label1_Click()
If sayac = 0 Then
Label1.BackColor = vbBlack
sayac = 1
Exit Sub
End If
If sayac = 1 Then
Label1.BackColor = vbWhite
sayac = 0
Exit Sub
End If
End Sub
@cirkin; bu şekilde for next olmuyor, index olsaydı for next yapacaktım zaten; label1_click() rutininde çalışıyorum. bunu da döngü içerisine aktaramıyorum.
Class module ile ilgili hiçbir bilgim yok. Class module ile aşağıdaki kodu örneğin iki label için nasıl yapabileceğimi gösterebilir misin? eğer çok vakit almayacaksa.
Kod açıklaması: kutucuk arka plan rengi beyazsa siyah; siyahsa beyaz yapıyor sadece.
Dim sayac As Integer
Private Sub Label1_Click()
If sayac = 0 Then
Label1.BackColor = vbBlack
sayac = 1
Exit Sub
End If
If sayac = 1 Then
Label1.BackColor = vbWhite
sayac = 0
Exit Sub
End If
End Sub
@cirkin; bu şekilde for next olmuyor, index olsaydı for next yapacaktım zaten; label1_click() rutininde çalışıyorum. bunu da döngü içerisine aktaramıyorum.
- puc (10.10.13 10:15:35)
myForm.controls("nameOfControl" & cstr(i)).backgrouncolor = rgb(0,0,0)
olay bu kadar basit.
olay bu kadar basit.
- tolga bey (08.01.14 07:54:00)
1