Şartlara Göre Bağlantılı Listbox

VBA Makrolar ile ilgili sormak istedikleriniz, yapmak istedikleriniz hakkında yardım alabileceğiniz bölümdür.

Şartlara Göre Bağlantılı Listbox

İleti#1)  erkanayhan007 » 12 Oca 2019 00:32

Merhaba Arkadaşlar. şöyle bir problemim var,
3 ayrı listbox ım var. listbox1, 2, 3.

1. ve 2. deki değerler sabit olup bunları C ve D Sütunlarından çekerek P1 ve P2 hücrelerine seçilen değerleri yazıyorum.

Ancak 3. listboxta olmasını istediğim;
A Sütununda XX_YY_ZZZ gibi bir sürü değerim var.
Listbox1 den XX i seçtiğimde listbox3 e XX ile başlayan değerleri getirecek. Listbox2 den sectiğim YY değeri ile, orta kısmı YY olan değerleri listbox3 getirecek.
Her ikisini de seçersem bu iki şarta göre değerleri listbox 3 e getirecek.
Umarım anlatabilmişimdir.
Dosyam ektedir.
Şimdiden Teşekkürler
Bu iletideki ekleri görmek için gerekli yetkilere sahip değilsiniz.
Kullanıcı avatarı
erkanayhan007
Yeni Başlamış
 
Kayıt: 28 Şub 2016 21:52
Meslek: otomasyoncu
Yaş: 27
İleti: 33
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İSTANBUL

Cevap: Şartlara Göre Bağlantılı Listbox

İleti#2)  veyselemre » 12 Oca 2019 11:14

Listbox1 ve 2 yi ComboBox la değiştirdim. Listboxta bir kez seçtikten sonra boş seçim yapamazsınız, ComboBox la
mümkün.
Kod: Tümünü seç
Sub listele()
    veri = Application.Transpose(Range("A1:A" & Cells(Rows.Count, 1).End(3).Row).Value)
    Key = ComboBox1.Text & "*" & ComboBox2.Text & "*"
    ListBox1.Clear
    For Each ver In veri
        If ver Like Key Then ListBox1.AddItem ver
    Next
End Sub

Private Sub ComboBox1_Change()
    Call listele
End Sub
Private Sub ComboBox2_Change()
    Call listele
End Sub
Bu iletideki ekleri görmek için gerekli yetkilere sahip değilsiniz.
Kullanıcı avatarı
veyselemre
Siteye Alışmış
 
Kayıt: 28 Nis 2015 17:53
Meslek: SERBEST
Yaş: 104
İleti: 280
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Ankara / Çubuk

Cevap: Cevap: Şartlara Göre Bağlantılı Listbox

İleti#3)  erkanayhan007 » 12 Oca 2019 11:52

veyselemre yazdı:Listbox1 ve 2 yi ComboBox la değiştirdim. Listboxta bir kez seçtikten sonra boş seçim yapamazsınız, ComboBox la
mümkün.
Kod: Tümünü seç
Sub listele()
    veri = Application.Transpose(Range("A1:A" & Cells(Rows.Count, 1).End(3).Row).Value)
    Key = ComboBox1.Text & "*" & ComboBox2.Text & "*"
    ListBox1.Clear
    For Each ver In veri
        If ver Like Key Then ListBox1.AddItem ver
    Next
End Sub

Private Sub ComboBox1_Change()
    Call listele
End Sub
Private Sub ComboBox2_Change()
    Call listele
End Sub


Desteğiniz için teşekkür ederim. gayet güzel çalışıyor ancak bir sorum daha var. Comboboxları ve Listbox ı başka bir sayfaya alıp kodda ilgili değişikliği yaptığımda çalıştıramadım.
Comboboxları ve Listbox ı Sheet2 ye aldım (Makro ile beraber) ve aşağıdaki değişikliği yaptıgımda hata alıyorum
veri = Application.Transpose(Worksheets(Sheet1).Range("A1:A" & Cells(Rows.Count, 1).End(3).Row).Value)

Bir de Application.Transpose kısmının ne amaçla kullandınız?
Kullanıcı avatarı
erkanayhan007
Yeni Başlamış
 
Kayıt: 28 Şub 2016 21:52
Meslek: otomasyoncu
Yaş: 27
İleti: 33
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İSTANBUL

Cevap: Şartlara Göre Bağlantılı Listbox

İleti#4)  veyselemre » 12 Oca 2019 12:28

Kod: Tümünü seç
    veri = Application.Transpose(Sheets("Sheet1").Range("A1:A" & Sheets("Sheet1").Cells(Rows.Count, 1).End(3).Row).Value)


Kodları yeni sayfanın kod bölümüne taşımayı unutmayınız.

Application.Transpose çok boyutlu dizilerde satırları sütun, sütunları satır yapar,
burdaki gibi çok satır, tek sütun olursa diziyi tek boyutlu diziye çevirir, for i=1 to.. vs uğraşmaktansa for each la bütün verilere sırayla ulaşılabilir.
Kullanıcı avatarı
veyselemre
Siteye Alışmış
 
Kayıt: 28 Nis 2015 17:53
Meslek: SERBEST
Yaş: 104
İleti: 280
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Ankara / Çubuk

REKLAM
Excel Logo XML Oluşturucu
Logo Object Designer ile Uyarlama

Cevap: Cevap: Şartlara Göre Bağlantılı Listbox

İleti#5)  erkanayhan007 » 12 Oca 2019 12:41

veyselemre yazdı:
Kod: Tümünü seç
    veri = Application.Transpose(Sheets("Sheet1").Range("A1:A" & Sheets("Sheet1").Cells(Rows.Count, 1).End(3).Row).Value)


Kodları yeni sayfanın kod bölümüne taşımayı unutmayınız.

Application.Transpose çok boyutlu dizilerde satırları sütun, sütunları satır yapar,
burdaki gibi çok satır, tek sütun olursa diziyi tek boyutlu diziye çevirir, for i=1 to.. vs uğraşmaktansa for each la bütün verilere sırayla ulaşılabilir.


Tırnakları Eklemeyi unutmuşum :)
Bir sorum daha var,
Sheet2 'ye yeni bir listbox daha ekledim.
Burada olmasını istediğim, combobox2 de seçilen değeri, Sheet1 in "J" Sütununda arayacak. Kaç tane bulursa "K" Sütunundaki karşılıklarını Listbox2 ye yazacak.
Güncel dosyam ektedir.
Teşekkür ederim.
Bu iletideki ekleri görmek için gerekli yetkilere sahip değilsiniz.
Kullanıcı avatarı
erkanayhan007
Yeni Başlamış
 
Kayıt: 28 Şub 2016 21:52
Meslek: otomasyoncu
Yaş: 27
İleti: 33
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İSTANBUL

Cevap: Şartlara Göre Bağlantılı Listbox

İleti#6)  erkanayhan007 » 12 Oca 2019 13:30

Aşağıdaki kod ile sorunumu hallettim.
Sağolun.

[code][/code]

Sub listele2()
ListBox2.Clear
sonsatir = Worksheets("Sheet1").Cells(Worksheets("Sheet1").Rows.Count, "K").End(xlUp).Row
For i = 1 To sonsatir
If Sheets("Sheet1").Cells(i, 10).Value = ComboBox2.Text Then
ListBox2.AddItem Sheets("Sheet1").Cells(i, 11)
End If
Next i
Kullanıcı avatarı
erkanayhan007
Yeni Başlamış
 
Kayıt: 28 Şub 2016 21:52
Meslek: otomasyoncu
Yaş: 27
İleti: 33
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İSTANBUL

REKLAM
ETA - Excel Konsolide Raporlama
ETA Excel Personel Entegre Raporu

Forum Genel Makro Soruları

Online Kullanıcılar

Bu forumu görüntüleyenler: AhrefsBot ve 2 misafir

Bumerang - Yazarkafe