• DİKKAT

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

ListBox'da seçilen ismi, hücreye yazdırmak.

Katılım
10 Kasım 2006
Mesajlar
1,288
Excel Vers. ve Dili
Excel-2016
Arkadaşlar..! (selam ile)

Ekli dosyada konuyu açıkladım.. Belirlenen bir hücre aralığındaki (F6:F25) isimleri UserForm1+ListBox1 üzerinde çoklu seçim özelliği ile listeleniyor..

ListBox da seçilen isimleri de belirlenen bir hücre aralığına (G6:G25) yazdırmam gerekiyor..(Tabii ki işareti kaldırılınca da silinmesi lazım)

Yardımlarınızı bekliyorum..
 

Ekli dosyalar

Merhabalar,

Mevcut kodları silerek, aşağıdakileri, UserForm1 kod modülüne kopyalayınız.

lstboxsecyazdir.jpg


Kod:
Private Sub ListBox1_Change()
    Dim rng As Range

    Set rng = Range(ListBox1.RowSource).Cells(1, 1)
    
    Application.Calculation = xlCalculationManual
    
    With rng
        For i = 0 To ListBox1.ListCount - 1
            If ListBox1.Selected(i) Then
                .Offset(i, 1) = .Offset(i, 0)
            Else
                .Offset(i, 1) = Empty
            End If
        Next i
    End With
    
    Application.Calculation = xlCalculationAutomatic

End Sub


Private Sub UserForm_Initialize()
    ListBox1.RowSource = "Sayfa1!F6:F25"
End Sub


Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    Dim rng As Range
    
    Set rng = Range(ListBox1.RowSource).Offset(, 1)
    rng.ClearContents
    Set rng = Nothing

End Sub
 
Saygıdeğer Ferhat hocam..! Öncelikle çok teşekkür ediyorum ve çok güzel olmuş.. Ancak size zahmet olacak ama el atmışken şöyle bir ilave yapabilir miyiz.?

Yani yukarıdakinin tersi olacak.. Yani; form her açıldığında F6:F25 aralığında yer alan isimleri karşılığı olan G6:G25 aralığına yazsın ve yazılı olduğu müddetçe de listbox üzerinde seçili olsun.
İşaretini kaldırınca da, işareti kaldırılan ismi silecek..
 
O halde, UserForm'un Inıtialize kodunu şu şekilde değiştirmeniz yeterlidir.


Kod:
Private Sub UserForm_Initialize()
    Dim rng As Range
    Dim i As Integer
    
    ListBox1.RowSource = "Sayfa1!F6:F25"
    
    Set rng = Range(ListBox1.RowSource)
    
    rng.Offset(, 1).Value = rng.Value
    
    For i = 0 To ListBox1.ListCount - 1
        ListBox1.Selected(i) = True
    Next i
    
    Set rng = Nothing
End Sub

.
 
Ferhat hocam..! Çok güzel olmuş.. Herşey için teşekkürler ve hoşça kalınız.. (sayenizde sorunlu bir projem çözülmüş oldu)
 
Geri
Üst