Userform Option butonlar üzerinde sırayla seçim..

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,049
Excel Vers. ve Dili
Office 2013 İngilizce
Merhaba,
Ekli Userform' da option butonlar bulunmakta; option butonları numaralara göre ileri ve geri olarak seçilmesi için aşağıdaki şekilde kod oluşturdum ama bunun daha pratik bir yöntemi olabilir mi?

teşekkürler,
iyi Çalışmalar.

Kod:
Private Sub btnIleri_Click()
Dim c As Control
Dim t As Byte

For Each c In Me.Controls
    If TypeName(c) = "OptionButton" Then
        If c.Value = True Then
            t = c.Tag
            Exit For
        End If
    End If
Next

Me.Controls("Opt" & t + 1) = True

End Sub
 

Ekli dosyalar

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Merhaba.
Formun kodlarını silin yerine aşağıdakileri kopyalayın.
Kod:
Private Sub btnGeri_Click()
    OptSec False
End Sub

Private Sub btnIleri_Click()
    OptSec True
End Sub

Sub OptSec(ileri As Boolean)
    Dim Opt As Control
    Dim Bak As Byte
    
    For Each Opt In Me.Controls
        If TypeName(Opt) = "OptionButton" Then
            If Opt.Value = True Then
                Bak = Opt.Tag
                Exit For
            End If
        End If
    Next
    If ileri Then
        If Bak = 7 Then Bak = 0
        Me.Controls("Opt" & Bak + 1) = True
    Else
        If Bak = 1 Then Bak = 8
        Me.Controls("Opt" & Bak - 1) = True
    End If
End Sub

Private Sub UserForm_Initialize()
    Me.Opt1.Value = True
End Sub
 

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,049
Excel Vers. ve Dili
Office 2013 İngilizce
Merhaba.
Formun kodlarını silin yerine aşağıdakileri kopyalayın.
Kod:
Private Sub btnGeri_Click()
    OptSec False
End Sub

Private Sub btnIleri_Click()
    OptSec True
End Sub

Sub OptSec(ileri As Boolean)
    Dim Opt As Control
    Dim Bak As Byte
   
    For Each Opt In Me.Controls
        If TypeName(Opt) = "OptionButton" Then
            If Opt.Value = True Then
                Bak = Opt.Tag
                Exit For
            End If
        End If
    Next
    If ileri Then
        If Bak = 7 Then Bak = 0
        Me.Controls("Opt" & Bak + 1) = True
    Else
        If Bak = 1 Then Bak = 8
        Me.Controls("Opt" & Bak - 1) = True
    End If
End Sub

Private Sub UserForm_Initialize()
    Me.Opt1.Value = True
End Sub
Çok teşekkürler Hocam
 
Üst