- Katılım
- 5 Ocak 2009
- Mesajlar
- 1,586
- Excel Vers. ve Dili
- 2003 Türkçe
Selam,
Aşağıda sadece bir kısmını yolladığım kodlar ile 7+7=14 adet ComboBox 'ile birbiri ile ilişki çalışan ve birbirlerinin durumuna göre güncellenen Combobox güncelleme kodları hazırladım. Herşey çok güzel çalışıyor. Tam istediğim gibi.
Ancak bazen aşğıdaki kırmızı alanda hata veriyor:
Hata şu: run-time '380'
Örneklendirecek olursam; hatalı bölgeyi incelediğimde, en son satırdaki
hatalı alanda mouse'u beklettiğimde
f.ComboBox12= "" görünüyor. combo12_önce= "Deneme" görünüyor.
Yani f.ComboBox12'ye "deneme" yazdırmaya çalışıyor. Combobox listesinde "deneme" olmadığı için hata veriyor.
1.sorum:
Listesinde olmasa bile neden "Deneme"yi Combobox12'e yazamıyorum, gösteremiyorum?
2.sorum:
aşağıda görüleceği üzere başlangıçtaki ve sondaki combo5_önce metodları yerine başka ne gibi metod kullanabilirim?
.SelText, .Tag, .Text ilişkileri ile nedir? bunlarla çözebilir miyim?
Aşağıda sadece bir kısmını yolladığım kodlar ile 7+7=14 adet ComboBox 'ile birbiri ile ilişki çalışan ve birbirlerinin durumuna göre güncellenen Combobox güncelleme kodları hazırladım. Herşey çok güzel çalışıyor. Tam istediğim gibi.
Ancak bazen aşğıdaki kırmızı alanda hata veriyor:
Hata şu: run-time '380'
Örneklendirecek olursam; hatalı bölgeyi incelediğimde, en son satırdaki
Kod:
f.ComboBox12 = combo12_önce
f.ComboBox12= "" görünüyor. combo12_önce= "Deneme" görünüyor.
Yani f.ComboBox12'ye "deneme" yazdırmaya çalışıyor. Combobox listesinde "deneme" olmadığı için hata veriyor.
1.sorum:
Listesinde olmasa bile neden "Deneme"yi Combobox12'e yazamıyorum, gösteremiyorum?
2.sorum:
aşağıda görüleceği üzere başlangıçtaki ve sondaki combo5_önce metodları yerine başka ne gibi metod kullanabilirim?
.SelText, .Tag, .Text ilişkileri ile nedir? bunlarla çözebilir miyim?
Kod:
Sub insört_combo_güncelle2()
Dim f As insörtler
Set f = insörtler
combo4_önce = f.ComboBox4 'operatör
combo5_önce = f.ComboBox5 'insört
combo11_önce = f.ComboBox11 'operatör
combo12_önce = f.ComboBox12 'insört
For cl = 4 To 17
f.Controls("ComboBox" & cl).Clear
Next
For cl = 4 To 17
f.Controls("ComboBox" & cl).AddItem "Tümü", 0
Next
For i = 1 To UBound(insört_dizi, 2)
If combo4_önce <> "Tümü" And combo4_önce > insört_dizi(3, i) Then GoTo atla
If combo5_önce <> "Tümü" And StrComp(combo5_önce, insört_dizi(4, i), vbTextCompare) > 0 Then GoTo atla
If combo11_önce <> "Tümü" And combo11_önce < insört_dizi(3, i) Then GoTo atla
If combo12_önce <> "Tümü" And StrComp(insört_dizi(4, i), combo12_önce, vbTextCompare) > 0 Then GoTo atla
'******************************************
For j = 0 To f.ComboBox4.ListCount - 1 'operatör1
If f.ComboBox4.List(j) = insört_dizi(3, i) Then GoTo combo4_atla
Next
f.ComboBox4.AddItem insört_dizi(3, i)
combo4_atla:
For jb = 0 To f.ComboBox11.ListCount - 1 'operatör2
If f.ComboBox11.List(jb) = insört_dizi(3, i) Then GoTo combo11_atla
Next
f.ComboBox11.AddItem insört_dizi(3, i)
combo11_atla:
'******************************************
For k = 0 To f.ComboBox5.ListCount - 1 'insört1
If f.ComboBox5.List(k) = insört_dizi(4, i) Then GoTo combo5_atla
Next
f.ComboBox5.AddItem insört_dizi(4, i)
combo5_atla:
For kb = 0 To f.ComboBox12.ListCount - 1 'insört2
If f.ComboBox12.List(kb) = insört_dizi(4, i) Then GoTo combo12_atla
Next
f.ComboBox12.AddItem insört_dizi(4, i)
combo12_atla:
'******************************************
atla:
Next
f.ComboBox4.ListRows = f.ComboBox4.ListCount
f.ComboBox5.ListRows = f.ComboBox5.ListCount
'******************************************
liste = f.ComboBox4.List
f.ComboBox4.List = txt_sırala3(liste)
liste = f.ComboBox5.List
f.ComboBox5.List = txt_sırala3(liste)
'*************************************************
liste = f.ComboBox11.List
f.ComboBox11.List = txt_sırala3(liste)
liste = f.ComboBox12.List
f.ComboBox12.List = txt_sırala3(liste)
'***************************************************
[COLOR="Red"]On Error Resume Next
f.ComboBox4 = combo4_önce
f.ComboBox5 = combo5_önce
f.ComboBox11 = combo11_önce
f.ComboBox12 = combo12_önce[/COLOR]
End Sub
Son düzenleme:
