Userfom' u değişken olarak tanımlama

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
2,965
Excel Vers. ve Dili
Office 2013 İngilizce
Merhaba
Bir Userformu "Userform1" değişken olarak tanımlayıp

set form= "Userform1" gibi.

bu konuda aşağıdaki kodu buldum, yalnız çalışmadı, nasıl bir yol önebilirsiniz?

teşekkürler, iyi pazarlar.

Kod:
Sub Test()
Dim strFormName As String
strFormName = "UserForm1"
    For i = 2 To 10
     
        Sht.Cells(2, i) = Form(strFormName).Controls("TextBox" & i)
  
    Next i

End Sub

Function Form(Name As String) As Object
  Set Form = CallByName(UserForms, "Add", VbMethod, Name)
End Function
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
5,828
Excel Vers. ve Dili
2019 Türkçe
Merhaba.

Kod:
Sub test()
    Dim frm As New UserForm1
    frm.Show
End Sub
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
5,828
Excel Vers. ve Dili
2019 Türkçe
Bunun için değişkene atarsanız olmaz.
Neden msgbox userform1.textbox1.text şeklinde kullanmak istemediğinizi açıklarsanız daha iyi bir önerimiz olabilir.

Eğer ille de değişkene atayacaksanız, formu da o değişken ile açmalısınız, sonra formdaki textboxa da o değişken üzerinden ulaşabilirsiniz.

Kod:
Dim frm As New UserForm1
Sub FormuAc()
    frm.Show
End Sub

SubTextBox_Oku()
msgbox frm.textbox1.text
end sub
 

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
2,965
Excel Vers. ve Dili
Office 2013 İngilizce
Bunun için değişkene atarsanız olmaz.
Neden msgbox userform1.textbox1.text şeklinde kullanmak istemediğinizi açıklarsanız daha iyi bir önerimiz olabilir.

Eğer ille de değişkene atayacaksanız, formu da o değişken ile açmalısınız, sonra formdaki textboxa da o değişken üzerinden ulaşabilirsiniz.

Kod:
Dim frm As New UserForm1
Sub FormuAc()
    frm.Show
End Sub

SubTextBox_Oku()
msgbox frm.textbox1.text
end sub
bu şekilde çözdüm

Kod:
Dim oneform As Object
For Each oneform In UserForms
If LCase(oneform.Name) = "userform1"
Set label_form = oneform
exit for
End If
Next
 
Üst