• DİKKAT

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

Listbox nesnesini listwiev ile değiştirme?

  • Konbuyu başlatan Konbuyu başlatan hsayar
  • Başlangıç tarihi Başlangıç tarihi
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
Kod:
'######################################################################################################////
Private Sub UserForm_Initialize()                                                                      '##'
    CommandButton2.Cancel = True                 'Userform üzerinde "ESC" ye basınca çıkışa izin ver.  '##'
    TextBox1 = 1                                                                                       '##'
    ComboBox1.Value = FncHsr_VarsayilanYazici()             'Varsayılan Yazıcıyı bul ve combo1 e yaz.  '##'
    Dim Wsh As WshNetwork                                                                              '##'
    Dim i As Single                                                                                    '##'
    Set Wsh = New WshNetwork                                                                           '##'
'Aktif Kitaptaki Sayfa Listesini Listbox1 e alır                                                       '##'
    For i = 1 To ActiveWorkbook.Sheets.Count                                                           '##'
[COLOR=darkgreen]        [B]ListBox1.AddItem[/B] Sheets[/COLOR](i).Name                                                                '##'
'       [COLOR=darkred] [B]ListView1.
[/B][/COLOR]    Next                                                                                               '##'
'Aktif Bilgisayardaki Yazıcı Listesini Combobox1 e alır                                                '##'
    For i = 1 To Wsh.EnumPrinterConnections.Count - 1 Step 2                                           '##'
        ComboBox1.AddItem Wsh.EnumPrinterConnections(i)                                                '##'
    Next                                                                                               '##'
Set Wsh = Nothing:                  i = 0                                                              '##'
End Sub                                                                                                '##'
'######################################################################################################////


ListBox1.AddItem Sheets (i).Name yerine, ListView1 yanına ne yazmlıyımda çalışma sayfaları listwiev nesnesine gelsin.
 
Şu şekilde yapınız.

Kod:
Private Sub UserForm_Initialize()                                                                      '##'
    CommandButton2.Cancel = True                 'Userform üzerinde "ESC" ye basınca çıkışa izin ver.  '##'
    TextBox1 = 1                                                                                       '##'
    ComboBox1.Value = FncHsr_VarsayilanYazici()             'Varsayılan Yazıcıyı bul ve combo1 e yaz.  '##'
    Dim Wsh As WshNetwork                                                                              '##'
    Dim i As Single                                                                                    '##'
    Set Wsh = New WshNetwork                                                                           '##'
    'Aktif Kitaptaki Sayfa Listesini Listbox1 e alır                                                       '##'
[COLOR=red]    With ListView1
        .View = lvwReport
        .LabelEdit = lvwManual
        .ColumnHeaders.Add , , "Sayfalar"
        For i = 1 To ActiveWorkbook.Sheets.Count
            .ListItems.Add , , Sheets(i).Name
        Next i
    End With
[/COLOR]    'Aktif Bilgisayardaki Yazıcı Listesini Combobox1 e alır                                                '##'
    For i = 1 To Wsh.EnumPrinterConnections.Count - 1 Step 2                                           '##'
        ComboBox1.AddItem Wsh.EnumPrinterConnections(i)                                                '##'
    Next                                                                                               '##'
Set Wsh = Nothing:                  i = 0                                                              '##'
End Sub
 
teşekkür ederim hocam.
 
Ferhat Hocam Listwievlerle ilgili bir şey daha sormak istiyorum...

gelen verilerden Birden fazlasını mouse ile seçmek mümkün mü, ctrlye basmadan
listbox ın multi select özelliğinin frmMULTiselectmulti gb.
 
Son düzenleme:
Çoklu seçim işlemi için, Listview'in elemanlarına Checkbox özelliği kazandırabilir ve/veya Multiselect özelliği aktif ederek, mouse veya klavye ile çoklu eleman seçimi yapabilirsiniz.

Hangisi hoşunuza giderse onu kullanın ...

Kod:
    With ListView1
        .View = lvwReport
'        .CheckBoxes = True [COLOR=darkgreen]'Her elemana CheckBox oluşturur.
[/COLOR]        .MultiSelect = True[COLOR=darkgreen] 'Çoklu seçim özelliği
[/COLOR]        .LabelEdit = lvwManual
        .ColumnHeaders.Add , , "Sayfalar"
        For i = 1 To ActiveWorkbook.Sheets.Count
            .ListItems.Add , , Sheets(i).Name
        Next i
    End With
 
Hocam teşekkürler, aşağıdaki hali ile son derece güzel olduğunu düşünüyorum, siz ne dersiniz :)
Kod:
'######################################################################################################////
Private Sub UserForm_Initialize()                                                                      '##'
'*\ Form denetimlerininin özelliklerini belirle                                                        '##'
    CommandButton2.Cancel = True                 'Userform üzerinde "ESC" ye basınca çıkışa izin ver.  '##'
    TextBox1 = 1                                                                                       '##'
    With ListView1                                                                                     '##'
        .View = lvwReport:              .LabelEdit = lvwManual                                         '##'
        .CheckBoxes = True                                          'Her elemana CheckBox oluşturur.   '##'
'        .MultiSelect = True                                      'Çoklu seçim (ctrl+mouse) özelliği   '##'
        .ColumnHeaders.Clear:           .ListItems.Clear              'başlıkları ve öğeleri temizle   '##'
        .ColumnHeaders.Add , , "Sayfalar"                                                              '##'
    End With   'ListView1                                                                              '##'
    ComboBox1.Value = FncHsr_VarsayilanYazici()             'Varsayılan Yazıcıyı bul ve combo1 e yaz.  '##'
'*\ Değişken tanımlama ve set etme                                                                     '##'
    Dim Wsh As WshNetwork                                                                              '##'
    Dim i As Single                                                                                    '##'
    Set Wsh = New WshNetwork                                                                           '##'
'Aktif Kitaptaki Sayfa Listesini Listbox1/ListView1 e alır                                             '##'
    For i = 1 To ActiveWorkbook.Sheets.Count                                                           '##'
        ListView1.ListItems.Add , , Sheets(i).Name                                                     '##'
        ListBox1.AddItem Sheets(i).Name                                                                '##'
    Next i                                                                                             '##'
'Aktif Bilgisayardaki Yazıcı Listesini Combobox1 e alır                                                '##'
    For i = 1 To Wsh.EnumPrinterConnections.Count - 1 Step 2                                           '##'
        ComboBox1.AddItem Wsh.EnumPrinterConnections(i)                                                '##'
    Next                                                                                               '##'
'*\ Değişkenleri ve değerlerini hafızadan silme                                                        '##'
Set Wsh = Nothing:                  i = 0                                                              '##'
End Sub                                                                                                '##'
 
Kod:
'######################################################################################################////
Private Sub CommandButton1_Click()                                                                      '##'
Dim col As New Collection                                                                               '##'
'*\ Aktif yazıcıyı değişkene al                                                                         '##'
'Dim DefaultPrint As String:      DefaultPrint = Application.ActivePrinter: MsgBox DefaultPrint         '##'
    With ListBox1                                                                                       '##'
'*\ Listboxta Seçili olanları koleksiyona al ve sayısını tesbit et...                                   '##'
        For i = .ListCount - 1 To 0 Step -1                                                             '##'
            If .Selected(i) Then                                                                        '##'
                Say = Say + 1                                                                           '##'
                col.Add i                                                                               '##'
            End If                                                                                      '##'
        Next i                                                                                          '##'
'*\ ... Eğer sayı 0 a eşitse prosodürden çık, ...                                                       '##'
        If Say = 0 Then                                                                                 '##'
            MsgBox "Seçili veri bulunamadı"                                                             '##'
        Else                                                                                            '##'
            Soru = ComboBox1.Value & " Yazıcısından " & Say & " adet çalışma sayfasından " & _
                   TextBox1.Value & " -er/-ar adet  Yazdırmak İstiyor musunuz?"                         '##'
            If MsgBox(Soru, vbYesNo) = vbYes Then                                                       '##'
'*\ ... Listbox1 de seçili sayfaları combobox1 deki yazıcıdan textbox1 deki kadar yazdır.               '##'
                For i = 1 To col.Count                                                                  '##'
                    Sheets(ListBox1.List(col.Item(i))).PrintOut _
                    Copies:=TextBox1.Value, ActivePrinter:=ComboBox1.Value                              '##'
                Next i                                                                                  '##'
            End If                                                                                      '##'
        End If                                                                                          '##'
    End With    'Listbox1                                                                               '##'
Set col = Nothing                                                                                       '##'
Unload Me                                                                                               '##'
End Sub                                                                                                 '##'
'######################################################################################################////

bu öğedende kurtarabildimmi daha güzel olacak gibi.
 
Değerli hocalarım solda ki listbox kodlarının listwiev karşılığı nedir? 1 tanesini buldum:

ListBox1.ListCount ============ ListView1.ListItems.Count
ListBox1.Selected(i) ============ ListView1.??????(i)
Sheets(ListBox1.List(col.Item(i))).PrintOut ================ Sheets(ListView1.??????(col.Item(i))).PrintOut
 
Geri
Üst