ComboBox'a klavye ile giriş yapılınca hata veriyor

Katılım
8 Ekim 2004
Mesajlar
317
Excel Vers. ve Dili
EXCEL 2003 TÜRKÇE
ComboBox'un _Change()özelliğinde yazılı olan aşağıdaki kod yardımıyla hem ilgili Command butonlar False durumuna (aktif duruma) alınıyor hemda seçilen sayfa ListBox2 de listeleniyor.

Soron şu seçimi ComboBoxtan seçerken problem yok ama ComboBox'a klavye ile giriş yapmaya çalışılınca hata veriyor.

Hata veren satır.

Kod:
With Sheets(ComboBox1.Text)
Yardımlarınız için teşekkür ederim.

Private Sub ComboBox1_Change()
Dim MyArray
Label4.Caption = Range("A1")
Label5.Caption = Range("B1")
Label6.Caption = Range("C1")
With Sheets(ComboBox1.Text)
noA = .Cells(65536, 1).End(xlUp).Row
noB = .Cells(65536, 2).End(xlUp).Row
noC = .Cells(65536, 3).End(xlUp).Row
noD = .Cells(65536, 4).End(xlUp).Row

End With
noMax = WorksheetFunction.Max(noA, noB, noC, noD, noE)
MyArray = Sheets(ComboBox1.Text).Range("A1:E" & noMax)
ListBox2.List = MyArray
If ListBox2.ListIndex = -1 Then
CommandButton1.Enabled = False
Else
CommandButton1.Enabled = True
End If
If ComboBox1.ListIndex = -1 Then
CommandButton1.Enabled = False
Else
CommandButton1.Enabled = True
End If
Label1.Caption = UCase(ComboBox1.Value)
'İkinci CommandButton
If ComboBox1.ListIndex = -1 Then
CommandButton2.Enabled = False
Else
CommandButton2.Enabled = True
End If
Label1.Caption = UCase(ComboBox1.Value)
'Üçüncü CommandButon
If ComboBox1.ListIndex = -1 Then
CommandButton3.Enabled = False
Else
CommandButton3.Enabled = True
End If
Label1.Caption = UCase(ComboBox1.Value)


End Sub
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Merhaba;

ComboBox'lara manuel olarak klavye ile giriş yapılması, aslında tercih edilen bir yöntem değildir.

Gerçi, tercih edilen bir yöntem değil ama bazı kullanıcılar tarafından tercih edildiği için bu ActiveX nesnenisin yapılmış olduğunu da belirtmeliyim.

"Combo" adı da, bu nesnenin hem "TextBox", hem de "ListBox" özelliklerini ihtiva etmesinden gelmektedir. Nasıl ki, günümüz bilgisayarlarında "Combo CD/DVD - ROM" denen bir aygıt var ve bu aygıta ne verirsen onu "Play" eder, bu nesne de işte bu yüzden hem "TextBox", hem de "ListBox" özelliklerini taşıdığı için "Combo" olarak adlandırılmıştır.

ComboBox'ın "Text" kutusuna klavye ile giriş yaparken, bu nesne tıpkı bir TextBox nesnesi gibi çalışacak ve "Change" olayı meydana gelecektir. Bu olayın oluşması sonucunda, ComboBox'ın "Change" yordamında eğer varsa (ki sizin durumunuzda, var...) ilgili kodlar çalışacaktır.

Ã?rneğin, siz "Ahmet" adında bir sayfa ismini ComboBox'a elle girmeye çalışıyorsunuz diyelim. Siz daha "A" karakterini girdiğiniz anda, eğer dosyada "A" isimli bir sayfa yoksa, kodlarda bahsettiğiniz satırda, daha önceden karşılaştığınız hatayı verecektir ve bu da son derece normaldir.

Eğer mutlaka ComboBox'a klavye ile data gireceksiniz; denemedim ama aşağıdaki gibi bir hata denetimi yaparsanız, belki işinize yarayabilir....

Kod:
Private Sub ComboBox1_Change() 
on error goto ExitSafely:
********
*****
*** Kodları bu aralığa yerleştirin
**
*
ExitSafely:
End Sub
 
Katılım
8 Ekim 2004
Mesajlar
317
Excel Vers. ve Dili
EXCEL 2003 TÜRKÇE
Hocam verdiğiniz değerli bilgiler için teşekkür ederim. Sayenizde bilgi sahibi oluyoruz eksik olmayın.
 
Üst