Me.Controls Sorunu

ragnorak

Altın Üye
Katılım
4 Haziran 2016
Mesajlar
204
Excel Vers. ve Dili
Excel 2021
Altın Üyelik Bitiş Tarihi
03-09-2026
Kod:
Public Function FORM_YAZI_BUYUK()
Dim ctrl As Object
For Each ctrl In Me.Controls
If TypeName(ctrl) = "OptionButton" Then
ctrl.Caption = UCase(Replace(Replace(ctrl.Caption, "ı", "I"), "i", "İ"))
End If
If TypeName(ctrl) = "Label" Then
ctrl.Caption = UCase(Replace(Replace(ctrl.Caption, "ı", "I"), "i", "İ"))
End If
If TypeName(ctrl) = "CheckBox" Then
ctrl.Caption = UCase(Replace(Replace(ctrl.Caption, "ı", "I"), "i", "İ"))
End If
Next
End Function
Module'de bulunan bu kod'da "me.controls " hata ("invalid use of me keyword") veriyor. Userformun ismini yazdığımda çalışıyor. 20 adet userform için tek tek mi yazmalıyım?
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,389
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
Fonksiyonunuzu biraz geliştirerek daha esnek kullanabiliriz... Yani hali aşağıdadır:

PHP:
Sub FORM_YAZI_BUYUK(ByVal argForm As UserForm)
    Dim ctrl As Object
   
    For Each ctrl In argForm.Controls
        Select Case TypeName(ctrl)
            Case "OptionButton", "Label", "CheckBox"
                ctrl.Caption = UCase(Replace(Replace(ctrl.Caption, "ı", "I"), "i", "İ"))
        End Select
    Next
End Sub
Herhangi bir UserForm içinden aşağıdaki gibi çağırabiliyoruz:

PHP:
Private Sub CommandButton1_Click()
    Call Module1.FORM_YAZI_BUYUK(Me)
End Sub
Kolay gelsin...

.
 

ragnorak

Altın Üye
Katılım
4 Haziran 2016
Mesajlar
204
Excel Vers. ve Dili
Excel 2021
Altın Üyelik Bitiş Tarihi
03-09-2026
Hocam eline sağlık. Çok ama çok teşekkür ederim. Bununla birlikte birçok sorunumu da halletmiş oldun. (y)(y)(y)
 
Üst