yesimgurol
Altın Üye
- Katılım
- 8 Aralık 2011
- Mesajlar
- 952
- Excel Vers. ve Dili
- Excel 2016,32bit
- Altın Üyelik Bitiş Tarihi
- 14-02-2026
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.
Kodlar işlevini gayet güzel yapmakla birlikte bazen aşağıdaki hata mesajını alıyorum.

Çı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.

Ş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.
Ç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

Çı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.

Ş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
-
465.1 KB Görüntüleme: 8