• DİKKAT

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

Userform aktif ise listbox a tıklayarak veri çekmek

Katılım
16 Ekim 2011
Mesajlar
131
Excel Vers. ve Dili
2007
Sayın Üstadlarım merhaba,
ekteki dosyamda userform1 de 1 ad listbox ım var. ben userform2 aktif iken bir butonla userform1 i aktifleştirip listboxtaki veriyi userform2 deki textboxa ve sayfa2.A1 hücresine yazdırmak istiyorum. Şöyle bir sorunum var ben bu işlemi userform2 aktifken yapabilmek istiyorum ; eğer aktif değilse listbox a tıkladığımda herhangi bir işlem yapılmasın istiyorum. nasıl yapabilirim?
 

Ekli dosyalar

Merhaba,

Userform1 in kod bölümüne ekleyin.

Kod:
Private Sub ListBox1_Click()
    UserForm2.TextBox1.Text = Range("A" & ListBox1.ListIndex + 1)
    Unload UserForm1
End Sub

Daha sonra aktarım butonu için, Userfom2 ye CommandButton2 ekleyin ve Userform2 nin kod bölümüne aşağıdaki kodları ekleyin.

Kod:
Private Sub [COLOR=red]CommandButton2[/COLOR]_Click()
    Dim S2 As Worksheet, son As Long
 
    Set S2 = Sheets("Sayfa2")
    son = S2.Cells(Rows.Count, "A").End(xlUp).Row
 
    If TextBox1.Text <> "" Then
        S2.Range("A" & son) = TextBox1.Text
        MsgBox "Aktarım Yapıldı"
    End If
 
    TextBox1.Text = ""
 
End Sub

Yeni bir buton eklemeden, listbox1 e tıklama ile veriler aktarılabilir, fakat bu sefer 2. bir userfomun eklenmesi mantıksız olur.
 
Ömer bey ilginize teşekkürler öncelikle ; şu an yapım aşamasında bir ambar programım var . olayım şu ; malzemele listesi adında userform um var mlz listesini listbox ile görmek için kullanıyorum. mlz giriş-çıkış işlemi yapacağım userformda mlz ekleme işlemi için mlz listesi olan userformu ..show ile açıyorum , burada mlz giriş-çıkış userformu açıksa mlz listesine tıklayarak giriş-çıkış yapılan userforma ve excel sayfasına veriyi almak istiyorum. diyelim ki giriş-çıkış userformu kapalı ; mlz listesi olan userformu açıp tıkladığımda işlem yapmamasını istiyorum . umarım derdimi anlatabilmişimdir.
 
Userform1 e yukarıda yazdığım kodları ilave edin.
Userfom2 ye ise eski kodu silerek aşağıdaki kodları yazın.

Kod:
Private Sub CommandButton1_Click()
    
    Dim S2 As Worksheet, son As Long
 
    Set S2 = Sheets("Sayfa2")
    son = S2.Cells(Rows.Count, "A").End(xlUp).Row
    
    UserForm1.Show
 
    If TextBox1.Text <> "" Then
        S2.Range("A" & son) = TextBox1.Text
        MsgBox "Aktarım Yapıldı"
    End If
 
    TextBox1.Text = ""
    
End Sub

.
 
Private Sub ListBox1_Click()
UserForm2.TextBox1.Text = Range("A" & ListBox1.ListIndex + 1)
Unload UserForm1
End Sub

Ömer bey yukarıda ki kod userform2 kapalı iken bir anlam ifade etmez değil mi?
birde userform2 de s2.range("A"& son) dediğimiz noktada veriyi direk textbox tan excele alıyorsunuz , ben buna artı olarak listboxımda ki 2. bir sütundaki veriyi de direkt olarak excele alabilirim değil mi? sonuç olarak şartımız userform2 deki textbox ın doluluğu.
 
Evet alabilirsiniz.

Yalnız ListBox1_Click() kodunu aşağıdakiyle değiştirin. Userform2 nin açık yada kapalı şartını eklememiştim. Aşağıdaki kodlara ekledim.

Kod:
Private Sub ListBox1_Click()

    If UserForm2.Visible = True Then
        UserForm2.TextBox1.Text = Range("A" & ListBox1.ListIndex + 1)
        Unload UserForm1
    End If

End Sub
 
çok teşekkür ederim Ömer bey şimdi tamam oldu.
 
Geri
Üst