Runtime Error 1004,seçili sayfaya göre çalışma

Katılım
29 Aralık 2010
Mesajlar
23
Excel Vers. ve Dili
MS Excel-2007-Türkçe
Merhaba arkadaşlar,elimdeki excel dosyasında 2 adet sayfa var,bu sayfalar personel listesinin bulunduğu Personel_Listesi ve İzin_Kartı sayfaları. Buna ilave olarak 1 adet UserForm ve form üzerinde 2 adet ComboBox var (Bu ComboBox'lar Personel_Listesi sayfasından bilgi çekiyor.),Visual Basic bölümünde kodları aşağıda yazdığım gibi yazıyorum ve çalıştırıyorum.Makroyu çalıştırdığımda o an eğer Personel_Listesi sayfasında bulunuyorsam yani aktif sayfa Personel_Listesi ise sorun olmadan çalışıyor.Fakat başka bir sayfadaysam "Runtime Error 1004-Range sınıfının Select yöntemi başarısız" hatası veriyor.Yeni bir UserForm üzerinde aynı şeyleri denedim fakat yine aynı şekilde hata verdi.Yardımlarınızı bekliyorum.

Private Sub ComboBox1_Change()
Worksheets("Personel_Listesi").Range("A2:A199").Select
Selection.Find(ComboBox1.Value).Select
txtSicil.Value = ActiveCell.Offset(0, 1).Value
txtKıdem.Value = ActiveCell.Offset(0, 2).Value
End Sub

Private Sub UserForm_Activate()
ComboBox1.RowSource = "Personel_Listesi!A2:A199"
ComboBox2.RowSource = "Personel_Listesi!E2:E5"
End Sub
 

mancubus

Destek Ekibi
Destek Ekibi
Katılım
6 Ocak 2010
Mesajlar
2,224
Excel Vers. ve Dili
İŞ: 2021 Win Eng
nesnelerle çalışmak için nesneleri seçmek zorunda değiliz.
hatta çok ender durumlarda zorunlu olmadıkça seçilmemeli.


Kod:
Private Sub ComboBox1_Change()

Dim sayfa As Worksheet
Dim bul As Range

Set sayfa = Worksheets("Personel_Listesi")

On Error Resume Next
With sayfa.Range("A2:A199")
    Set bul = .Find(ComboBox1.Value)
End With
On Error GoTo 0

If bul Is Nothing Then
    MsgBox "Aranan değer bulunamadı. Kontrol ediniz!"
    Exit Sub
End If

txtSicil.Value = bul.Offset(0, 1).Value
txtKıdem.Value = bul.Offset(0, 2).Value

End Sub
 

mancubus

Destek Ekibi
Destek Ekibi
Katılım
6 Ocak 2010
Mesajlar
2,224
Excel Vers. ve Dili
İŞ: 2021 Win Eng
not:
"Range" nesnesini seçebilmek için o Range'in bulunduğu Worksheet nesnesinin aktif olması gerekir.

hiç tavsiye etmemekle birlikte...

Worksheets("Personel_Listesi").Activate
Range("A2:A199").Select
Selection.Find(ComboBox1.Value).Select
 
Katılım
29 Aralık 2010
Mesajlar
23
Excel Vers. ve Dili
MS Excel-2007-Türkçe
Cevabınız için teşekkür ederim.Bana göre de nesneleri seçmek zorunda değiliz.Fakat bu durumda seçmek zorunda kaldım.Mesajımda;
Private Sub ComboBox1_Change() kodundan sonra
Worksheets("Personel_Listesi").Select kodunu ekleyince sorunum düzeldi.
 
Katılım
29 Aralık 2010
Mesajlar
23
Excel Vers. ve Dili
MS Excel-2007-Türkçe
Kusura bakmayın mesajımı yazdıktan sonra sizin mesajınızı görebildim.Kolay gelsin.
 

mancubus

Destek Ekibi
Destek Ekibi
Katılım
6 Ocak 2010
Mesajlar
2,224
Excel Vers. ve Dili
İŞ: 2021 Win Eng
rica ederim.
2 no.lu mesajımdaki kodu tavsiye ediyorum.

aşağıdaki 2 kod da aynı sonucu üretir.

Kod:
Worksheets("Sheet1").Activate
Range("A1").Select
ActiveCell.Value = "Deneme"

Kod:
Worksheets("Sheet1").Range("A1").Value = "Deneme"
ikinci kod daha hızlıdır.
 
Katılım
29 Aralık 2010
Mesajlar
23
Excel Vers. ve Dili
MS Excel-2007-Türkçe
Teşekkür ederim yardımlarınız için.
 
Üst