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

Katılım
21 Ocak 2013
Mesajlar
422
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.
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Hangi satırda veriyor bu hatayı?
 

Greenblacksea53

Altın Üye
Katılım
5 Ocak 2019
Mesajlar
572
Excel Vers. ve Dili
Ofis 365 Tr
Altın Üyelik Bitiş Tarihi
05-01-2025
F8 yaparak kodları manuel olarak ileri giderseniz hata satırını verecektir. Yada dosyanızı paylaşın ki size yardımcı olalım.
 
Katılım
21 Ocak 2013
Mesajlar
422
Excel Vers. ve Dili
2010
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
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
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.
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
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
 

Greenblacksea53

Altın Üye
Katılım
5 Ocak 2019
Mesajlar
572
Excel Vers. ve Dili
Ofis 365 Tr
Altın Üyelik Bitiş Tarihi
05-01-2025
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.
 
Üst