Class Modüle Hakkında

ahmed_ummu

Altın Üye
Katılım
28 Mart 2011
Mesajlar
731
Excel Vers. ve Dili
Excel 2010 Professional Plus 64 Bit
Altın Üyelik Bitiş Tarihi
15-10-2026
Merhaba arkadaşlar

Aşağıdaki class modüle içine yazılmış kodda, userform18 içindeki textbox1, textbox2, ..., ..., ... textbox31 de işlem yapıyor. Userform18 içinde başka textboxlarda var ve o textboxlarda işlem yapmıyor. Herhangi bir yerde textbox1 ile textbox31 içinde çalışacağı belirtilmemiş. Rica etsem açıklık getirebilir misiniz.

Option Explicit
Public WithEvents TextGroup As MSForms.TextBox
-----------------------------------------------------------------------------------------
Private Sub TextGroup_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
With UserForm18.Frame2
.Visible = True
.Left = TextGroup.Left - 67
.Top = TextGroup.Top - .Height
.Tag = TextGroup.Name
TextGroup.BackColor = vbRed
End With
End Sub
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,245
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Userform_Initialize olayında belirtilmiş olabilir.
 

ahmed_ummu

Altın Üye
Katılım
28 Mart 2011
Mesajlar
731
Excel Vers. ve Dili
Excel 2010 Professional Plus 64 Bit
Altın Üyelik Bitiş Tarihi
15-10-2026
Userform_Initialize olayında belirtilmiş olabilir.
Evet orada belirtmiş. Teşekkürler.

Aynı işlevi labellerde de yapmak istiyorum. Rica etsem aşağıdaki kodlar içinde yardım edebilir misiniz.



Public WithEvents lblGroup As MSForms.Label
-----------------------------------------------------------------------
Private Sub lblGroup_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
With UserForm18.Frame2
.Tag = lblGroup.Name
lblGroup.BackColor = vbRed
End With
End Sub


Yukarıdaki Class Modüldeki tanımlama da bir hata vermiyor ama aşağıdaki İnitialize de döngüde kırmızı olan kodda hata veriyor.


Private Sub UserForm_Initialize()
Dim intlbl As Integer
For intlbl = 1 To 4
Set label(intTextBox).lblGroup = Controls("label" & intlbl)
Next intlbl

End sub


Textboxlar için initialize de ki kodlar aşağıdaki gibi. Textboxlar için "textBoxes" kodu var. Labeller için bu kodun yerine ne yazmalıyım.

Dim intTextBox As Integer
For intTextBox = 1 To 31
Set textBoxes(intTextBox).TextGroup = Controls("TextBox" & intTextBox)
Next intTextBox
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,245
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Örnek dosya paylaşabilirmisiniz
 

ahmed_ummu

Altın Üye
Katılım
28 Mart 2011
Mesajlar
731
Excel Vers. ve Dili
Excel 2010 Professional Plus 64 Bit
Altın Üyelik Bitiş Tarihi
15-10-2026
Örnek dosya paylaşabilirmisiniz
Korhan bey dosyam çok büyük 38 adet form var. Biraz da acemi işi oldu, karışık biraz. Sadece kafanızı karıştırmak istemiyorum. Aynı işlevi labeller de tek tek yapmıştım. Class modül de aynı anda yapmak istemiştim. Bi de Class müdüle nin mantığını da öğrenmek için yapacaktım. Kendi dosyamı göndermiyorum ama örnek bir form hazırladım . Mouse hangi label in üzerine gelirse zemin rengi bir ton daha koyu gri olup, mouse başka bir label in üzerine gelirse bir önceki label eski zemin rengini alıp, Mousenin üzerine geldiği diğer label in zemin rengi bir ton gri olacak. Yine initialize yordamındaki kırmızı renkli label kodunda "sub or function not defined" hatası veriyor. İnşallah anlatabilmişimdir.

Private Sub UserForm_Initialize()
Dim intlbl As Integer
For intlbl = 1 To 8
Set Label(intlbl).lblGroup = Controls("label" & intlbl)
Next intlbl
End Sub
 

Ekli dosyalar

Son düzenleme:
Üst