• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Method 'Range' of Object '_Global' failed hatası

Katılım
21 Ocak 2013
Mesajlar
425
Excel Vers. ve Dili
2010
bir hatam var bulamadı
Kod:
Dim wsGELENEVRAK, wsGİDENEVRAK, wsPERSONELÖNTANIM, wsDESİMALDOSYA As Worksheet
Dim sonsatır, sil As Long
Dim konrol As Byte
Private Sub Cmdkaydet_Click()
sonsatır = WorksheetFunction.CountA(Worksheets("GİDENEVRAK").Range("A:A")) + 1
If sonsatır = 2 Then
Worksheets("GİDENEVRAK").Cells(sonsatır, 1) = 1
Else
Worksheets("GİDENEVRAK").Cells(sonsatır, 1) = Worksheets("GİDENEVRAK").Cells(sonsatır - 1, 1) + 1
End If
Worksheets("GİDENEVRAK").Cells(sonsatır, 2) = Cbgönderilenkurum.Value
Worksheets("GİDENEVRAK").Cells(sonsatır, 3) = Tbtarih.Value
Worksheets("GİDENEVRAK").Cells(sonsatır, 4) = Tbevrakno.Value
Worksheets("GELENEVRAK").Cells(sonsatır, 5) = tbek.Value
Worksheets("GİDENEVRAK").Cells(sonsatır, 6) = Cbdesimaldosya.Value
Worksheets("GİDENEVRAK").Cells(sonsatır, 7) = Cbkonu.Value
Worksheets("GİDENEVRAK").Cells(sonsatır, 8) = Cbhavaleedenmemur.Value
MsgBox "VERİ KAYDEDİLDİ.", vbInformation, "BİLDİRİ"
Cbgönderilenkurum.Value = ""
Tbtarih.Value = ""
Tbevrakno.Value = ""
tbek.Value = ""
Cbdesimaldosya.Value = ""
Cbkonu.Value = ""
Cbhavaleedenmemur.Value = ""
listele
End Sub
Private Sub CmdSil_Click()
sor = MsgBox("SEÇİLEN VERİ SİLİNECEK.", vbYesNoCancel + vbInformation, "BİLDİRİ")
If sor = vbNo Then Exit Sub
If sor = vbCancel Then Exit Sub
For a = 0 To Lstgidenevrak.ListCount - 1
If Lstgidenevrak.Selected(a) Then
ara = Lstgidenevrak.List(a, 0)
Sheets("GİDENEVRAK").Range("A:A").Find(what:=ara, lookat:=xlWhole).EntireRow.Delete
End If
Next
End Sub
Private Sub Tbtarih_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Not IsDate(Tbtarih.Value) Then
MsgBox "GEÇERLİ BİR TARİH GİRMEDİNİZ!", vbInformation, "BİLGİ"
Exit Sub
Else
Tbtarih.Value = Replace(Tbtarih.Value, ".", ":")
End If
End Sub
Private Sub userform_initialize()
listele
End Sub
Sub listele()
Dim x As Long
For x = 1 To 1000000
If Range("GİDENEVRAK!" & x).Value <> "" Then
x = x + 1
Else
Exit For
End If
Next
Lstgidenevrak.ColumnCount = 8
Lstgidenevrak.RowSource = "GİDENEVRAK!$A2:H$" & x
Lstgidenevrak.ColumnWidths = "50;;60;150;25;;;125"
End Sub
m ama Method 'Range' of Object '_Global' failed hatası veriyor. şimdiden teşekkür ederim.
 
Hangi satırda veriyor bu hatayı?
 
F8 yaparak kodları manuel olarak ileri giderseniz hata satırını verecektir. Yada dosyanızı paylaşın ki size yardımcı olalım.
 
If Range("GİDENEVRAK!" & x).Value <> "" Then
x = x + 1
Else
Exit For
End If
Next
Lstgidenevrak.ColumnCount = 8
Lstgidenevrak.RowSource = "GİDENEVRAK!$A2:H$" & x
Lstgidenevrak.ColumnWidths = "50;;60;150;25;;;125"
End Sub
hatayı bu kısımda verdi
 
If Range("GİDENEVRAK!" & x).Value <> "" Then

buradaki X hatalı kullanım.

If Range("GİDENEVRAK!A" & x).Value <> "" Then
gibi bir şey olmalı. Sütun etiketini belirtmelisiniz.
 
Bunların Yerine X yani son satır sayısını aşağıdaki şekilde bulabilirsiniz.
..........
x=Worksheets("GİDENEVRAK").Range("A" & Rows.Count).End(3).Row
x=WorksheetFunction.Max(2,x)
Lstgidenevrak.ColumnCount = 8
Lstgidenevrak.RowSource = "GİDENEVRAK!$A2:H$" & x
Lstgidenevrak.ColumnWidths = "50;;60;150;25;;;125"
End Sub
 
For x = 1 To 1000000 neden o kadar satır exceli zorluyorsunuz
sonsatır = WorksheetFunction.CountA(Worksheets("GİDENEVRAK").Range("A:A")) + 1 aynı yer ise 1000000 yerine sonsatır yazarsanız excel rahatlar başka sayfa sütün değeri ise WorksheetFunction.CountA(Worksheets("GİDENEVRAK").Range("A:A")) + 1 siyah yerleri değiştirin.
 
Geri
Üst