açılan kutudan veri seçme

Katılım
2 Temmuz 2007
Mesajlar
178
Excel Vers. ve Dili
2010 tr
Sayın Fedeal, Konu üzerinde çalışmalarım devam ediyor. Calibration sayfasına yeni veriler girerek test ediyorum. Fakat dikkatimi çelen bir sorun var. Dosyayı ilk açışta combobox'lar aktif olmuyor. ancak sayfalar arasında dolaştıktan sonra combobox 1, 2 ve 3 aktif hale geçiyor. bunun nedeni ne olabilir acaba.
Combobox2 deki veri için "station name"
Combobox1 deki veri için "station name"
Combobox3 deki veri için "product" sayfalarını bir kez açmam gerekiyor.
Dosyayı da ekliyorum.
Diğer uzman arkadaşlarında görüşleri benim için önemli...
Teşekkürler.
 

Ekli dosyalar

Son düzenleme:

fedeal

Banned
Katılım
29 Mayıs 2008
Mesajlar
1,985
Excel Vers. ve Dili
2003 tr
Sebebi sayfaların komutları ,

Kod:
Private Sub Worksheet_Activate()
ComboBox2.Clear
For i = 1 To 7
ComboBox2.AddItem
ComboBox2.List(i - 1, 0) = Sheets("Station Name").Cells(1, i).Value
Next
End Sub
Combobox2 listesini düzenleyen kodumuz bu, Private Sub Worksheet_Activate olayı sayfanın activetisiyle çalışıyor yani açılınca dosya açılınca zaten sayfa açık oldugu için komut yerine gelmiyor ve veri alınmıyor. combobox1 ise combobox2 ye göre sayfadan veri alıyor (altta) bunun komutu ise Private Sub ComboBox2_Change() combobx değişince kodlar çalışıp combobox1 e veri alınıyor.combobox3 ise combobox1e bağlı..


Kod:
Private Sub ComboBox1_Change()
If ComboBox1.Text = "" Then Exit Sub
ComboBox3.Clear
sütun = WorksheetFunction.Match(ComboBox1, Sheets("Product").Range("A1:AS1"), 0)
For i = 1 To 30
ComboBox3.AddItem
ComboBox3.List(i - 1, 0) = Sheets("Product").Cells(i + 1, sütun).Value
Next
End Sub
Private Sub ComboBox2_Change()
If ComboBox2.Text = "" Then Exit Sub
ComboBox1.Clear
For i = 1 To 30
ComboBox1.AddItem
ComboBox1.List(i - 1, 0) = Sheets("Station Name").Cells(i + 1, ComboBox2.ListIndex + 1).Value
Next
End Sub
Sorun bu peki ne yapabiliriz.Çalışmayı açarken çalışacak kod yazalım önce başka bir sayfa sonra bu sayfayı açsın kodlar calışsın combobox2ye veriler gelsin;

Kod:
Sub auto_open()
Sheets("Product").Select
Sheets("Data Entry").Select
End Sub
(modül oluşturup oraya kopyalayın)
Combobox2 tamam combobox1in listesi combobox2ye göre oluşuyor yinede seçili gelsin diyorsanız onuda sayfadaki activate olayına bir eklemeyle halledelim.

Kod:
Private Sub Worksheet_Activate()
ComboBox2.Clear
For i = 1 To 7
ComboBox2.AddItem
ComboBox2.List(i - 1, 0) = Sheets("Station Name").Cells(1, i).Value
Next
[COLOR="red"]ComboBox2.Text = ComboBox2.List(1, 0)[/COLOR]
End Sub
umarım açıklayıcı olmuştur.İyi çalışmalar.
 
Katılım
2 Temmuz 2007
Mesajlar
178
Excel Vers. ve Dili
2010 tr
Teşekkürler, şimdi dosyayı açınca tüm comboboxlar aktif olarak geliyor. Sorun şimdilik çözüldü...
 
Katılım
2 Temmuz 2007
Mesajlar
178
Excel Vers. ve Dili
2010 tr
Herkezin Bayramını kutlarım,

Açmış olduğum konuyla ilgili, proje üzerinde çalıştıkca bazı eklemeler yapılması gerekiyor.
isteğime gelince; aşağıdaki kod ile "B5" hücresine değer girdiğimde "B6" hücresine değeri bulup getiriyor. Buna ilave olarak "C5" hücresinede değer girdiğimde "C6" hücresinede aynı sayfadan değer değeri bulması gerekiyor.

Yardımlarınızı bekliyorum. (dosya ektedir)

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [b5]) Is Nothing Then Exit Sub
satır = Cells(5, 2).Value
sütun = WorksheetFunction.Match(ComboBox1, Sheets("calibration").Range("A1:hr1"), 0)
If ComboBox3.Text = "Euro Regular" Then Cells(6, 2).Value = Sheets("calibration").Cells(satır + 2, sütun)
If ComboBox3.Text = "Efix Premium" Then Cells(6, 2).Value = Sheets("calibration").Cells(satır + 2, sütun + 1)
If ComboBox3.Text = "Super" Then Cells(6, 2).Value = Sheets("calibration").Cells(satır + 2, sütun + 2)
If ComboBox3.Text = "Efix Diesel" Then Cells(6, 2).Value = Sheets("calibration").Cells(satır + 2, sütun + 3)
If ComboBox3.Text = "Euro Diesel" Then Cells(6, 2).Value = Sheets("calibration").Cells(satır + 2, sütun + 4)
If ComboBox3.Text = "Ron 93" Then Cells(6, 2).Value = Sheets("calibration").Cells(satır + 2, sütun + 2)

End Sub
 

Ekli dosyalar

Katılım
2 Temmuz 2007
Mesajlar
178
Excel Vers. ve Dili
2010 tr
Yardım bekliyorum arkadaşlar...

Herkezin Bayramını kutlarım,

Açmış olduğum konuyla ilgili, proje üzerinde çalıştıkca bazı eklemeler yapılması gerekiyor.
isteğime gelince; aşağıdaki kod ile "B5" hücresine değer girdiğimde "B6" hücresine değeri bulup getiriyor. Buna ilave olarak "C5" hücresinede değer girdiğimde "C6" hücresinede aynı sayfadan değer değeri bulması gerekiyor.

Yardımlarınızı bekliyorum. (dosya ektedir)

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [b5]) Is Nothing Then Exit Sub
satır = Cells(5, 2).Value
sütun = WorksheetFunction.Match(ComboBox1, Sheets("calibration").Range("A1:hr1"), 0)
If ComboBox3.Text = "Euro Regular" Then Cells(6, 2).Value = Sheets("calibration").Cells(satır + 2, sütun)
If ComboBox3.Text = "Efix Premium" Then Cells(6, 2).Value = Sheets("calibration").Cells(satır + 2, sütun + 1)
If ComboBox3.Text = "Super" Then Cells(6, 2).Value = Sheets("calibration").Cells(satır + 2, sütun + 2)
If ComboBox3.Text = "Efix Diesel" Then Cells(6, 2).Value = Sheets("calibration").Cells(satır + 2, sütun + 3)
If ComboBox3.Text = "Euro Diesel" Then Cells(6, 2).Value = Sheets("calibration").Cells(satır + 2, sütun + 4)
If ComboBox3.Text = "Ron 93" Then Cells(6, 2).Value = Sheets("calibration").Cells(satır + 2, sütun + 2)

End Sub
 
Üst