• DİKKAT

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

dinamik listview sutun başlığı

kemal turan

Altın Üye
Katılım
10 Haziran 2011
Mesajlar
1,677
Excel Vers. ve Dili
Excel 2010 32 bit
merhaba,
aşağıdaki kodda combobox1.change olayında bir rapor sayfasınıd sutun başlıklarını değiştirip değişen verileri listview e alıyorum.
sorun kodun
Kod:
With ListView1
    .View = lvwReport  
     .ColumnHeaders.Add , , SH.Range("A1"), 145
     .ColumnHeaders.Add , , SH.Range("B1"), 60, 1
........
bölümü ilk defada sutun verilerini alıyor fakat veri değiştiğinde sutun başlıklarını değiştirmiyor.

Kod:
Private Sub ComboBox1_Change()
Set SH = Sheets("AYODEMETABLOSU")
Sheets("AYODEMETABLOSU").Range("A1").Value = ComboBox1.Value
If ComboBox1.Value = 2016 Then
SH.Range("b1") = Sheets("tanımlar").Range("w2").Value
SH.Range("c1") = Sheets("tanımlar").Range("w3").Value
SH.Range("d1") = Sheets("tanımlar").Range("w4").Value
SH.Range("e1") = Sheets("tanımlar").Range("w5").Value
SH.Range("f1") = Sheets("tanımlar").Range("w6").Value
SH.Range("g1") = Sheets("tanımlar").Range("w7").Value
SH.Range("h1") = Sheets("tanımlar").Range("w8").Value
SH.Range("ı1") = Sheets("tanımlar").Range("w9").Value
SH.Range("j1") = Sheets("tanımlar").Range("w10").Value
SH.Range("k1") = Sheets("tanımlar").Range("w11").Value
SH.Range("l1") = Sheets("tanımlar").Range("w12").Value
SH.Range("m1") = Sheets("tanımlar").Range("w13").Value

End If
If ComboBox1.Value = 2017 Then
SH.Range("b1") = Sheets("tanımlar").Range("w14").Value
SH.Range("c1") = Sheets("tanımlar").Range("w15").Value
SH.Range("d1") = Sheets("tanımlar").Range("w16").Value
SH.Range("e1") = Sheets("tanımlar").Range("w17").Value
SH.Range("f1") = Sheets("tanımlar").Range("w18").Value
SH.Range("g1") = Sheets("tanımlar").Range("w19").Value
SH.Range("h1") = Sheets("tanımlar").Range("w20").Value
SH.Range("ı1") = Sheets("tanımlar").Range("w21").Value
SH.Range("j1") = Sheets("tanımlar").Range("w22").Value
SH.Range("k1") = Sheets("tanımlar").Range("w23").Value
SH.Range("l1") = Sheets("tanımlar").Range("w24").Value
SH.Range("m1") = Sheets("tanımlar").Range("w24").Value
End If
If ComboBox1.Value = 2018 Then
SH.Range("b1") = Sheets("tanımlar").Range("w25").Value
SH.Range("c1") = Sheets("tanımlar").Range("w26").Value
SH.Range("d1") = Sheets("tanımlar").Range("w27").Value
SH.Range("e1") = Sheets("tanımlar").Range("w28").Value
SH.Range("f1") = Sheets("tanımlar").Range("w29").Value
SH.Range("g1") = Sheets("tanımlar").Range("w30").Value
SH.Range("h1") = Sheets("tanımlar").Range("w31").Value
SH.Range("ı1") = Sheets("tanımlar").Range("w32").Value
SH.Range("j1") = Sheets("tanımlar").Range("w33").Value
SH.Range("k1") = Sheets("tanımlar").Range("w34").Value
SH.Range("l1") = Sheets("tanımlar").Range("w35").Value
SH.Range("m1") = Sheets("tanımlar").Range("w36").Value
End If
Sheets("AYODEMETABLOSU").Columns.AutoFit 
With ListView1
    .View = lvwReport  
     .ColumnHeaders.Add , , SH.Range("A1"), 145
     .ColumnHeaders.Add , , SH.Range("B1"), 60, 1
     .ColumnHeaders.Add , , SH.Range("C1"), 60, 1
     .ColumnHeaders.Add , , SH.Range("D1"), 60, 1
     .ColumnHeaders.Add , , SH.Range("E1"), 60, 1
     .ColumnHeaders.Add , , SH.Range("F1"), 60, 1
     .ColumnHeaders.Add , , SH.Range("G1"), 60, 1
     .ColumnHeaders.Add , , SH.Range("H1"), 60, 1
     .ColumnHeaders.Add , , SH.Range("I1"), 60, 1
     .ColumnHeaders.Add , , SH.Range("J1"), 60, 1
      .ColumnHeaders.Add , , SH.Range("K1"), 60, 1
      .ColumnHeaders.Add , , SH.Range("L1"), 60, 1
      .ColumnHeaders.Add , , SH.Range("M1"), 60, 1
      .ColumnHeaders.Add , , SH.Range("N1"), 70, 1
      
   .FullRowSelect = True 'liste elemanını seçtiğinizde tüm satır seçili olur.
   .Gridlines = True 'Listeyi çizgili yapar.
End With
ListeGuncelle
End Sub
 
Selâm Kemal Bey,

Bu mesajı; Excel Arşivi'nde Excel ile ilgili her konuda örnek dosya bulabileceğinizi göstermek için yazıyorum.

Saygılar
 
Merhaba
"Listview" e veriler "UserForm_Initialize" ile alınıyor ise yukarıdaki kodlarınızın; aşağıdaki aralıktaki bölümlerini değişerek deneyelim.
Kod:
[SIZE="2"]
'........
'.....Kodlarınız
'....
End If
Sheets("AYODEMETABLOSU").Columns.AutoFit 

With ListView1
[COLOR="Blue"]    Dim s As Integer[/COLOR]
  [COLOR="Blue"]  For s = 1 To 14
    .ColumnHeaders(s).Text = Cells(1, s)
Next[/COLOR]
   .FullRowSelect = True 'liste elemanını seçtiğinizde tüm satır seçili olur.
   .Gridlines = True 'Listeyi çizgili yapar.
End With

ListeGuncelle
End Sub[/SIZE]
 
Merhaba Plint hocam,
Sorunu Murat Hocamın önerisi ile .ListItems.Clear ekleyerek çözdüm.
Teşekkür ederim.
 
Geri
Üst