2'li ilişkisel combo

Katılım
20 Temmuz 2008
Mesajlar
38
Excel Vers. ve Dili
2007
Hocam , Data Sheet'inin Altında Tüm Bölgeler in altındaki 8 bölge ve onun içerisinde çalışanlar var.
Mümkünse, yapılacak olan 2'li combo'dan Tüm bölgeleri seçtikten sonra altta bölgeye göre çalışanın çıkmasıdır.
Bununla beraber eğer 1. combo'da seçim yapmaksızın 2. combodan çalışan secilirse buına bağlı olarak
tüm bölgeler combosunun uygun bölgeye göre değişmesidir.Ayrıca seçilen combodaki ismin k3 ve k4 hücrelerinde gözükmesidir.
Şimdiden çok teşekkürler.
 

Ekli dosyalar

Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Ekteki örnek dosyayı inceleyiniz. Forms nesneleri yerine VBA nesneleri kullanılmıştır. Kodlama ise, şu şekildedir ..

Sheet1'in kod modülüne;
Kod:
Option Explicit

Private Sub ComboBox1_Change()
    Call Cmb1_Tetikle
End Sub

Private Sub ComboBox2_Change()
    Dim rng As Range
    Dim wks As Worksheet
    Dim sBolge As String
    Dim i As Integer
    
    Set wks = Worksheets("Data")
    Set rng = wks.Cells.Find(ComboBox2, Lookat:=xlWhole)
    sBolge = wks.Cells(4, rng.Column)
    
    For i = 0 To ComboBox1.ListCount - 1
        If ComboBox1.List(i) = sBolge Then
            ComboBox1.ListIndex = i
            GoTo fpc
        End If
    Next i
fpc:
    Set wks = Nothing
    Set rng = Nothing
    
End Sub

Private Sub Worksheet_Activate()
    Call Cmb_Doldur
End Sub
Module1 adlı standart modul sayfasına;
Kod:
Sub Auto_Open()
    Call Cmb_Doldur
    Call Cmb1_Tetikle
End Sub

Sub Cmb_Doldur()
    Dim wks As Worksheet
    Dim cmbBolge As ComboBox
    Dim cmbPersonel As ComboBox
    
    Set cmbBolge = Worksheets("Sheet1").OLEObjects("ComboBox1").Object
    Set cmbPersonel = Worksheets("Sheet1").OLEObjects("ComboBox2").Object
    Set wks = Worksheets("Data")
    
    If wks.Cells(65536, 2).End(xlUp).Row = 1 Then
        cmbBolge.Enabled = False: cmbPersonel.Enabled = False
    Else
        cmbBolge.Enabled = True: cmbPersonel.Enabled = True
        cmbBolge.List = wks.Range("B4:B" & wks.Cells(65536, 2).End(xlUp).Row).Value
        cmbBolge.ListIndex = 0
    End If
        
    Set cmbBolge = Nothing
    Set cmbPersonel = Nothing
    Set wks = Nothing

End Sub

Sub Cmb1_Tetikle()
    Dim wks As Worksheet
    Dim rng As Range
    Dim hcr As Range
    Dim cmbBolge As ComboBox
    Dim cmbPersonel As ComboBox
    
    Set cmbBolge = Worksheets("Sheet1").OLEObjects("ComboBox1").Object
    Set cmbPersonel = Worksheets("Sheet1").OLEObjects("ComboBox2").Object
    
    Dim lSonSatir As Long
    Dim lSonSutun As Long
    
    
    Set wks = Worksheets("Data")
    
    cmbPersonel.Clear
    
    If cmbBolge.ListIndex = 0 Then
        lSonSatir = wks.UsedRange.Row + wks.UsedRange.Rows.Count
        lSonSutun = wks.Cells(4, 256).End(xlToLeft).Column
        
        If lSonSutun < 3 Then
            cmbPersonel.Enabled = False
        Else
            cmbPersonel.Enabled = True
            For Each hcr In wks.Range(wks.Range("C5"), wks.Cells(lSonSatir, lSonSutun))
                If Len(Trim(hcr)) > 0 Then
                    cmbPersonel.AddItem hcr
                End If
            Next
            cmbPersonel.ListIndex = -1
        End If
                    
    Else
        
        Set rng = wks.Rows(4).Find(cmbBolge.Text, Lookat:=xlWhole)
        
        If rng Is Nothing Then
            MsgBox "Bölge personeli bulunamıyor", vbCritical, "Uyarı"
        Else
            lSonSatir = wks.Cells(65536, rng.Column).End(xlUp).Row
            
            With cmbPersonel
                If lSonSatir = 4 Then
                    .Enabled = False
                Else
                    .Enabled = True
                    .List = wks.Range(rng.Offset(1, 0), rng.Offset(lSonSatir - 4, 0)).Value
                    .ListIndex = 0
                End If
            End With
        End If
           
    End If
    Set wks = Nothing
    Set rng = Nothing
    Set cmbBolge = Nothing
    Set cmbPersonel = Nothing

End Sub
 

Ekli dosyalar

Katılım
20 Temmuz 2008
Mesajlar
38
Excel Vers. ve Dili
2007
hocam çok teşekkürler ellerine sağlık.Yalnız şunu da yapabilir miyiz mümkünse 2. combobox 1. combobox ta tüm bölgeler seçiliyken boş gözüküyor.Boşluğa Tüm Temsilciler yazmak mümkünmüdür acaba?

Tekrar teşekkürler.
 
Katılım
13 Şubat 2008
Mesajlar
7
Excel Vers. ve Dili
2003
merhabalar benim de benzer bri sorunum var ancak cok yeniyim excelde yukarıdaki örnekten anlayamadım ne yapmam gerektigini..
en basit anlatımla yapmak istedigim sey
il ve ilçe olark iki sütun olacak
il sütununu tıkladıgımızda ona ait ilçelerin listelenmesini istiyorum.
yardımcı olabilirseniz cok sevinirim simdiden tesekkürler..
 
Katılım
8 Nisan 2005
Mesajlar
789
Excel Vers. ve Dili
Excel 2010 Türkçe
Sn 111083
Ferhat Pazarçevirdi hocanın çalışmasını il ve ilçelere şöyle uygulayabilirsiniz.
Data sayfası B sütununda İLLER başlığı altına sırasıyla illeri yazın, Yatay olarakta bu illeri tekrar aynı sırayla yazın. Yazdığınız ilin ilçelerini yazın.
Başlangıç olarak bir iki il yazdım, siz detaylandırın.
Selamlar,
 

Ekli dosyalar

Katılım
13 Şubat 2008
Mesajlar
7
Excel Vers. ve Dili
2003
ziya bey öncelikle cok tesekkür ederim..
cok sıkıntı vermeyeceksem bir sorum daha olacak ;combobox sayısını üçe cıkardıgımızda nasil bir eklenti yapmamız gerekir..
yani il-ilçe-mahalle seklinde kutucuklar acılsın istersek..
ücüncü combobox ı nasil ekleyecegim.
yardımcı olabilirseniz cok sevinirim..
simdiden tesekkürler.
 
Katılım
8 Nisan 2005
Mesajlar
789
Excel Vers. ve Dili
Excel 2010 Türkçe
Merhaba,
Sn 111083 ben sadece Ferhat Pazarçevirdi'nin çalışmasını size uyarladım. Kodlarda en ufak bir değişiklik yapmadım. Sizin talebiniz beni aşar. Ferhat bey'in dikkatini çeker de ilgilenirse olabilir , olmazsa yeni bir başlık altında konuyu gündeme getiriniz.
Selamlar,
 
Katılım
5 Ağustos 2005
Mesajlar
37
Excel Vers. ve Dili
Office 2007 Pro Eng
Sayın Ziya Bey,
Çalışma gerçekten çok güzel olmuş.Aynı uygulamayı veri doğrulama ile yapmak mümkünmü.1.sütunda il seçecek, 2 . sütunda ilçe gelecek gibi.Veri doğrulama ile combobox benzeri bir çözüm yapıyorduk.bu tip birşey mümkünmüdür?
 
X

xlsx

Misafir
Validation ile de yapılmış bir örnek dosyayı ekliyorum.A1 hücresinde seçilen Gruplara göre yanındaki B1 hücresinde açılan validation combobox'ından sadece o gruba ait veriler gelmekte ve seçim bu verilerden yapılabilmekte.Tek hücrede değil validation ile yapıldığı için tüm hücrelerde bu seçim imkanı veriyor.
 
Katılım
13 Şubat 2008
Mesajlar
7
Excel Vers. ve Dili
2003
ziya bey yardımlarınız için cok tesekkür ederim .sanırım dediginiz gibi 3 lü combobox ile ilgili yeni bir konu baslığı acmam gerekecek.

tekrar tesekkürler;
syg
 
Üst