• DİKKAT

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

Soru Combobox ile sayfa seçiminde listview1'e veri alamıyorum.

  • Konbuyu başlatan Konbuyu başlatan s.savas
  • Başlangıç tarihi Başlangıç tarihi
Katılım
12 Ocak 2009
Mesajlar
838
Excel Vers. ve Dili
2003
Merhaba arkadaşlar.
Konu başlığında da belirttiğim üzere userformda bulunan combobox5 ile sekmeler arası seçim yapıyorum ancak geçiş yaptığım sekmeden userformda bulunan listview1'e veri alamıyorum.
Normalde listview1'e bu kod ile veri alıyorum.
Kod:
Set sh = Sheets("OCAK 2020")
son = sh.Cells(65536, 2).End(xlUp).Row
Burada sekme adını combobox5'e bağladığımda hata veriyor, burasını geçemedim.
Kod:
Set sh = Sheets(ComboBox5.Text).Select
son = sh.Cells(65536, 2).End(xlUp).Row
Yardımcı olacak arkadaşlara teşekkür ederim.
 

Ekli dosyalar

Burada select ifadesini kaldırıp deneyin.
Kod:
Set sh = Sheets(ComboBox5.Text).Select
 
comboboxtan seçtiğiniz sayfa dosyanızda yok.:cool:
 
comboboxtan seçtiğiniz sayfa dosyanızda yok.:cool:
Hocam dosyamı tamamlamadım. Dolayısıyla combobox5'te listelenen isimlerin tamamına ait sekmeleri oluşturmadım. Kodların hata verip vermeyeceğini görmek için 3 sekme oluşturdum.
OCAK 2020, ŞUBAT 2020, MART 2020 şeklinde. Şayet hata bundan dolayı geliyorsa eksik sekmeleri oluşturmak kolay.
 
Oluşturmadığınız sekmeyi seçmeyin.
Öyle bir deneyin.:cool:
 
Hata vermeye devem ediyormu?
 
Yarın vaktim olursa bakarım.
 
Dim syf as Worksheet
syf = Combobox5.Text
Set sh = syf
son = sh.Cells(65536, 2).End(xlUp).Row

şeklinde dener misiniz
 
Dosyanız ektedir.:cool:
Hocam elinize emeğinize sağlık.
Şu iki kod arasındaki farkı anlayamadım, buradaki espri nedir hocam. Normalde UserForm_Initialize kod bloğunda hata verirken diğer kod bloğunda hata vermeden çalıştı.
Kod:
Private Sub UserForm_Initialize()
With Me.ListView1
  .Gridlines = True
  .FullRowSelect = True
  .View = lvwReport
  .ListItems.Clear
  .ColumnHeaders.Clear

End With
With ListView1
.View = lvwReport
.ColumnHeaders.Add , , "no ", 0
.ColumnHeaders.Add , , "S.NO", 30, lvwColumnCenter
.ColumnHeaders.Add , , "TARİH", 60, lvwColumnCenter
.ColumnHeaders.Add , , "KATEGORİ", 50, lvwColumnCenter
.ColumnHeaders.Add , , "ALT KATEGORİ", 70, lvwColumnCenter
.ColumnHeaders.Add , , "HARCAMA TÜRÜ", 70, lvwColumnCenter
.ColumnHeaders.Add , , "HARCAMA KALEMİ", 80, lvwColumnCenter
.ColumnHeaders.Add , , "HARCAMA TUTARI", 80, lvwColumnCenter
.ColumnHeaders.Add , , "TAKSİT TUTARI", 70, lvwColumnCenter
.ColumnHeaders.Add , , "TAKSİT SAYISI", 70, lvwColumnCenter
.ColumnHeaders.Add , , "ÖDENEN TAKSİT", 70, lvwColumnCenter
.ColumnHeaders.Add , , "KALAN TAKSİT", 70, lvwColumnCenter
.ColumnHeaders.Add , , "KALAN TUTAR", 70, lvwColumnCenter

.FullRowSelect = True
.Gridlines = True
End With

Set sh = Sheets(ComboBox5.Value)
son = sh.Cells(65536, 2).End(xlUp).Row
ListView1.ListItems.Clear
For i = 2 To son
If sh.Cells(i, 2) <> "" Then
Set L = ListView1.ListItems.Add

L.Text = i
L.SubItems(1) = sh.Cells(i, 1) 'tarih
L.SubItems(2) = sh.Cells(i, 2) 'kategori
L.SubItems(3) = sh.Cells(i, 3) 'alt kategori
L.SubItems(4) = sh.Cells(i, 4) 'harcama türü
L.SubItems(5) = sh.Cells(i, 5) 'harcama kalemi
L.SubItems(6) = sh.Cells(i, 6) 'tutarı
L.SubItems(7) = sh.Cells(i, 7) 'taksit sayısı
L.SubItems(8) = sh.Cells(i, 8) 'ödenen taksit
L.SubItems(9) = sh.Cells(i, 9) 'kalan taksit
L.SubItems(10) = sh.Cells(i, 10) 'kalan tutar
L.SubItems(11) = sh.Cells(i, 11) 'kalan borç

End If
Next i

For i = 1 To 12
    ComboBox5.AddItem Format(DateSerial(Year(Date), i, 1), "mmmm yyyy")
Next i
ComboBox5.ListIndex = 0

TextBox7.Value = WorksheetFunction.Count(Range("A1:A65500")) + 1
End Sub
Kod:
Private Sub UserForm_Initialize()

With Me.ListView1
  .Gridlines = True
  .FullRowSelect = True
  .View = lvwReport
  .ListItems.Clear
  .ColumnHeaders.Clear

End With
With ListView1
.View = lvwReport
.ColumnHeaders.Add , , "no ", 0
.ColumnHeaders.Add , , "S.NO", 30, lvwColumnCenter
.ColumnHeaders.Add , , "TARİH", 60, lvwColumnCenter
.ColumnHeaders.Add , , "KATEGORİ", 50, lvwColumnCenter
.ColumnHeaders.Add , , "ALT KATEGORİ", 70, lvwColumnCenter
.ColumnHeaders.Add , , "HARCAMA TÜRÜ", 70, lvwColumnCenter
.ColumnHeaders.Add , , "HARCAMA KALEMİ", 80, lvwColumnCenter
.ColumnHeaders.Add , , "HARCAMA TUTARI", 80, lvwColumnCenter
.ColumnHeaders.Add , , "TAKSİT TUTARI", 70, lvwColumnCenter
.ColumnHeaders.Add , , "TAKSİT SAYISI", 70, lvwColumnCenter
.ColumnHeaders.Add , , "ÖDENEN TAKSİT", 70, lvwColumnCenter
.ColumnHeaders.Add , , "KALAN TAKSİT", 70, lvwColumnCenter
.ColumnHeaders.Add , , "KALAN TUTAR", 70, lvwColumnCenter

.FullRowSelect = True
.Gridlines = True
End With

For i = 1 To 12
    ComboBox5.AddItem Format(DateSerial(Year(Date), i, 1), "mmmm yyyy")
Next i
ComboBox5.ListIndex = 0

Call listele
TextBox7.Value = WorksheetFunction.Count(Range("A1:A65500")) + 1
End Sub
Kod:
Sub listele()

Set sh = Sheets(ComboBox5.Value)
son = sh.Cells(65536, 2).End(xlUp).Row
ListView1.ListItems.Clear
For i = 2 To son
If sh.Cells(i, 2) <> "" Then
Set L = ListView1.ListItems.Add

L.Text = i
L.SubItems(1) = sh.Cells(i, 1) 'tarih
L.SubItems(2) = sh.Cells(i, 2) 'kategori
L.SubItems(3) = sh.Cells(i, 3) 'alt kategori
L.SubItems(4) = sh.Cells(i, 4) 'harcama türü
L.SubItems(5) = sh.Cells(i, 5) 'harcama kalemi
L.SubItems(6) = sh.Cells(i, 6) 'tutarı
L.SubItems(7) = sh.Cells(i, 7) 'taksit sayısı
L.SubItems(8) = sh.Cells(i, 8) 'ödenen taksit
L.SubItems(9) = sh.Cells(i, 9) 'kalan taksit
L.SubItems(10) = sh.Cells(i, 10) 'kalan tutar
L.SubItems(11) = sh.Cells(i, 11) 'kalan borç

End If
Next i

TextBox7.Value = WorksheetFunction.Count(Range("A1:A65500")) + 1
End Sub
 
Comboboxta sayfalar listelenmiyordu.
Ben listele diye bir prosedür yazdım.O prosedure göre listeleme yapıyorum.:cool:
 
Geri
Üst