invalid use of property hatası

Katılım
3 Ocak 2008
Mesajlar
166
Excel Vers. ve Dili
excel 2002 ve 2003
Merhaba arkadaşlar,

makro ile hazırladığım bir programda illere ve ilçelere ait veriler 3 ayrı hücreye giriyorum ve "invalid use of property" hatası veriyor. Eğer 2 hücreye değer girersem hata vermiyor.

Ayrıca ofis 2003'de "procedure too large" hatası veriyor.

Arkadaşlar döngüyü kurmada veya bu hata hakkında yardımcı olurmusunuz.


Kod:
Private Sub CommandButton1_Click()
On Error Resume Next
Dim sehiradi
'combobox kutusundaki adı yazar.
sehiradi = iller.Text
Select Case sehiradi
Case "Acıpayam": Range("B4") = -6: Range("D4") = "": Range ("A6")
Case "ADANA": Range("B4") = 0: Range("D4") = "R": Range ("A6")
Case "ADAPAZARI": Range("B4") = -3: Range("D4") = "R": Range ("A6")
Case "Adilcevaz": Range("B4") = -15: Range("D4") = "": Range ("A6")
Case "ADIYAMAN": Range("B4") = -9: Range("D4") = "": Range ("A6")
Case "Ağlasun": Range("B4") = -9: Range("D4") = "": Range ("A6")
Case "Ağın": Range("B4") = -15: Range("D4") = "": Range ("A6")
Case "AĞRI": Range("B4") = -15: Range("D4") = "": Range ("A6")
Case "AFYON": Range("B4") = -12: Range("D4") = "R": Range ("A6")
Case "Afşin": Range("B4") = -15: Range("D4") = "": Range ("A6")
Case "Ahlat": Range("B4") = -15: Range("D4") = "": Range ("A6")
Case "Akçaabat": Range("B4") = -3: Range("D4") = "": Range ("A6")
Case "Akçadağ": Range("B4") = -12: Range("D4") = "": Range ("A6")
Case "Akçakale": Range("B4") = -6: Range("D4") = "R": Range ("A6")
.
.
.
.
546 adet yukarıdaki değerden var.( uzun olur diye yazmadım.)
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Kodlamada kullandığınız yöntem yanlış ... Kod, çok verimsiz gözüküyor ...

İl ve İlçe isimlerinin alabileceği değerleri, bir tablodan almayı denerseniz, en fazla 15-20 satırlık bir kodla bu işi halledebilirsiniz.

Sonuç itibariyle, "iller" adlı nesnenin (muhtemelen TextBox/Combo veya ListBox) aldığı değere göre, B4, D4 ve A6 hücrelerine değer aktarımı yapılacak ...

Kodlarınızda, A6 hücresine ne gibi bir değer atadığınız belli değil ... Herbir case'deki, ":Range("A6")" sözcüğü, hiçbir anlam ifade etmiyor ...

Kısaca ilk baştada belirttiğim gibi, öncelikle atamak istediğiniz değerleri (-3, 0, -6 vs) Excel veya Access gibi bir yere yazın. Sonrasında; iller'in text değerine göre buralara sorgu çekebilirsiniz.

Kod içerisinde, bu tür değerleri tutmak anlamsızdır.



..
 
Katılım
3 Ocak 2008
Mesajlar
166
Excel Vers. ve Dili
excel 2002 ve 2003
öncelikle teşekkür ederim. Bende ilk başta sizin gibi düşündüm fakat o şekilde bilgim olmadığı için alamıyorum. Range("A6") dediğiniz gibi yanlış yazmışım. aslında
Range("A6")=sehiradi - olacaktı yani şehrin adını A6 hücresine yazdıracaktım.

Bana bu konuda yardımcı olursanız memnun olurum. Böylelikle data dosyalarından veri almayıda öğrenirim.

Ben size dosyayı gönderiyorum. Ayrıca illerle alakalı çalışma yapan tüm arkadaşlarıma kaynak olması açısından bakmalarını tavsiye ederim.
Saygılarımla
 

Ekli dosyalar

Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Ekteki örnek dosyayı inceleyiniz.

UF'deki kodlarınız şu şekilde revize edildi ...

Kod:
Private Sub CommandButton1_Click()
    Dim rng As Range
    Dim sehiradi As String
    
    sehiradi = iller.Text
    
    Set rng = Sheets("SICAKLIK").Columns(1).Find(sehiradi, Lookat:=xlWhole)
    
    If rng Is Nothing Then
        MsgBox "Böyle Bir İl Yoktur."
        Exit Sub
    Else
        Range("B2") = rng.Offset(0, 2)
        Range("D2") = rng.Offset(0, 1)
        Range("A6") = rng
            
    End If
    
    Set rng = Nothing
    Unload Me
End Sub
 
Private Sub UserForm_Activate()
    With iller
        .List = Sheets("SICAKLIK").Range("A1:A" & Sheets("SICAKLIK").Cells(65536, 1).End(xlUp).Row).Value
        .ListIndex = 0
    End With
End Sub

.
 

Ekli dosyalar

Katılım
3 Ocak 2008
Mesajlar
166
Excel Vers. ve Dili
excel 2002 ve 2003
üstadım çok ama çok teşekkür ederim. Çalışmalarında başarılar dilerim. Yaptıklarınız çok makbule geçti.
Saygılarımla
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
İşinize yaradığına sevindim ... İyi çalışmalar ...

.
 
Üst