Çözüldü "Application-defined or object-defined error" Uyarısı Hakkında.

yesimgurol

Altın Üye
Katılım
8 Aralık 2011
Mesajlar
942
Excel Vers. ve Dili
Excel 2016,32bit
Altın Üyelik Bitiş Tarihi
18-11-2024
Merhaba,

Çalışma dosyamda, "DepoGiris, Satıs ve Cıkıs" sayfaları mevcut ve her sayfa içerisinde ComboBox ve Textbox'lar bulunuyor. Bunlara ek olarak "Stok" sayfasına aşağıda bulunan (Sn.Ziynettin bey tarafından yapılan) kodlar ile veriler almaktayım.

Kod:
Private Sub CommandButton1_Click()
Dim syf(), i As Long, j As Long
Dim a(), b(), dc As Object
Dim s1 As Worksheet, s2 As Worksheet, s3 As Worksheet
Set s2 = Sheets("STOK")
Set dc = CreateObject("Scripting.Dictionary")
dc.comparemode = vbTextCompare
syf = Array("DepoGırıs", "CIKIS", "SATIS")
ReDim b(1 To Rows.Count, 1 To 12)
For Each sh In syf
    Set s1 = Sheets(sh)
    son = s1.Range("B" & Rows.Count).End(3).Row
    If son > 9 Then
        c = c + 1
        a = s1.Range("A9:J" & son).Value
        For i = 2 To UBound(a)
            krt = a(i, 2) & "|" & a(i, 4)
            If Not dc.exists(krt) Then
                dc(krt) = dc.Count + 1
                Say = dc.Count
            Else
                Say = dc(krt)
            End If
            b(Say, 1) = a(i, 2)
            b(Say, 2) = a(i, 4)
            
            If c = 1 Then b(Say, 3) = b(Say, 3) + a(i, 3)
            If c = 2 Then b(Say, 4) = b(Say, 4) + a(i, 3)
            b(Say, 5) = b(Say, 3) - b(Say, 4)
            b(Say, 6) = b(Say, 4)
            If c = 3 Then b(Say, 7) = b(Say, 7) + a(i, 3)
            b(Say, 8) = b(Say, 6) - b(Say, 7)
            b(Say, 10) = b(Say, 5)
            b(Say, 11) = b(Say, 8)
            b(Say, 12) = b(Say, 10) + b(Say, 11)
        Next i
    End If
Next sh

Application.ScreenUpdating = False
s2.Range("A3:L" & Rows.Count).ClearContents
s2.Range("A3:L" & Rows.Count).ClearFormats
If dc.Count > 0 Then
    Dim alan As Range
    Set alan = Union(s2.[A3].Resize(dc.Count, 8), s2.[J3].Resize(dc.Count, 3))
    alan.Borders.Color = rgbSilver
    s2.[A3].Resize(dc.Count, 12) = b
End If
Application.ScreenUpdating = True
MsgBox "İşlem tamam.", vbInformation
End Sub
Kodlar işlevini gayet güzel yapmakla birlikte bazen aşağıdaki hata mesajını alıyorum.
248374

Çıkan hata mesajına " End" deyip sonrasında yukardaki kodu çalıştırdığımda kod sorunsuz çalışmakta. "Debug" dediğimde ise sayfalarda bulunan ComboBox_Change kısmında aşağıdaki satırı işaretliyor.

248375

Şunu fark ettim ki, "DepoGiris, Satıs ve Cıkıs" sayfalarında bulunan "ComboBox1" lerin herhangi birinde değer olduğunda yukardaki kodu çalıştırdığımda bahsetmiş olduğum hata mesajını veriyor.

Çözüm olarak ne yapılabilir acaba.
 

Ekli dosyalar

yesimgurol

Altın Üye
Katılım
8 Aralık 2011
Mesajlar
942
Excel Vers. ve Dili
Excel 2016,32bit
Altın Üyelik Bitiş Tarihi
18-11-2024
Tekrar merhaba,
Hata mesajına "end" dediğimde kod sorunsuz çalıştığından acaba bu hatayı görmezden gel mantığı gibi bir şey yapılabilir mi ?:-(
 

AdemCan

Altın Üye
Destek Ekibi
Katılım
1 Eylül 2008
Mesajlar
1,376
Excel Vers. ve Dili
2019 TR
Merhaba,
Private Sub ComboBox1_Change() kodlarında urun = ComboBox1.Value satırından sonra If urun = "" Then Exit Sub satırını ekleyin, Stok sayfasındaki kodları çalıştırdığınızda hata vermeden işlemi sonuçlandırır.
 

yesimgurol

Altın Üye
Katılım
8 Aralık 2011
Mesajlar
942
Excel Vers. ve Dili
Excel 2016,32bit
Altın Üyelik Bitiş Tarihi
18-11-2024
Merhaba,
Private Sub ComboBox1_Change() kodlarında urun = ComboBox1.Value satırından sonra If urun = "" Then Exit Sub satırını ekleyin, Stok sayfasındaki kodları çalıştırdığınızda hata vermeden işlemi sonuçlandırır.
Adem bey,
Çok teşekkür ederim ilginize. Evet şimdi hatayı almıyorum artık tamamdır. Saygılarımı sunarım. İyi çalışmalar.
 

AdemCan

Altın Üye
Destek Ekibi
Katılım
1 Eylül 2008
Mesajlar
1,376
Excel Vers. ve Dili
2019 TR
Rica ederim, saygılar.
 
Üst