Birden Fazla Combobox Seçimi

Katılım
25 Aralık 2005
Mesajlar
104
Arkadaslar uzun zamandır cevap bekliyorum ama sanırım forumu aramadığım düşünüldüğü için cevap alamadım bu yüzden ben örnek çalışmamı getirdiğim yere kadar size sunuyorum ve soruma cevap arıyorum ;

Ana sayfada bir giriş butonu var buna basıldığında userform geliyor ;

ilk userformda ilk combobox sayfalar arası seçimi sağlıyor ;

şimdi ilk sorum

ikinci combobox ilk combobox ın seçtiği sayfadan nasıl liste çeker

ve diğerleride bir üstündeki combo boxı izler;

yani amacım bir nevi user menü aracılığıyla sütun satı bazında seçimler yapılarak en sonunda bütün bu seçimlere denk gelen hücreye comboboxtan girilen değeri kaydetmek

bu arada ikinci user menu ile ilki arasında geçişi sağlayamadım unload yaptığımda hata veriyor yapmazsam açık kalıyor
 
Katılım
25 Aralık 2005
Mesajlar
104
ikinci user menunun açık kalma olayını unload yerine hide komutunu kullandım işe yaradı ama hala ilk soruma cevap arıyorum dosyanın son halini tekrar yukledim
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Combobox'ların yönetimi için, aşağıdaki kodlama yapıldı. Formunuza geçici bir CommandButton koydum (CommandButton) ... Bu butonuna yazılan Click olay kodunu çalıştırınız ve inceleyiniz. Seçtiğiniz ComboBox parametrelerine göre, hangi hücrenin referanslandığı gösterilmektedir.

Formlar arası geçişte, Load ve Unload olaylarının sırası ve kullanımı yanlış ... Bunları, Hide komutu ile 'de yapabilirsiniz. Örneği, inceleyiniz.

Kod:
Dim sh As Worksheet
'----------------------------
Private Sub ComboBox1_Change()
    Dim col As New Collection
 
    Set sh = Sheets(ComboBox1.Value)
 
    ComboBox3.Clear: ComboBox4.Clear: ComboBox5.Clear
 
    If ComboBox1.ListIndex >= 0 Then
 
        With sh
            For j = 4 To .Cells(2, 256).End(xlToLeft).Column Step 5
                ComboBox3.AddItem .Cells(2, j)
            Next j
            ComboBox3.ListIndex = -1
 
            For i = 4 To .Cells(65536, 2).End(xlUp).Row
                ComboBox5.AddItem .Cells(i, 2)
            Next i
            ComboBox5.ListIndex = -1
 
            On Error Resume Next
            For j = 4 To .Cells(3, 256).End(xlToLeft).Column
                col.Add CStr(.Cells(3, j)), CStr(.Cells(3, j))
                If Err > 0 Then
                    Err = 0
                Else
                    ComboBox4.AddItem .Cells(3, j)
                End If
            Next j
            On Error GoTo 0
            ComboBox4.ListIndex = -1
        End With
 
 
    End If
End Sub
'-----------------------------
Private Sub CommandButton3_Click()
    Dim rngGunler As Range
    Dim rngGun As Range
    Dim rngUrunler As Range
    Dim rngUrun As Range
    Dim hcr As Range
    Dim sutun As Integer
    Dim satir As Integer
 
    If ComboBox1.ListIndex < 0 Then: Exit Sub
    If ComboBox3.ListIndex < 0 Then: Exit Sub
    If ComboBox4.ListIndex < 0 Then: Exit Sub
    If ComboBox5.ListIndex < 0 Then: Exit Sub
 
    With sh
 
        Set rngGunler = .Range(.Cells(2, 4), .Cells(2, .Cells(2, 256).End(xlToLeft).Column))
        Set rngGun = rngGunler.Find(ComboBox3, Lookat:=xlWhole)
 
        If Not rngGun Is Nothing Then
 
            If rngGun.MergeCells Then
 
 
                Set rngGun = rngGun.MergeArea
                Set rngGun = .Range(.Cells(3, rngGun.Column), .Cells(3, rngGun.Column + rngGun.Columns.Count - 1))
 
                For Each hcr In rngGun
                    If hcr = ComboBox4 Then
                        sutun = hcr.Column
                        Exit For
                    End If
                Next
            End If
        End If
 
        Set rngUrunler = .Range(.Cells(4, 2), .Cells(.Cells(65536, 2).End(xlUp).Row, 2))
        Set rngUrun = rngUrunler.Find(ComboBox5, Lookat:=xlWhole)
 
        If Not rngUrun Is Nothing Then
            satir = rngUrun.Row
        End If
        MsgBox "Parametrelere Denk Gelen H&#252;cre : " & .Name & " sayfas&#305;ndaki " & .Cells(satir, sutun).Address
 
    End With
    Set rngGunler = Nothing
    Set rngGun = Nothing
    Set rngUrunler = Nothing
    Set rngUrun = Nothing
 
End Sub
'--------------------------
Private Sub UserForm_Terminate()
    Set sh = Nothing
End Sub
 
Katılım
25 Aralık 2005
Mesajlar
104
Hocam TeŞekkÜrler

Hocam teşekkürler incelicem hemen saolun kodları ben kurcalamaya devam ediyim en önemli problemimi çözdünüz
 
Katılım
25 Aralık 2005
Mesajlar
104
Ferhat hocam inceledim teşekkürler

Ferhat hocam orneğinzi inceledim ve incemeyede devam ediyorum baya yardımcı oldu ama kodlarda acemi olduğum için ara kodlarda yine desteğinizi talep edicem mumkunse

ben combo sayısını 7 ye çıkardım ;

ilk sorum şu comboların içerdiği aralık bir üst seçimdeki comboya göre nasıl daralır yani

örneğimde combo1 de sayfa seçince diğer combolarda o sayfadaki tum ilgili veriler toplanıyor oysa benim yapmaya çalıştığım

combo1 sayfayı seçti

combo 2 gün seçti

combo 3 sıra no seçti (bu seçim yapılırsa combo 4-5 seçimi otomatik gelmeli çünkü direkt sırayı veriyorsunuz zaten ona karşılık gelen değerler belli ama girilmezse boş kalmalı )

combo3 boş geçilirse ;

combo 4 tip seçti ( aynı tip urunlerin listede tekrarlanmamasını başarmadım tum liste çıkıyor oysa bazı sayfalada tek bazı sayflarda ise sadece 4-5 tip urun var ama tekrar yapıyor tamamını veriyor)


combo 5 ürün seçti ama sadece combo 4 te seçilen tipteki ürünler yerine tum urun listesi çıkıyor oysa combo 4 teki tipe ait ürünleri içermeli sadece yani seçim daralmalı


ve combo 6 bir satıcı girdik


şimdi sizin command button direkt hangi hucre değerini belirtiyor

benim amacım combo2 de seçilen notun veri sayfasında b2 den itibaren başlayan sayısal değerini textbox 1 e yazdırıp kayıt butonu ile bu notu tum bu seçimlere denk gelen hucreye yani sizin butonun verdiği hucreye bu text box değerini yazdırmak

şimdiden çok saolun
 
Katılım
25 Aralık 2005
Mesajlar
104
Ferhat hocam saolun

Ferhat hocam adres defteri projenizden yararanıp mukerrer kayıt olayıyla ilgili bir çalışma ekledim çalışmama ama hala yukardaki sorunları çözemedim birde


orneğin textbocla giriş yaptık ve veri sayfasına veri aktardık

bu veri sayfasından veri çeken combonun kayıt sonrası listesini menuyu kapatıp açmadan refresh eden comut dizinini öğreneblirmiyim

bu komutu kayıt tusuna atarsam belki textboxdaki veriyi veri sayfasına atarken diğer yandanda comboxin içeriğini günceller
 
Katılım
25 Aralık 2005
Mesajlar
104
Yardımınızı bekliyorum

Tüm değerli hocalarımdan derdime bir derman bekiyorum ,ferhat hocamın kodlarını kurcalarken iyice arap saçına döndüm lütfen bir yardım edin
 
Katılım
25 Aralık 2005
Mesajlar
104
bu konuya ilişkin dosya tekrar eklenmiştir

bu konuya ilişkin dosya tekrar eklenmiştir
 

Ekli dosyalar

Üst