• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Option Button ile kayıt sayfası belirleme

Katılım
15 Ağustos 2009
Mesajlar
127
Excel Vers. ve Dili
Office 2010 Tr
Merhaba arkadaşlar.. Sorunum şu hazırladığım userformda

-ad
-soyad
-tarih
şeklinde comboboxlar var. altta ise

-veri al butonu var. ve son olarak

-kaydet butonu var

veri alma kısmındaki çekboxları bağladım ve sayfaları userform isimlerine göre

İLK
ORTA
SON isimli sayfalara kaydettiriyiorum ancak ilk sayfadaki ad soyad tarih kısmını option seçenekleriyle hangiş sayfaya kayıt ediceğini tanımlayamadım.. yardımcı olursanız sevinirm
 

Ekli dosyalar

Merhaba,

Kod:
Private Sub CommandButton2_Click()
dim son,i as long
If OptionButton1 = False And OptionButton2 = False And OptionButton3 = False Then Exit Sub
son = Range("A65536").End(xlUp).Row + 1
For i = 1 To 3
Cells(son, i).Value = Controls("combobox" & i).Text
Next
End Sub
Private Sub OptionButton1_Click()
If OptionButton1 = True Then Sheets("İLK").Select
End Sub
Private Sub OptionButton2_Click()
If OptionButton2 = True Then Sheets("ORTA").Select
End Sub
Private Sub OptionButton3_Click()
If OptionButton3 = True Then Sheets("SON").Select
End Sub

olarak kullanabilirsiniz.
 
İkinci altarnatif ise;

Kod:
Private Sub CommandButton2_Click()
Dim i As Integer
Dim son As Long
Dim syf As Worksheet
If OptionButton1 = False And OptionButton2 = False And OptionButton3 = False Then Exit Sub
If OptionButton1 = True Then Set syf = Sheets("İLK")
If OptionButton2 = True Then Set syf = Sheets("ORTA")
If OptionButton3 = True Then Set syf = Sheets("SON")
son = syf.Range("A65536").End(xlUp).Row + 1
For i = 1 To 3
syf.Cells(son, i).Value = Controls("combobox" & i).Text
Next
End Sub
 
çok çok teşekkür ederim.. peki mesela İLK sayfasından veri almışsa ve option butonlarından ORTA yı tıklamışsa bunu kaydetmesini nasıl engelleris?

Olaki karışıklık oldu yanlış option u tıkladı bunu engelleyebilirmiyiz?
 
İkinci altarnatif ise;

Kod:
Private Sub CommandButton2_Click()
Dim i As Integer
Dim son As Long
Dim syf As Worksheet
If OptionButton1 = False And OptionButton2 = False And OptionButton3 = False Then Exit Sub
If OptionButton1 = True Then Set syf = Sheets("İLK")
If OptionButton2 = True Then Set syf = Sheets("ORTA")
If OptionButton3 = True Then Set syf = Sheets("SON")
son = syf.Range("A65536").End(xlUp).Row + 1
For i = 1 To 3
syf.Cells(son, i).Value = Controls("combobox" & i).Text
Next
End Sub


Çalışıyor ancak ad soyad ve tarih deki verileri almıyor kayda
 
Şimdi çalışmanızı inceliyorum sayfadan optionbuttonlara göre veri almak istiyorsunuz.bunu anladım ancak veri al butonuyla userform4'e yönlendiriyorsunuz bunu anlayamadım.şunu şöyle yapsak son,ilk,orta sayfalarında veriler var sanırsam.bunları listbox ile listelesek listeden seçtiğimize müdahele edip değiştirsek hepsini 1 formla halletsek.bu arada yanlış mantık yürütüyor olabilirim.En iyisi siz açıklamlı bir örnek ekleyin (tam olarak yapmak istediğiniz) onun üzerine çalışalım.
 
evet ben en iyisi asıl çalışmamı göndereyim onun üzerinden konuşalım daha iyi anlayacaksınız.. yalnız şimdi işten çıkıcam ewe gider gitmez bu sayfadan göndericem bu gece bu sorunu halletmem lazım :( umarım burda olursunuz görüşmek üzere
 
Çalışmam

Çalışmamı ekte yolladım.. Biras karmaşık bi yapısı var ama gerekli olan bilgileri söleyim..

Öncelikle "Ana" sayfasındaki 6 adet butondan Genel Kimya2 olanı benim çalışmam. Açılış şifresi sistem saati örneğin 20:40 gibi

Girişten sonra karşımıza gelen ad soyad , vadiya, tarih, saat (tarih ve saati otomatik kaydettirmeyi yapmak istiyorum onuda yapamadım) gibi comboboxlar var buradaki verileri kaydet butonu ile "700" sayfasına kayıt alıyorum.

Bu verileri girdikten sonra "Numune Saatleri" butonuna basıyoruz ve oradaki 07:00, 11:00, 15:00 vs. kısımlarından checkboxlar ile kayıt alıyorum. Her bölüm kendi sayfasına "700,1100,1500,1900,2300,300,RUTİN OLMAYAN" sayfarlıan kayıt alıyor. buralarda hiç bir problemim yok

Tek sorun ad soyad, vardiya vs.. kısmındaki verileri sadece "700" sayfasına kaydetmesi. Bunu aşmak içinde optionbutton kullanmak istiyorum. Yani 07:00 optionuna basınca ad,soyad,vardiya vs. verilerini "700" sayfasına, 11:00 optionuna basınca "1100" sayfasına kaydetsin (ilgili yerlerine) istiyorum.

Umarım bi çözüm üretebiliriz :(
 

Ekli dosyalar

Selamlar,

Kayıt işlemi için kullandığınız kodu aşağıdaki şekilde değiştirip denermisiniz.

Kod:
Private Sub CommandButton1_Click()
    Dim Kayıt_Sayfası As Worksheet, Nesne As Object, Bos_Satir As Long
 
    If ComboBox7.Value = "" Then
    MsgBox ("Lütfen Ad Soyad Bilgisini Giriniz!")
    Exit Sub
    Else
    End If
 
    If ComboBox1.Value = "" Then
    MsgBox ("Lütfen Vardiyanızı Seçin!")
    Exit Sub
    Else
    End If
 
    If ComboBox3.Value = "" Then
    MsgBox ("Lütfen Tarih Giriniz!")
    Exit Sub
    Else
    End If
 
    If OptionButton3 = False And OptionButton4 = False And OptionButton5 = False And OptionButton6 = False And OptionButton7 = False And OptionButton8 = False Then
    MsgBox "Kayıt işlemi için sayfa seçimi yapmanız gerekiyor. Lütfen sayfa seçiniz !", vbCritical, "Dikkat !"
    Exit Sub
    End If
 
    If OptionButton3 = True Then
    Set Kayıt_Sayfası = Sheets("700")
    ElseIf OptionButton4 = True Then
    Set Kayıt_Sayfası = Sheets("1100")
    ElseIf OptionButton5 = True Then
    Set Kayıt_Sayfası = Sheets("1500")
    ElseIf OptionButton6 = True Then
    Set Kayıt_Sayfası = Sheets("1900")
    ElseIf OptionButton7 = True Then
    Set Kayıt_Sayfası = Sheets("2300")
    ElseIf OptionButton8 = True Then
    Set Kayıt_Sayfası = Sheets("300")
    End If
 
        With Kayıt_Sayfası
 
         Bos_Satir = .Range("A65536").End(xlUp).Row + 1
        .Range("A" & Bos_Satir).Value = Application.WorksheetFunction.Max(.Range("A:A")) + 1
        .Range("A" & Bos_Satir).Value = ComboBox7
        .Range("B" & Bos_Satir).Value = ComboBox1
        .Range("C" & Bos_Satir).Value = CDate(ComboBox3)
        .Range("D" & Bos_Satir).Value = TimeSerial(ComboBox5, ComboBox6, 0)
 
        End With
 
    For Each Nesne In Me.Controls
        If TypeName(Nesne) = "TextBox" Or TypeName(Nesne) = "ComboBox" Then
            Nesne.Value = Empty
        End If
    Next
 
    Set Kayıt_Sayfası = Nothing
 
    MsgBox "Kayıt işlemi tamamlanmıştır.", vbInformation
End Sub
 
Hocam dün aceleyle yazmayı unuttum.. ellerine sağlık çok güzel oldu hatta harika ve tam istediğim gibi birşey oldu :D
 
Geri
Üst