userfomda debug hatası veriyor?

Katılım
5 Nisan 2007
Mesajlar
409
Excel Vers. ve Dili
excel 2010 tr
EKLİ PROGRAMDAKİ debug hatasının giderilmesi için ne yapabiliriz?
şimdi iki örnek ekledim 1. örnek boş haldeyken debug veriyor yani veli ve çocuk butonuna tıklayınca debug veriyor ama 2. örnek normal çalışıyor çünkü bilgiler dolu peki doluyken normal çalışan bu program boşken neden debug veriyor?
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,591
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Formu açmak isterken sayfadaki bilgileri soruluyorsunuz. Doğal olarak sayfa boş olduğu için formun açılma esnasında hata oluşuyor. Bu hatayı önlemek için Veli_Listele isimli prosedürü aşağıdaki şekilde değiştirmeniz gerekmektedir. Yapılan düzenleme kırmızı renkle belirtilmiştir.

Umarım faydası olur.

Kod:
Sub Veli_Listele()
Dim i%, j%, x%, y%, veliS%
Dim xx1 As String, yy1 As String, xx2 As String, yy2 As String
Dim arrVeliA() As Variant 'Ad'a göre sıralı dizi
Dim arrVeliS() As Variant 'Soyada göre sıralı dizi
Set shV = Sheets("Veli")
veliS = shV.Cells(65536, 1).End(xlUp).Row - 1
[COLOR=red]If veliS = 0 Then Exit Sub[/COLOR]
ReDim arrVeliA(1 To veliS, 1 To 2)
ReDim arrVeliS(1 To veliS, 1 To 2)
For i = 2 To shV.Cells(65536, 1).End(xlUp).Row
       y = y + 1
       arrVeliA(y, 1) = shV.Cells(i, 2)
       arrVeliA(y, 2) = shV.Cells(i, 3)
       arrVeliS(y, 1) = shV.Cells(i, 3)
       arrVeliS(y, 2) = shV.Cells(i, 2)
Next i
For i = 1 To veliS - 1
    For j = i + 1 To veliS
        If arrVeliA(i, 1) & " " & arrVeliA(i, 2) > arrVeliA(j, 1) & " " & arrVeliA(j, 2) Then
           xx1 = arrVeliA(i, 1)
           yy1 = arrVeliA(i, 2)
           arrVeliA(i, 1) = arrVeliA(j, 1)
           arrVeliA(i, 2) = arrVeliA(j, 2)
           arrVeliA(j, 1) = xx1
           arrVeliA(j, 2) = yy1
        End If
        If arrVeliS(i, 1) & " " & arrVeliS(i, 2) > arrVeliS(j, 1) & " " & arrVeliS(j, 2) Then
           xx2 = arrVeliS(i, 1)
           yy2 = arrVeliS(i, 2)
           arrVeliS(i, 1) = arrVeliS(j, 1)
           arrVeliS(i, 2) = arrVeliS(j, 2)
           arrVeliS(j, 1) = xx2
           arrVeliS(j, 2) = yy2
        End If
    Next j
Next i
With frm_Cocuk
     .ComboBox7.Clear
     .ComboBox7.List = arrVeliA
     .ComboBox8.Clear
     .ComboBox8.List = arrVeliS
End With
Set shV = Nothing
End Sub
 
Üst