• DİKKAT

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

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

Katılım
8 Aralık 2011
Mesajlar
964
Excel Vers. ve Dili
Excel 2016,32bit
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

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 ?:-(
 
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.
 
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.
 
Rica ederim, saygılar.
 
Geri
Üst