Listview da Sütun gizleme

Katılım
30 Mart 2006
Mesajlar
127
Excel Vers. ve Dili
Excel 2003 Tr
Merhaba,

Forumda bulduğum bir örneği kendime uyarlamaya çalışıyorum, fakat görünmesini istemediğim sütunları bir türlü kaybedemedim bir kod buldum fakat oda olmadı,

Bir de ComboBox6 da sütünların adları geliyor A,B,C,D diye bunları sütun başlıkları şeklinde nasıl yapabilirim,
yardımlarınız için şimdiden teşekkür ederim

UserForm_Initialize bölümüne bu kodları yazdım fakat olmadı
ListView1.ColumnHeaders(2).Width = 0
ListView1.ColumnHeaders(5).Width = 0
ListView1.ColumnHeaders(7).Width = 0
 

Ekli dosyalar

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,350
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
Merhaba;

Elemanların "Visible" özelliği olmadığı için ancak belirttiğiniz gibi genişliği "0" a eşitleyerek yapabilirsiniz. Bu da fare ile genişletilebildiğinden etkin bir çözüm değil.

Ancak şu da var; gizli sütunda olmasını istediğiniz veriyi her satırın (elemanın) "Tag" özelliğine de verebilirsiniz. Ben böyle kullandım. Gizli bir sutuna gerek kalmadı.

Ayrıca, modul düzeyinde dinamik bir "array" tanımlayıp, nesneye eleman eklerken gizli sütuna yazmayı istediğiniz veriyi array' a da yazdırıp oradan da çağırabilirsiniz.
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,800
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
UserForm_Initialize kodunu aşağıdaki gibi yapın

Kod:
Private Sub UserForm_Initialize()

tutar = GetSetting("tamekran", "deger", "tutar", 0)

If tutar > 0 Then
On Error Resume Next
büyüt
ListeGuncelle1
ListeGuncelle2
güncellemeler1
güncellemeler2
Exit Sub
Else
Me.Caption = ActiveSheet.Name
ComboBox1.Value = Sheets(ActiveSheet.Name).Name
ListeGuncelle1
ListeGuncelle2
güncellemeler1
güncellemeler2
End If
For i = 1 To 207
t = Columns(i).Address(0, 0)
ver = Left(t, InStr(t, ":") - 1)
On Error Resume Next
ComboBox6.AddItem [COLOR="Red"]Cells(1, i) [/COLOR]'ver
Next
ComboBox6.Text = [COLOR="red"]Cells(1, 2)[/COLOR] '"B"
sat = 2


End Sub
kolonları gizlemek içinde Private Sub güncellemeler1 kodunun aen altına ekleyiniz.

Kod:
Private Sub güncellemeler1()

ser1 = Frame1.ScrollWidth
ser2 = ListView1.Width

Set Sh = Sheets(ActiveSheet.Name)

For say5 = 2 To 40
Controls("TextBox" & say5).Visible = False
Controls("TextBox" & say5 + 49).Visible = False
Next say5

mert = 2
ekle = 2

For a = 1 To ListView1.ColumnHeaders.Count

If a = 1 Then
On Error Resume Next
ListView1.ColumnHeaders(a).Width = 1
ListView1.ColumnHeaders(a + 1).Width = Sh.Columns(1).Width + ekle
TextBox1.Visible = True
TextBox51.Visible = True
TextBox1.Left = mert
TextBox51.Left = mert
TextBox1.Width = Sh.Columns(a).Width + ekle
TextBox51.Width = Sh.Columns(a).Width + ekle
mert = mert + Sh.Columns(a).Width + ekle
Else
ListView1.ColumnHeaders(a).Width = Sh.Columns(a + Label1 - 3).Width + ekle
Controls("TextBox" & a).Visible = True
Controls("TextBox" & a).Left = mert
Controls("TextBox" & a).Width = Sh.Columns(a + Label1 - 2).Width + ekle

Controls("TextBox" & a + 50).Visible = True
Controls("TextBox" & a + 50).Left = mert
Controls("TextBox" & a + 50).Width = Sh.Columns(a + Label1 - 2).Width + ekle
mert = mert + Sh.Columns(a + Label1 - 2).Width + ekle
End If
Next

If mert > 720 Then
Frame1.ScrollBars = fmScrollBarsHorizontal
Frame1.ScrollWidth = mert + 14
Else
Frame1.ScrollWidth = mert
Frame1.ScrollBars = fmScrollBarsNone
End If
ListView1.Width = Frame1.ScrollWidth

If ser2 > Frame1.ScrollWidth Then
ListView1.Width = ser2
End If


ListView1.ColumnHeaders(2).Width = Sh.Columns(1).Width
[COLOR="red"]ListView1.ColumnHeaders(2).Width = 0
ListView1.ColumnHeaders(5).Width = 0
ListView1.ColumnHeaders(7).Width = 0[/COLOR]
End Sub
 
Katılım
30 Mart 2006
Mesajlar
127
Excel Vers. ve Dili
Excel 2003 Tr
Teşekkürler elinize sağlık istediğim gibi olmuş, Fakat combobox6 da görünmesini istemediğim sütunlarda çıkıyor onu nasıl engelleyebilirim ?
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,800
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Teşekkürler elinize sağlık istediğim gibi olmuş, Fakat combobox6 da görünmesini istemediğim sütunlarda çıkıyor onu nasıl engelleyebilirim ?
ListView nesnesindeki sütunları gizlediğiniz için combobox6 nesnesindeki istenmeyen sütunları silerseniz bu nesneden çağrılan veriler kayacaktır ve düzenli veri akışı olmayacaktır bunun yerine sayfanızın bir kopyasını alın ve istenmeyen sütunları silin userformu da yeni açtığınız sayfada çalıştırın.
 

crpzz37

Altın Üye
Katılım
4 Kasım 2016
Mesajlar
90
Excel Vers. ve Dili
2010 versıyonunu kullanmaktayım makro dılınde yazım yapmaktayım
Altın Üyelik Bitiş Tarihi
05-04-2027
Merhaba;

Elemanların "Visible" özelliği olmadığı için ancak belirttiğiniz gibi genişliği "0" a eşitleyerek yapabilirsiniz. Bu da fare ile genişletilebildiğinden etkin bir çözüm değil.

Ancak şu da var; gizli sütunda olmasını istediğiniz veriyi her satırın (elemanın) "Tag" özelliğine de verebilirsiniz. Ben böyle kullandım. Gizli bir sutuna gerek kalmadı.

Ayrıca, modul düzeyinde dinamik bir "array" tanımlayıp, nesneye eleman eklerken gizli sütuna yazmayı istediğiniz veriyi array' a da yazdırıp oradan da çağırabilirsiniz.
Hocam selamunaleyküm

Demiş olduğunuz işleme benimde gerçekten çok ihtiyacım var ama listview de tag özelliğini kullanmayı bilmiyorum bir örnekle gösterebilirmisiniz.
ben verileri aşağıdaki gibi alıyorum. SubItems(10)'a tag olarak nasıl alabilrim worksheetimdeki 13.sütunu mesela şimdiden teşekkürler


Dim sonsatır As Integer
sonsatır = WorksheetFunction.CountA(Worksheets("urunler").Range("a:A"))

Dim x As Integer
Dim Liste As ListItem
urunler.ListView1.ListItems.Clear
For i = 2 To sonsatır
x = x + 1
Set Liste = urunler.ListView1.ListItems.Add(, , x + 1) 'SIRA NO
Liste.SubItems(1) = Cells(i, 2).Value 'ÜRÜN KODU
Liste.SubItems(2) = Cells(i, 3).Value 'ÜRÜN ADI
Liste.SubItems(3) = Cells(i, 4).Value 'DETAY 1
Liste.SubItems(4) = Cells(i, 5).Value 'DETAY 2
Liste.SubItems(5) = Cells(i, 6).Value 'DETAY 3
Liste.SubItems(6) = Cells(i, 7).Value 'BİRİM
Liste.SubItems(7) = Cells(i, 8).Value 'AÇIKLAMA
Liste.SubItems(8) = Int(Cells(i, 10).Value) 'GİRİŞ
Liste.SubItems(9) = Int(Cells(i, 11).Value) 'ÇIKIŞ
Liste.SubItems(10) = Int(Cells(i, 12).Value) 'KALAN
Next i
 
Üst