OptionButton seçimi ile, Sayfa açmak

1Al2Ver

Altın Üye
Katılım
5 Kasım 2007
Mesajlar
4,724
Excel Vers. ve Dili
64 Bit TR - Microsoft Office 365 - Win11 Home
Altın Üyelik Bitiş Tarihi
04-01-2026
Merhaba,

"Sayfa1", "3_4_5", "3_3_4",...... "1_3_3_4" isimli sayfalarım var,

Sayfa1'de, UserForm üzerinde 28 tane optionbutton var,

Optionbutton isimleri ile sayfa isimleri aynı,

Sayfa1'de UserForm'da tıkladığım optionbutton, ilgili sayfayı açsın istiyorum,

Özetle ;

Eğer optionbutton1 ( 3_4_5 ) ise 3_4_5 isimli sayfayı aç,

Eğer optionbutton2 ( 3_3_4 ) ise 3_3_4 isimli sayfayı aç,

...................................

Eğer optionbutton28 (1_3_3_4 ) ise 1_3_3_4 isimli sayfayı aç, şeklinde devam eden kodu rica ediyorum,

Dosyayı, üzerinde halen çalışıldığından ekleyemedim, teşekkür ederim.
 
Son düzenleme:
S

Skorpiyon

Misafir
Sayın 1Al2Ver,

Zaten kodu kendiniz yazmışsınız.

If OptionButton1 = True Then Sheets("Sayfa1").Select
if OptionButton2 = True Then Sheets("3_4_5").Select
if optionbutton3 = True Then Sheets("3_3_4").Select
if optionbutton4 = ...........................
.....
.....
.....


Kodu kendinize uyarlayın.
 
Son düzenleme:

1Al2Ver

Altın Üye
Katılım
5 Kasım 2007
Mesajlar
4,724
Excel Vers. ve Dili
64 Bit TR - Microsoft Office 365 - Win11 Home
Altın Üyelik Bitiş Tarihi
04-01-2026
Sayın 1Al2Ver,

Zaten kodu kendiniz yazmışsınız.

If OptionButton1 = True Then Sheets("Sayfa1").Select
if OptionButton2 = True Then Sheets("3_4_5").Select
if optionbutton3 = True Then Sheets("3_3_4").Select
if optionbutton4 = ...........................
.....
.....
.....


Kodu kendinize uyarlayın.
Sayın Şaban Sertkaya merhaba,

Teşekkür ederim, bir iki cevaba daha ihtiyacım var,

1) OptionButton1 = True Then Sheets("Sayfa1").Select'den önce yazılması gereken bir kod satırı var mı ?

2) İf'ler arasına end if girecek mi ?

If OptionButton1 = True Then Sheets("Sayfa1").Select
End İf
if OptionButton2 = True Then Sheets("3_4_5").Select
End if
if optionbutton3 = True Then Sheets("3_3_4").Select
End if

Yoksa en son if'ten sonra if'leri bitirip end sub mı yazacağım ?

Tekrar teşekkürler,
 
S

Skorpiyon

Misafir
Sayın 1Al2Ver,

Kodun tam yazımı,

If OptionButton1 = True Then Sheets("Sayfa1").Select
If OptionButton2 = True Then Sheets("3_4_5").Select
If OptionButton3 = True Then Sheets("3_3_4").Select
....
....
.... şeklinde 28 option button için kodlarınızı düzenleyiniz.


YALNIZ;
Eğer siz optionbutton'u seçtiğim anda kod çalışsın diyorsanız bu işlem işe yaramaz. Benim verdiğim bu kodlar bir buton altına yazılmalı.

Örneğin ;
CommandButton1 diye bir butonunuz var. Kodlar bu buton altında olmalı ki, Optionbuttonlardan birini seçtikten sonra bu butona tıkladığınızda bu kodlar çalışsın.

Yok ben öyle istemiyorum, optionbuttonlardan birini seçtiğim anda kod çalışsın ve ilgili sayfaya gitsin diyorsanız, kodlarınızı Optionbuttonların Click Olayına ve TEK TEK yazmalısınız.

Örneğin;
Private Sub OptionButton1_Click() '1.Optionbutton
Sheets("Sayfa1").Select
End Sub

Private Sub OptionButton2_Click() '2.Optionbutton
Sheets("3_4_5").Select
End Sub

Private Sub OptionButton3_Click() '3.Optionbutton
Sheets("3_3_4").Select
End Sub


gibi.
 
S

Skorpiyon

Misafir
Ve 1 not,

If ile başlayan bir sorgu Then deyiminden sonra devam ediyorsa END IF kullanılmaz.

Örnek ;

if a = 1 then Range("C1") = 1 'END IF KULLANILMAZ

Örnek ;

if a = 1 then
Range("C1") = 1
End if

gibi...
 

1Al2Ver

Altın Üye
Katılım
5 Kasım 2007
Mesajlar
4,724
Excel Vers. ve Dili
64 Bit TR - Microsoft Office 365 - Win11 Home
Altın Üyelik Bitiş Tarihi
04-01-2026
Sayın 1Al2Ver,

Örneğin;
Private Sub OptionButton1_Click() '1.Optionbutton
Sheets("Sayfa1").Select
End Sub
Sayın Şaban Sertkaya, tekrar merhaba,

Öncelikle çözüm va açıklamalar için çok teşekkür ederim,

Ben click olayını tercih ettim,

Son bir ricam olacak,

Sayfa1'deki UserForm'dan optionbutton ile seçim yapıldığında seçilen sayfaya gidiyorum, ancak optionbutton'ların olduğu userform da açılan sayfaya geliyor, bunu önlemek için aşağıdaki kod'a yapılacak ilave nedir ?

Private Sub OptionButton1_Click() '1.Optionbutton
Sheets("Sayfa1").Select
End Sub

Teşekkür ederim,
 
S

Skorpiyon

Misafir
Sayın 1Al2Ver,

Userformunuzu gizleyin.

Private Sub OptionButton1_Click() '1.Optionbutton
Sheets("Sayfa1").Select
Userform1.Hide
End Sub

Yalnız formu tekrar görebilmek için ilgili sayfaya 1 buton koymalısınız.
O butonun kodu da,
Userform1.Show olmalı tabi ki.
 

1Al2Ver

Altın Üye
Katılım
5 Kasım 2007
Mesajlar
4,724
Excel Vers. ve Dili
64 Bit TR - Microsoft Office 365 - Win11 Home
Altın Üyelik Bitiş Tarihi
04-01-2026
Sayın Şaban Sertkaya,

Çözümler için bir kez daha teşekkürler, bu saatte zaman ayırdınız sağolun, ben de sizin gibi bazen projeye takılı kalıyorum, sabah ediyorum, ama artık sorunum çözüldüğüne göre rahat uyuyabilirim, artık arkası yarın....,

Size de hayırlı sabahlar diliyorum, sağlıcakla kalın,

Saygılarımla.
 
S

Skorpiyon

Misafir
Hayırlı geceler Sayın 1Al2Ver,

Yardımcı olabildiysem ne mutlu.

Şu an web'te dolanıyorum biraz. Bu gecelikde böyle. :)
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,248
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Alternatif:
Sayın 1 al2ver;
Bu gibi işler için classModüle biçilmiş kaftandır.
5-6 satır ile bir sürü kod yazma sıkıntısından kurtulursunuz.
Aşağıdaki örnek dosyayı inceleyiniz.ClassModüle ile yapıldı.:cool:
Bir tane yeni bir ClassModüle ekleyiniz ve ona aşağıdaki kodları yapıştırınız
Kod:
Public WithEvents optionbtn As MSForms.OptionButton
Private Sub optionbtn_Click()
Sheets(optionbtn.Caption).Select
End Sub
Userformun General kısmına aşağıdaki kodu yapıştırınız.
Kod:
Dim optionbtn() As New Class1
Userformun initialize olayınada aşağıdaki kodu yapıştırınız.İşlem tamadır.:cool:
Kod:
Private Sub UserForm_Initialize()
Dim opt As Control, a As Integer
For Each opt In Me.Controls
    If TypeName(opt) = "OptionButton" Then
        a = a + 1
        ReDim Preserve optionbtn(a)
        Set optionbtn(a).optionbtn = opt
    End If
Next
End Sub
 

Ekli dosyalar

1Al2Ver

Altın Üye
Katılım
5 Kasım 2007
Mesajlar
4,724
Excel Vers. ve Dili
64 Bit TR - Microsoft Office 365 - Win11 Home
Altın Üyelik Bitiş Tarihi
04-01-2026
Alternatif:
Sayın 1 al2ver;
Bu gibi işler için classModüle biçilmiş kaftandır.
5-6 satır ile bir sürü kod yazma sıkıntısından kurtulursunuz.
Aşağıdaki örnek dosyayı inceleyiniz.ClassModüle ile yapıldı.:cool:
Bir tane yeni bir ClassModüle ekleyiniz ve ona aşağıdaki kodları yapıştırınız
Kod:
Public WithEvents optionbtn As MSForms.OptionButton
Private Sub optionbtn_Click()
Sheets(optionbtn.Caption).Select
End Sub
Userformun General kısmına aşağıdaki kodu yapıştırınız.
Kod:
Dim optionbtn() As New Class1
Userformun initialize olayınada aşağıdaki kodu yapıştırınız.İşlem tamadır.:cool:
Kod:
Private Sub UserForm_Initialize()
Dim opt As Control, a As Integer
For Each opt In Me.Controls
    If TypeName(opt) = "OptionButton" Then
        a = a + 1
        ReDim Preserve optionbtn(a)
        Set optionbtn(a).optionbtn = opt
    End If
Next
End Sub
Sayın Evren Gizlen, merhaba,

Bu çözüm ve süper bir açıklama ile sorunu çözülmüş bir dosya ya önem verip beni daha kısa ve etken bir yola yönlendirdiniz, uzun uzun kod yazmak zahmetinden kurtardınız, ayrıca kod öğrenmeye yeni başlayan bana da bir ufuk açtınız,

Size ne kadar teşekkür etsem azdır, emekleriniz için sağolun varolun,

Saygılarımla.
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,248
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Sayın Evren Gizlen, merhaba,

Bu çözüm ve süper bir açıklama ile sorunu çözülmüş bir dosya ya önem verip beni daha kısa ve etken bir yola yönlendirdiniz, uzun uzun kod yazmak zahmetinden kurtardınız, ayrıca kod öğrenmeye yeni başlayan bana da bir ufuk açtınız,

Size ne kadar teşekkür etsem azdır, emekleriniz için sağolun varolun,

Saygılarımla.
Rica ederim.
İyi çalışmalar.:cool:
 
Üst