Listview kullanımı

ockucukay

Altın Üye
Katılım
29 Aralık 2005
Mesajlar
862
Excel Vers. ve Dili
Office 365 Türkçe
Altın Üyelik Bitiş Tarihi
02-07-2025
Herkese merhaba

Ekte göreceğiniz dosyada (sayın ripek arkadaşımın database çalışmasını biraz değiştirdim) bir tekliflendirme database kurmaya çalıştım. Problemim şu: Userform5'de bulunan listbox yerine list view kullanmak istiyorum.Listview ile database sayfasını listeleyip, her parçanın döküman klasörüne otomatik link açmak istiyorum. Ayrıca bir bul penceresi ekleyebilirsem çalışmalara daha rahat ulaşabilirim. Ama henüz bunları başaramadım, yardımlarınızı bekliyorum. Şimdiden teşekkür ederim.
 

ockucukay

Altın Üye
Katılım
29 Aralık 2005
Mesajlar
862
Excel Vers. ve Dili
Office 365 Türkçe
Altın Üyelik Bitiş Tarihi
02-07-2025
dosyayı eklemeyi unutmuşumi özür dilerim.
 

Mahmut Kök

Özel Üye
Katılım
14 Temmuz 2006
Mesajlar
878
Excel Vers. ve Dili
Excel 2007 - Türkçe
Merhaba, listview'in birkaç değişik gösterim seçeneği var, ben listbox'a benzer olanı seçerek size bir örnek hazırlamaya çalışacağım.

Bul düğmesi eklemekten kastınız Gözat düğmesi eklemek midir, bilgisayarınızda arama mı yapmak istiyorsunuz; yoksa çalıştığınız belgede veri araması mı yapacaksınız?
 

Mahmut Kök

Özel Üye
Katılım
14 Temmuz 2006
Mesajlar
878
Excel Vers. ve Dili
Excel 2007 - Türkçe
belgenizdeki userform5 üzerindeki listbox'ı silip, listview ekleyiniz ve aşağıdaki kodu, userform_activate olarak ekleyiniz. İstediğiniz gibi oluyorsa, geliştirilebilir.

Kod:
Private Sub UserForm_Activate()
Set s1 = Sheets("database")
ListView1.View = lvwReport
ListView1.FullRowSelect = True
ListView1.ListItems.Clear
ListView1.ColumnHeaders.Clear
For a = 1 To 16
ListView1.ColumnHeaders.Add , , s1.Cells(1, a)
Next
''''
For b = 1 To s1.Range("a65536").End(3).Row
ListView1.ListItems.Add , , s1.Cells(b, 1)
    For c = 2 To 16
    ListView1.ListItems(b).SubItems(c - 1) = s1.Cells(b, c)
    Next c
 
Next b
End Sub
 

ockucukay

Altın Üye
Katılım
29 Aralık 2005
Mesajlar
862
Excel Vers. ve Dili
Office 365 Türkçe
Altın Üyelik Bitiş Tarihi
02-07-2025
ilginize teşekkür ederim. kodu çalıştırdım ancak userformda "sıra no", "1" ve "2" nolu sütunlardan başka birşey çıkmadı.yanlış birşey yapmadım sanırım ama anladığım kadarıyla kodunuz a sütunun satırlarını sütun haline getirmiş, doğru mu anlamışım? nasıl düzeltebiliriz?
 

Mahmut Kök

Özel Üye
Katılım
14 Temmuz 2006
Mesajlar
878
Excel Vers. ve Dili
Excel 2007 - Türkçe
ekli dosyaya bakınız, kodlar bende sorunsuz çalışıyor.
 

ockucukay

Altın Üye
Katılım
29 Aralık 2005
Mesajlar
862
Excel Vers. ve Dili
Office 365 Türkçe
Altın Üyelik Bitiş Tarihi
02-07-2025
haklısınız sizin gönderdiğiniz dosya düzgün çalışıyor ama bendeki master dosyaya aldığımda söylediğim hatayı veriyor. Neyse sizden aldığım dosyayı kullanıyorum.
"Bul düğmesi eklemekten kastınız Gözat düğmesi eklemek midir, bilgisayarınızda arama mı yapmak istiyorsunuz; yoksa çalıştığınız belgede veri araması mı yapacaksınız?"
Bu sorunuzun cevabı belgede veri araması yaptırıp son durumu görmek istiyorum. Hatta üzerine çift tıklayınca maliyet çalışması açılsın istiyorum ama henüz seçilen satıra göre otomatik link nasıl oluşturulur bulamadım. Benim esasen beceremediğim başka bir şey var. sizinde gördüğünüz gibi userform1 ana form ve onun üzerinden açılan diğer alt formlar (userform2, userform3 vb) var. Userform1 üzerinden diğer userformları açtığımda otomatik olarak database sayfasını görüyorlar. oysa ben her userformun kendi sayfasını otomatik görmesini istiyorum, nasıl yapabilirim. Select metodunu denedim, ancak o zamanda comboboxlara atadığım veri alanı kayboluyor, yani comboboxlar boş açılıyor.başınızı ağrıtmadım umarım, ilginiz için tekrar teşekkürler.
 

Mahmut Kök

Özel Üye
Katılım
14 Temmuz 2006
Mesajlar
878
Excel Vers. ve Dili
Excel 2007 - Türkçe
Benim esasen beceremediğim başka bir şey var. sizinde gördüğünüz gibi userform1 ana form ve onun üzerinden açılan diğer alt formlar (userform2, userform3 vb) var. Userform1 üzerinden diğer userformları açtığımda otomatik olarak database sayfasını görüyorlar. oysa ben her userformun kendi sayfasını otomatik görmesini istiyorum, nasıl yapabilirim. Select metodunu denedim, ancak o zamanda comboboxlara atadığım veri alanı kayboluyor, yani comboboxlar boş açılıyor.

Sayın ockucukay; buraya aldığım sorunuzla ilgili olarak şu çözümü önerebilirim:

Her alan için (range veya cell) ilgili sayfaları belirtin. Mesela; range("A1") yerine; Sheets("Sayfa1").Range("a1") yazarsanız, sayfa1'seçmenize gerek kalmadan, Sayfa1'e ait işlemleri yapabilirsiniz. Hatta daha sık kullanılan yöntem şudur:

set s1=Sheets("Sayfa1")

dernesiz, s1.range("a1") yazmanız yeterli olacaktır. Mesela, userform1 üzerindeki textbox1'e Sayfa1'deki A1 hücresini yazdırmak istiyorsanız s1.range("a1") yazarsınız..

Çok acele oldu, kusura bakmayın...
 

ockucukay

Altın Üye
Katılım
29 Aralık 2005
Mesajlar
862
Excel Vers. ve Dili
Office 365 Türkçe
Altın Üyelik Bitiş Tarihi
02-07-2025
şu cevabınız bile ilaç gibi geldi, sağolun. ama başınızı ağrıtmaya devam edeceğim. sizinde dosyamda göreceğiniz gibi database sayfasının P sütununda bilgi klasörü linki var. excel sayfası üzerinde bu link otomatik oluşuyor, ancak sizin yaptırdığınız listview üzerinde sadece metin olarak görünüyor. excel sayfasındaki gibi link olması için ne yapmalıyım? ilginize ve yardımlarınıza tekrar tekrar teşekkürler.
 

ockucukay

Altın Üye
Katılım
29 Aralık 2005
Mesajlar
862
Excel Vers. ve Dili
Office 365 Türkçe
Altın Üyelik Bitiş Tarihi
02-07-2025
arkadaşlar bu konuda yardım edebilecek birisi var mı acaba?
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Listview nesnesi ile; hyperlinkleri tıpkı sayfa üzerindekiler gibi çalıştıramazsınız. Ama, dolambaçlı yöntemler bulunabilir. (Örneğin listview'in ilgili satırına çift tıklama ile veya özel bir butona basma ile, bahsettiğiniz hücredeki hyperlink olayı tetiklenebilir)

Eğer; listview yerine, OWC Spreadsheet nesnesi kullanırsanız, istediğinizi rahatlıkla yapabilirsiniz. Bu iş için; -tıpkı sayfa üzerinde olduğu gibi- OWC Spreadsheet üzerindeki ilgili hücreyi seçmeniz yeterli olur
 

ockucukay

Altın Üye
Katılım
29 Aralık 2005
Mesajlar
862
Excel Vers. ve Dili
Office 365 Türkçe
Altın Üyelik Bitiş Tarihi
02-07-2025
sayın fpc

"Eğer; listview yerine, OWC Spreadsheet nesnesi kullanırsanız, istediğinizi rahatlıkla yapabilirsiniz. Bu iş için; -tıpkı sayfa üzerinde olduğu gibi- OWC Spreadsheet üzerindeki ilgili hücreyi seçmeniz yeterli olur"

yukarıda bahsettiğiniz konu hakkında en ufak bir fikrim yok :(
Ancak listviewde ilgili satıra çift tıklanarak hiperlinkin tetiklenmesi konusunda biraz daha detaylı bilgi verirseniz sevinirim. birde ek iki soru soracağım çünkü forumda tam bir bilgi bulamadım.
1-listviewde iki tarih arasında süzme nasıl yapılıyor?
2-Süzülen liste veya listenin tamamı nasıl çıktı alınıyor?

ilginize teşekkür ederim.
 

ockucukay

Altın Üye
Katılım
29 Aralık 2005
Mesajlar
862
Excel Vers. ve Dili
Office 365 Türkçe
Altın Üyelik Bitiş Tarihi
02-07-2025
spreadsheet nesnesi kullanarak userform üzerine database sayfamı getirmeyi başardım. (teşekkürler excel web tr ! özellikle leventm :) ) Yalnız P sütununda bulunan link hücresine spreadsheet üzerinden tıkladığımda "Gidilemiyor" hatası veriyor. dosyamı ekte gönderiyorum, ne yapmam lazım, lütfen yardım edin. ilginize şimdiden teşekkürler.
 

ockucukay

Altın Üye
Katılım
29 Aralık 2005
Mesajlar
862
Excel Vers. ve Dili
Office 365 Türkçe
Altın Üyelik Bitiş Tarihi
02-07-2025
arkadaşlar yok mu yardım edecek birisi?
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Ekteki dosyayı inceleyiniz.

P2 hücresine; ben kendi linkimi ekledim. Formülle değiştirirsiniz.

Spreadsheet nesnesinin activesheet'i üzerinde; P sütununa geldiğinizde (tıkladığınızda veya seçtiğinizde), link otomatik olarak açılacaktır.
 

ockucukay

Altın Üye
Katılım
29 Aralık 2005
Mesajlar
862
Excel Vers. ve Dili
Office 365 Türkçe
Altın Üyelik Bitiş Tarihi
02-07-2025
çok teşekkür ederim kodlar düzgün çalışıyor. ama spreadsheet ekranında link olduğu gibi görünüyor."Bilgi klasörü" şeklinde görünüp link olarak çalışabilirmi?
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Userform'un Initialize kodunu aşağıdaki gibi değiştirin.

Kod:
Private Sub UserForm_Initialize()
Sheets("DATABASE").Activate
On Error Resume Next
ALAN01.SetFocus
Sheets("MUSTERI").Select
Call Firma_Adı_Güncelle
ALAN02.RowSource = "SÜZ!A1:A" & Sheets("SÜZ").Range("A65536").End(xlUp).Row
Application.ScreenUpdating = True
'For a = 2 To [b65536].End(3).Row
'If WorksheetFunction.CountIf(Sheets("MUSTERI").Range("b2:b" & a), Cells(a, "b")) = 1 Then ALAN02.AddItem Cells(a, "b")
ALAN03.RowSource = "MUSTERI!c2:c" & Sheets("MUSTERI").[C65536].End(3).Row
ALAN14.RowSource = "YETKILI!k2:k" & Sheets("YETKILI").[k65536].End(3).Row
Call SonKayıt
ActiveCell.Offset(-1, 0).Select
Call EkranKaydet
Call VeriAl
kayıt = False
Application.ScreenUpdating = False
ALAN01.Value = Empty
ALAN02.Value = Empty
ALAN03.Value = Empty
ALAN04.Value = Empty
ALAN05.Value = Empty
ALAN06.Value = Empty
ALAN07.Value = Empty
ALAN08.Value = Empty
ALAN09.Value = Empty
ALAN10.Value = Empty
ALAN11.Value = Empty
ALAN12.Value = Empty
ALAN13.Value = Empty
ALAN14.Value = Empty
ALAN15.Value = Empty
For i = 1 To Sheets("DATABASE").Cells(65536, 2).End(xlUp).Row
    For j = 1 To 16
        Spreadsheet1.ActiveSheet.Cells(i, j) = Sheets("DATABASE").Cells(i, j)
[COLOR=red]        If j = 16 And i > 1 Then
           With Spreadsheet1.ActiveSheet.Cells(i, j)
                .Value = "Bilgi Klasörü"
                .Font.ColorIndex = 5
                .Font.Underline = xlUnderlineStyleSingle
           End With
        End If
[/COLOR]    Next j
Next i
Spreadsheet1.[a:p].EntireColumn.AutoFit
Spreadsheet1.[a1:p1].AutoFilter
Spreadsheet1.ActiveWindow.ViewableRange = "a1:p" & [a65536].End(3).Row
If Spreadsheet1.Height < 263 Then Spreadsheet1.Height = Spreadsheet1.Range("a1:a" & [a65536].End(3).Row).Height
End Sub
 
Üst