• DİKKAT

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

Hücrede adı yazan formun açılması..

Katılım
5 Aralık 2007
Mesajlar
635
Excel Vers. ve Dili
Office 2007
Merhaba Arkadaşlar,
Ekli dosyadaki örnekte,form1 deki butonla form2 açılırken a1 hücresine de kendi adını yazıyor. form2 deki buton tıklandığında a1 de adı yazılı olan formun açılmasını sağlayabilir miyiz? a1 e form2 hangi userform üzerinden açılmışsa o userformun adı yazılıyor.
 

Ekli dosyalar

Merhaba Sayın Murat OSMA,
İlginize çok teşekkür ederim. Verdiğiniz linkde soruma cevap buldum. Esen kalın..
 
Rica ederim, iyi günler...
 
Tekrar merhaba Sayın Murat OSMA,
Hücrede adı yazan formu açmayı hallettik ancak açılan formdaki textbox1 i kod ile ifade edemedim. Yapmak istediğim form2 deki textboxa yazdıklarımı form1 de ilgili yerlere aktarmaktı.
Aşağıdaki kırmızı renkteki satırı ne şekilde yazmalıyız acaba?

UserForms.Add([sayfa1!a1].Value).Show
UserForms.Add([sayfa1!a1].Value).TextBox1 = TextBox1
 
UserForm2'ni kodlarına;
Kod:
Private Sub CommandButton1_Click()
    UserForm1.TextBox1.Value = Me.TextBox1.Value
    UserForm1.Show
End Sub
UserForm1'in kodlarına;
Kod:
Private Sub CommandButton1_Click()
    Range("A1").Value = TextBox1.Value
End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
  Me.UndoAction
End Sub
Örnek dosyayı da yolluyorum. Bir bakın istediğiniz olmadıysa üzerinde tekrar çalışırız...
 

Ekli dosyalar

Merhaba sayın OSMA,
Öncelikle ilginize teşekkür ederim. Gönderdiğiniz dosya oldukça kullanışlı. Ancak sorun form2deki textboxtaki verinin aktarılacağı userformun sabit olmaması idi. Yani form2 herzaman aynı userform üzerinden açılmıyor. Bu sebeple a1 e form2nin açıldığı userformun adını yazdırıyorum ve daha sonra form2deki veri, adı a1de yazılı olan userformdaki textboxa aktarılması gerekiyordu. Ben son mesajımdan sonra şöyle bir çözüm buldum ve şimdilik oldu gibi görünüyor.

Set a = UserForms.Add([sayfa1!a1].Value)
a.Show 0
a.TextBox1 = Me.TextBox1
Unload Me

İlginize tekrar teşekkür eder esenlikler dilerim.
 
Son düzenleme:
Sanırım yanlış anlamıışım...

Not: Aşağıda yazılanları uygulamadan önce okuyalım lütfen. Uygun değilse boşuna uygulamayın..

Madem çözümü buldunuz o hâlde şöyle birşey ilave etsek:
Kaç tane UserForm'unuz var bilmiyorum ama tüm UserForm'ların ShowModal özelliğini Properties'ten False yapın.
Tüm UserForm isimlerini A1 - A2 - A3 gibi hücrelere sırayla yazın.

C5 hücresinde ilk açılacak UserForm'un adı olsun.
Sayfanın Selection_Change olayına;
Kod:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    On Error GoTo 10
    If Selection > 1 Then
    If Target.Address(0, 0) <> "C5" Then Exit Sub
    If Target.Value = "" Then Exit Sub
    UserForms.Add(ActiveCell.Value).Show
    End If
10:
End Sub
UserForm2'nin buton kodlarına da bu kodları;
Kod:
Private Sub CommandButton1_Click()
    Set a = UserForms.Add(ActiveCell.Value)
        a.Show 0
        a.TextBox1 = Me.TextBox1
    Unload Me
End Sub
Aşağıdaki örnekte UserForm2 yazıyor.
C5 hücresini seçince UserForm2 açılır, üzerindeki TextBox'a bir veri girin ve A1 - A2 - A3'te yazılı olan UserForm isimlerinden hangisine gönderecekseniz o UserForm adını seçin ve Aktar butonuna basın.
 

Ekli dosyalar

Merhaba sayın OSMA,
Gerçekten iyi düşünmüşsünüz. Birden çok form için oldukça kullanışlı bir çalışma. İlginize çok teşekkür ederim.
 
Geri
Üst