Excel combobox yardım

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Gökyüzü sadece uçmaktan korkanların sınırıdır
Süper Üye
Katılım
14 Nis 2019
Mesajlar
915
Çözümler
10
Tepki puanı
100
Ödüller
7
7 HİZMET YILI
Dostlar excel formda bir proje yapıyorum. araç satın alma projesi. combobox1 de atıyorum audi seçtigim zaman combobox2 de audinin modellerini seçmek istiyorum. combobox1 e excel üzerinden veri aktardım lakin cb1 araç markasını seçtiğim zaman cb2 de modeli bir türlü getiremedim yardım eder misiniz acaba.
resim_2022-03-11_190644.png
 
Üye
Katılım
12 Şub 2022
Mesajlar
23
Tepki puanı
3
Ödüller
3
Yaş
32
4 HİZMET YILI
Araç markalarını yan yana değil alt altta yaz, diğerlerinide o şekilde yap ve Sonrasında;


Private Sub UserForm_Initialize()
ComboBox1.RowSource = "sayfa1!a1:a" & Range("a65000").End(xlUp).Row
End Sub

Private Sub ComboBox1_Change()
Dim a As Integer, i As Long
With Sheets("sayfa1")
a = .Range("a1:a" & .Range("a65536").End(3).Row).Find(ComboBox1.Value, , , 1).Row
ComboBox2.Clear
For i = 2 To .Range("ıv" & a).End(1).Column
ComboBox2.AddItem .Cells(a, i).Value
Next i
End With
a = Empty: i = Empty
End Sub


Örnek olarak kullanabilirsin ama dediğim gibi sıralamalarını yan yana değil de alt altta yapsan daha kolaylık olur senin için.
 
Gökyüzü sadece uçmaktan korkanların sınırıdır
Süper Üye
Katılım
14 Nis 2019
Mesajlar
915
Çözümler
10
Tepki puanı
100
Ödüller
7
7 HİZMET YILI
bu tam oalrak ne işe yarıyor?
dostum proje verdi hoca
Post automatically merged:

Araç markalarını yan yana değil alt altta yaz, diğerlerinide o şekilde yap ve Sonrasında;


Private Sub UserForm_Initialize()
ComboBox1.RowSource = "sayfa1!a1:a" & Range("a65000").End(xlUp).Row
End Sub

Private Sub ComboBox1_Change()
Dim a As Integer, i As Long
With Sheets("sayfa1")
a = .Range("a1:a" & .Range("a65536").End(3).Row).Find(ComboBox1.Value, , , 1).Row
ComboBox2.Clear
For i = 2 To .Range("ıv" & a).End(1).Column
ComboBox2.AddItem .Cells(a, i).Value
Next i
End With
a = Empty: i = Empty
End Sub


Örnek olarak kullanabilirsin ama dediğim gibi sıralamalarını yan yana değil de alt altta yapsan daha kolaylık olur senin için.
dostum araç markaları alt alta yazdım fakat modeller çok fazla nasıl hangisinin hangisi olduğunu seçicek
 
Üye
Katılım
12 Şub 2022
Mesajlar
23
Tepki puanı
3
Ödüller
3
Yaş
32
4 HİZMET YILI
dostum proje verdi hoca
Post automatically merged:


dostum araç markaları alt alta yazdım fakat modeller çok fazla nasıl hangisinin hangisi olduğunu seçicek

dostum senin istediğin tam olarak bu oluyor;
Kod:
Private Sub UserForm_Initialize()
ComboBox1.RowSource = "sayfa1!a2:a" & Range("a65000").End(xlUp).Row
End Sub
Private Sub ComboBox1_Change()
Dim a As String
a = ComboBox1.Text
If a = "SEAT" Then
ComboBox2.Text = ""
ComboBox2.RowSource = "sayfa1!b2:b" & Range("b65000").End(xlUp).Row
End If
If a = "FORD" Then
ComboBox2.Text = ""
ComboBox2.RowSource = "sayfa1!c2:c" & Range("c65000").End(xlUp).Row
End If
If a = "BMW" Then
ComboBox2.Text = ""
ComboBox2.RowSource = "sayfa1!d2:d" & Range("d65000").End(xlUp).Row
End If
If a = "RENAUT" Then
ComboBox2.Text = ""
ComboBox2.RowSource = "sayfa1!e2:e" & Range("e65000").End(xlUp).Row
End If
End Sub


Bağlantıları görmek için lütfen Giriş Yap


bu resime bakarak oluştur excelini, üste verdiğim kod ile istediğini elde ediceksin.
Not: arabalardan hiç anlamam markalarına gülme salladım hep :D
Post automatically merged:

dostum senin istediğin tam olarak bu oluyor;
Kod:
Private Sub UserForm_Initialize()
ComboBox1.RowSource = "sayfa1!a2:a" & Range("a65000").End(xlUp).Row
End Sub
Private Sub ComboBox1_Change()
Dim a As String
a = ComboBox1.Text
If a = "SEAT" Then
ComboBox2.Text = ""
ComboBox2.RowSource = "sayfa1!b2:b" & Range("b65000").End(xlUp).Row
End If
If a = "FORD" Then
ComboBox2.Text = ""
ComboBox2.RowSource = "sayfa1!c2:c" & Range("c65000").End(xlUp).Row
End If
If a = "BMW" Then
ComboBox2.Text = ""
ComboBox2.RowSource = "sayfa1!d2:d" & Range("d65000").End(xlUp).Row
End If
If a = "RENAUT" Then
ComboBox2.Text = ""
ComboBox2.RowSource = "sayfa1!e2:e" & Range("e65000").End(xlUp).Row
End If
End Sub


Bağlantıları görmek için lütfen Giriş Yap


bu resime bakarak oluştur excelini, üste verdiğim kod ile istediğini elde ediceksin.
Not: arabalardan hiç anlamam markalarına gülme salladım hep :D
Ayrıca
mantığını açıklamak gerekirse eğer ödev amaçlı olduğu için açıklayayım mantığını;
Kod:
ComboBox1.RowSource = "sayfa1!a2:a" & Range("a65000").End(xlUp).Row
Burası a sutununda 1. Hücreden başlayarak 65.000 hücresine kadar combobox1 item kısmına olan verileri ekliyor.

Kod:
Dim a As String
a = ComboBox1.Text

“a” isminde bir değişken tanımlıyoruz ve “a” değişkenine combobox1.text(yani seçilen yazı) atıyoruz.

Kod:
If a = "FORD" Then
ComboBox2.Text = ""
ComboBox2.RowSource = "sayfa1!c2:c" & Range("c65000").End(xlUp).Row
End If
Direk şunu demek istedik “eğer “a” değişkenimizde “FORD” verisi seçili ise, Combobox2.text’in içini temizle ve combobox2 nin item kısmına c sutununun 2. Hücresinden başlayarak 65000 hücresine kadar dolu olan hücreler deki veriler aktar dedik ve bu şekilde diğer markalarında verilerini uyarlayarak combobox itemimize çektirdik mantığı bu dostum.
 
Son düzenleme:
Gökyüzü sadece uçmaktan korkanların sınırıdır
Süper Üye
Katılım
14 Nis 2019
Mesajlar
915
Çözümler
10
Tepki puanı
100
Ödüller
7
7 HİZMET YILI
dostum senin istediğin tam olarak bu oluyor;
Kod:
Private Sub UserForm_Initialize()
ComboBox1.RowSource = "sayfa1!a2:a" & Range("a65000").End(xlUp).Row
End Sub
Private Sub ComboBox1_Change()
Dim a As String
a = ComboBox1.Text
If a = "SEAT" Then
ComboBox2.Text = ""
ComboBox2.RowSource = "sayfa1!b2:b" & Range("b65000").End(xlUp).Row
End If
If a = "FORD" Then
ComboBox2.Text = ""
ComboBox2.RowSource = "sayfa1!c2:c" & Range("c65000").End(xlUp).Row
End If
If a = "BMW" Then
ComboBox2.Text = ""
ComboBox2.RowSource = "sayfa1!d2:d" & Range("d65000").End(xlUp).Row
End If
If a = "RENAUT" Then
ComboBox2.Text = ""
ComboBox2.RowSource = "sayfa1!e2:e" & Range("e65000").End(xlUp).Row
End If
End Sub


Bağlantıları görmek için lütfen Giriş Yap


bu resime bakarak oluştur excelini, üste verdiğim kod ile istediğini elde ediceksin.
Not: arabalardan hiç anlamam markalarına gülme salladım hep :D
Post automatically merged:


Ayrıca
mantığını açıklamak gerekirse eğer ödev amaçlı olduğu için açıklayayım mantığını;
Kod:
ComboBox1.RowSource = "sayfa1!a2:a" & Range("a65000").End(xlUp).Row
Burası a sutununda 1. Hücreden başlayarak 65.000 hücresine kadar combobox1 item kısmına olan verileri ekliyor.

Kod:
Dim a As String
a = ComboBox1.Text

“a” isminde bir değişken tanımlıyoruz ve “a” değişkenine combobox1.text(yani seçilen yazı) atıyoruz.

Kod:
If a = "FORD" Then
ComboBox2.Text = ""
ComboBox2.RowSource = "sayfa1!c2:c" & Range("c65000").End(xlUp).Row
End If
Direk şunu demek istedik “eğer “a” değişkenimizde “FORD” verisi seçili ise, Combobox2.text’in içini temizle ve combobox2 nin item kısmına c sutununun 2. Hücresinden başlayarak 65000 hücresine kadar dolu olan hücreler deki veriler aktar dedik ve bu şekilde diğer markalarında verilerini uyarlayarak combobox itemimize çektirdik mantığı bu dostum.
Dostum çok teşekkür ediyorum. bir sorum daha var markaları ve modelleri seçtik. 2form üzerinde label'a atamasını istiyorum ve ona görede seçilen marka modele göre yıl getirmek istiyorum. Yani 1.form da marka olarak bmw seçti model olarak da 520 ilerle dedikten sonra 2.form üzerinde label da bmw 520 yazıcak ve comboxtan da araç yılı seçilecek bunu nasıl yapabilirim. sanırım excel üzerinde her marka modele göre yıl girmem ve bunu çekmem lazım
 
Üye
Katılım
12 Şub 2022
Mesajlar
23
Tepki puanı
3
Ödüller
3
Yaş
32
4 HİZMET YILI
Dostum çok teşekkür ediyorum. bir sorum daha var markaları ve modelleri seçtik. 2form üzerinde label'a atamasını istiyorum ve ona görede seçilen marka modele göre yıl getirmek istiyorum. Yani 1.form da marka olarak bmw seçti model olarak da 520 ilerle dedikten sonra 2.form üzerinde label da bmw 520 yazıcak ve comboxtan da araç yılı seçilecek bunu nasıl yapabilirim. sanırım excel üzerinde her marka modele göre yıl girmem ve bunu çekmem lazım

Userform1’ de combobox1 ve Combobox ta istediklerini seçtikten sonra ileri isimli butona tıklayıp userform2 geçmek istiyorsun, burada 1 labele userform1 den seçtiğin marka ve model aracın gelmesini istiyorsun ve bu labele göre tekrardan araç ile ilgili yıl mı seçmek istiyorsun? Doğru mu anladım?
Post automatically merged:

Dostum çok teşekkür ediyorum. bir sorum daha var markaları ve modelleri seçtik. 2form üzerinde label'a atamasını istiyorum ve ona görede seçilen marka modele göre yıl getirmek istiyorum. Yani 1.form da marka olarak bmw seçti model olarak da 520 ilerle dedikten sonra 2.form üzerinde label da bmw 520 yazıcak ve comboxtan da araç yılı seçilecek bunu nasıl yapabilirim. sanırım excel üzerinde her marka modele göre yıl girmem ve bunu çekmem lazım
UserForm1 'e bir buton ekle ve içerisine
Kod:
Private Sub CommandButton1_Click()
UserForm2.Label1.Caption = ComboBox1.Text & " " & ComboBox2.Text
UserForm2.Show
End Sub
Userform2 yi oluştur ve içerisine 2 adet label 1 adet combobox ekle ve kod bölümüne direk şunu yaz
Kod:
Private Sub ComboBox1_Change()
UserForm2.Label2.Caption = UserForm2.Label1.Caption & " " & UserForm2.ComboBox1.Text & " Yılına Ait Araç"
End Sub

Private Sub UserForm_Initialize()
ComboBox1.RowSource = "sayfa1!e2:e" & Range("e65000").End(xlUp).Row
End Sub

bu kodlar işini görecektir. Önce ki sorduğun ile birleştir bunları işini görür.
yıl konusuna gelirsek eğer; ister sayfadan çek ister item olarak combobox içerisinde ekleme yaparak kullan sana kalmış artık. Ben sayfadan çektim "e" sutununa 1990-2022 yılları arasını ekledim ve bu şekilde çektirdim
 
Son düzenleme:
Gökyüzü sadece uçmaktan korkanların sınırıdır
Süper Üye
Katılım
14 Nis 2019
Mesajlar
915
Çözümler
10
Tepki puanı
100
Ödüller
7
7 HİZMET YILI
Userform1’ de combobox1 ve Combobox ta istediklerini seçtikten sonra ileri isimli butona tıklayıp userform2 geçmek istiyorsun, burada 1 labele userform1 den seçtiğin marka ve model aracın gelmesini istiyorsun ve bu labele göre tekrardan araç ile ilgili yıl mı seçmek istiyorsun? Doğru mu anladım?
Post automatically merged:

Userform1’ de combobox1 ve Combobox ta istediklerini seçtikten sonra ileri isimli butona tıklayıp userform2 geçmek istiyorsun, burada 1 labele userform1 den seçtiğin marka ve model aracın gelmesini istiyorsun ve bu labele göre tekrardan araç ile ilgili yıl mı seçmek istiyorsun? Doğru mu anladım?
Post automatically merged:


UserForm1 'e bir buton ekle ve içerisine
Kod:
Private Sub CommandButton1_Click()
UserForm2.Label1.Caption = ComboBox1.Text & " " & ComboBox2.Text
UserForm2.Show
End Sub
Userform2 yi oluştur ve içerisine 2 adet label 1 adet combobox ekle ve kod bölümüne direk şunu yaz
Kod:
Private Sub ComboBox1_Change()
UserForm2.Label2.Caption = UserForm2.Label1.Caption & " " & UserForm2.ComboBox1.Text & " Yılına Ait Araç"
End Sub

Private Sub UserForm_Initialize()
ComboBox1.RowSource = "sayfa1!e2:e" & Range("e65000").End(xlUp).Row
End Sub

bu kodlar işini görecektir. Önce ki sorduğun ile birleştir bunları işini görür.
yıl konusuna gelirsek eğer; ister sayfadan çek ister item olarak combobox içerisinde ekleme yaparak kullan sana kalmış artık. Ben sayfadan çektim "e" sutununa 1990-2022 yılları arasını ekledim ve bu şekilde çektirdim
Evet dostum form 1 de seçtigim marka modeli form2 de label a aktarmak istiyorum kod icin teşekkürler. Lakin yıl mevzusunu halledemedim direk kendim combox a yazsam seçtiğim araca göre yıl gelmeyecek excele girsem ordan çeksem zaten marka model var bir de araya nasıl yılları ekleyeceğim onu çözemedim
 
Üye
Katılım
12 Şub 2022
Mesajlar
23
Tepki puanı
3
Ödüller
3
Yaş
32
4 HİZMET YILI
Evet dostum form 1 de seçtigim marka modeli form2 de label a aktarmak istiyorum kod icin teşekkürler. Lakin yıl mevzusunu halledemedim direk kendim combox a yazsam seçtiğim araca göre yıl gelmeyecek excele girsem ordan çeksem zaten marka model var bir de araya nasıl yılları ekleyeceğim onu çözemedim
Kusura bakma çok geç cevap verdim çok işim vardı;
Bence hiç o şekilde uğraşma kayıt formu oluştur ordan tek tek kayıt gerçekleştir yaptığın kayıtta marka model yıl seçenekleri koy onları kayıt ettir sonrasında listbox aracılığı ile göster ordan seçme yaparak istediğin araca ulaş. Ama sende ki en büyük eksikliği söylüyeyim tam olarak ne istediğini kesinleştirmemişsin. Önce istediğin şeyib tasarımını tamamla sonrasında arka plan çalışmasına yönel diğer türlü durmadan yaptığın şeyler değişecek
 
Gökyüzü sadece uçmaktan korkanların sınırıdır
Süper Üye
Katılım
14 Nis 2019
Mesajlar
915
Çözümler
10
Tepki puanı
100
Ödüller
7
7 HİZMET YILI
Kusura bakma çok geç cevap verdim çok işim vardı;
Bence hiç o şekilde uğraşma kayıt formu oluştur ordan tek tek kayıt gerçekleştir yaptığın kayıtta marka model yıl seçenekleri koy onları kayıt ettir sonrasında listbox aracılığı ile göster ordan seçme yaparak istediğin araca ulaş. Ama sende ki en büyük eksikliği söylüyeyim tam olarak ne istediğini kesinleştirmemişsin. Önce istediğin şeyib tasarımını tamamla sonrasında arka plan çalışmasına yönel diğer türlü durmadan yaptığın şeyler değişecek
Çok teşekkür ederim dostum. çok güzel özetlemişsin ben tam olarak ne istediğime ne yapacağıma karar veremedim ilk önce bunu kesinleştirmem lazım :)
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Üst