Listbox'da tuhaf hata

seddur

Altın Üye
Katılım
12 Nisan 2012
Mesajlar
531
Excel Vers. ve Dili
Microsoft office professional plus 2019
Altın Üyelik Bitiş Tarihi
18-12-2024
Merhabalar.Ekli dosyada görüleceği üzere listbox1'de veriler sıfırıncı ve birinci sutunlarda listeleme yaparken 2.sutununda listelenmiyor,hata veriyor..Listbox'ı silip yeniden eklersem düzeliyor ama bir müddet sonra yeniden hata veriyor.Yardımcı olabilirseniz sevinirim.

 

seddur

Altın Üye
Katılım
12 Nisan 2012
Mesajlar
531
Excel Vers. ve Dili
Microsoft office professional plus 2019
Altın Üyelik Bitiş Tarihi
18-12-2024
Aşağıdaki kodu çalştırdığımda listbox 2.sutununa kayıt yapmada sorun yaşıyorum daha doğrusu listboxı başka kodlarlada kullanıyorum ama bu kodu çalıştırdığımda diğer 2.sutunda listeleme yapan kodlar hata vermeye başlıyor.listboxı silip yeniden eklediğimde çalışıyor ama sonra yeniden hata veriyor. Kodun neresi bu hataya yol açıyor bu konuda yardımcı olabilir misiniz?

Dim Sh As Worksheet, My_Month As Object
Dim My_Data As Variant, X As Long, Y As Long

Set Sh = Sheets("Anasayfa")
Set My_Month = VBA.CreateObject("Scripting.Dictionary")

My_Data = Sh.Range("A15:N" & Sh.Cells(Sh.Rows.Count, 1).End(3).Row).Value

ReDim My_List(1 To 2, 1 To 1)

For X = LBound(My_Data, 1) To UBound(My_Data, 1)
If Sayfa11.ComboBox1 = "Tümü" And Sayfa11.ComboBox2 = "Tümü" Then
If Not My_Month.Exists(Format(My_Data(X, 3), "mmmm")) Then
Y = Y + 1
My_Month.Add Format(My_Data(X, 3), "mmmm"), Y
ReDim Preserve My_List(1 To 2, 1 To Y)
My_List(1, Y) = Format(My_Data(X, 3), "mmmm")
My_List(2, Y) = Format(My_Data(X, 7), "#,##0 TL")
Else
My_List(2, My_Month.Item(Format(My_Data(X, 3), "mmmm"))) = Format(Replace(My_List(2, My_Month.Item(Format(My_Data(X, 3), "mmmm"))), " TL", "") + My_Data(X, 7), "#,##0 TL")

End If
ElseIf Sayfa11.ComboBox1 = "Tümü" And Sayfa11.ComboBox2 <> "Tümü" Then
If Year(My_Data(X, 3)) = Val(Sayfa11.ComboBox2) Then
If Not My_Month.Exists(Format(My_Data(X, 3), "mmmm")) Then
Y = Y + 1
My_Month.Add Format(My_Data(X, 3), "mmmm"), Y
ReDim Preserve My_List(1 To 2, 1 To Y)
My_List(1, Y) = Format(My_Data(X, 3), "mmmm")
My_List(2, Y) = Format(My_Data(X, 7), "#,##0 TL")
Else
My_List(2, My_Month.Item(Format(My_Data(X, 3), "mmmm"))) = _
Format(Replace(My_List(2, My_Month.Item(Format(My_Data(X, 3), "mmmm"))), " TL", "") + My_Data(X, 7), "#,##0 TL")
End If
End If
ElseIf Sayfa11.ComboBox1 <> "Tümü" And Sayfa11.ComboBox2 = "Tümü" Then
If Format(My_Data(X, 3), "mmmm") = Sayfa11.ComboBox1 Then
If Not My_Month.Exists(Format(My_Data(X, 3), "mmmm")) Then
Y = Y + 1
My_Month.Add Format(My_Data(X, 3), "mmmm"), Y
ReDim Preserve My_List(1 To 2, 1 To Y)
My_List(1, Y) = Format(My_Data(X, 3), "mmmm")
My_List(2, Y) = Format(My_Data(X, 7), "#,##0 TL")
Else
My_List(2, My_Month.Item(Format(My_Data(X, 3), "mmmm"))) = _
Format(Replace(My_List(2, My_Month.Item(Format(My_Data(X, 3), "mmmm"))), " TL", "") + My_Data(X, 7), "#,##0 TL")
End If
End If
ElseIf Sayfa11.ComboBox1 <> "Tümü" And Sayfa11.ComboBox2 <> "Tümü" Then
If Format(My_Data(X, 3), "mmmm") = Sayfa11.ComboBox1 And Year(My_Data(X, 3)) = Val(Sayfa11.ComboBox2) Then
If Not My_Month.Exists(Format(My_Data(X, 3), "mmmm")) Then
Y = Y + 1
My_Month.Add Format(My_Data(X, 3), "mmmm"), Y
ReDim Preserve My_List(1 To 2, 1 To Y)
My_List(1, Y) = Format(My_Data(X, 3), "mmmm")
My_List(2, Y) = Format(My_Data(X, 7), "#,##0 TL")
Else
My_List(2, My_Month.Item(Format(My_Data(X, 3), "mmmm"))) = _
Format(Replace(My_List(2, My_Month.Item(Format(My_Data(X, 3), "mmmm"))), " TL", "") + My_Data(X, 7), "#,##0 TL")
End If
End If
End If
Next

With Sayfa11
'.ListBox1.Clear
.ListBox1.ColumnCount = 4
.ListBox1.ColumnWidths = "100;60"
.ListBox1.Height = 150

.ListBox1.Column = My_List
End With


Set Sh = Nothing
Set My_Month = Nothing
 
Son düzenleme:

seddur

Altın Üye
Katılım
12 Nisan 2012
Mesajlar
531
Excel Vers. ve Dili
Microsoft office professional plus 2019
Altın Üyelik Bitiş Tarihi
18-12-2024
ReDim Preserve My_List(1 To 2, 1 To Y) satırlarını ReDim Preserve My_List(1 To 4, 1 To Y) şeklinde düzelterek sorunu çözdüm.
 
Üst