Label textbox ekleme

Katılım
6 Temmuz 2008
Mesajlar
1,875
Excel Vers. ve Dili
OFFİCE 2010- TÜRKÇE
Altın Üyelik Bitiş Tarihi
22-12-2019
Merhabalar..
Ekteki dosya örneklemsinde
Bir sayfanın 1.stununda veriler var ve 2. stüununda karşılıkları.
Bu 1. sütundaki listede kac veri varsa o kadar userforma label ve textbox nesneleri eklemek istiyorum.Boş bir useerform üzerinden gidersek ben userformu açtığımda 1.sütundaki son dolu veriye kadar labellar eklenecek.Ve bir okadar da karşısına textbox...
Ve sonra doldurduğum textboxlar da yine sayfadaki yerlerine gelecek.

Yol gösterecek arkadaşlara teşekkürler..
 

Ekli dosyalar

Katılım
6 Temmuz 2008
Mesajlar
1,875
Excel Vers. ve Dili
OFFİCE 2010- TÜRKÇE
Altın Üyelik Bitiş Tarihi
22-12-2019
Pek açıklayıcı örnek bulamadım
Hala beklemedeyim....
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
43,088
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Ekteki örnek dosyayı inceleyiniz.
 

Ekli dosyalar

Katılım
6 Temmuz 2008
Mesajlar
1,875
Excel Vers. ve Dili
OFFİCE 2010- TÜRKÇE
Altın Üyelik Bitiş Tarihi
22-12-2019
Korhan hocam çok teşekkürler.
Fakat forum sitesinden bu konuda mesaj almadım cevaplandığına dair.
Bazen bu durum olabiliyor.Hala cevap gelmedi mi diyerek baktım cevabınızla karşılaştım.
Çok güzel hazırlamışsınız sağolun.
 
Katılım
6 Temmuz 2008
Mesajlar
1,875
Excel Vers. ve Dili
OFFİCE 2010- TÜRKÇE
Altın Üyelik Bitiş Tarihi
22-12-2019
Korhan bey burada clasmodule diye bir bölüm var
Kod:
Public WithEvents Txtbx As MSForms.TextBox

Private Sub Txtbx_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    MsgBox Txtbx.Tag
End Sub
Bunun anlamı nedir.Daha önceden farketmediğim bir durum
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
43,088
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Class Modul ile forma eklenen Textbox nesnelerini topluca yönetebilirsiniz. Forumda örnekler var inceleyerek bilgi sahibi olabilirsiniz.
 
Katılım
6 Temmuz 2008
Mesajlar
1,875
Excel Vers. ve Dili
OFFİCE 2010- TÜRKÇE
Altın Üyelik Bitiş Tarihi
22-12-2019
Teşekkürler.İnceleyeceğim.

Fakat ben frame istemiyorum.Frame kullanamdan deneyim istedim ama başramadım acaba sebebi nedir?

Kod:
Private Sub UserForm_Initialize()
    Dim Lbl As MSForms.Label, Txt As MSForms.TextBox
    
    Set S1 = Sheets(ActiveSheet.Name)

    Son = S1.Cells(12, Columns.Count).End(xlToLeft).Column

    Aralik = 5
    
    ReDim Preserve Txtbx(Son)
    
    
    For X = 4 To Son
        Set Lbl = Me.Controls.Add("Forms.Label.1", "Label" & X)
        With Lbl
            .Left = 10
            .Top = .Top + Aralik
            .Width = 100
            .Height = 18
            .Caption = S1.Cells(12, X)
            .SpecialEffect = fmSpecialEffectEtched
        End With
        
        Set Txt = Me.Controls.Add("Forms.TextBox.1", "TextBox" & X)
        With Txt
            .Left = 120
            .Top = .Top + Aralik
            .Width = 100
            .Height = 18
            .Value = ""
            .SpecialEffect = fmSpecialEffectEtched
            
        End With
        
        Set Txtbx(X).Txtbx = Controls("TextBox" & X)
        
        Aralik = Aralik + 18
    Next
End Sub
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
43,088
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Ekteki örnek dosyayı inceleyiniz.
 

Ekli dosyalar

Katılım
6 Temmuz 2008
Mesajlar
1,875
Excel Vers. ve Dili
OFFİCE 2010- TÜRKÇE
Altın Üyelik Bitiş Tarihi
22-12-2019
Çok teşekkür ederim Korhan bey...

Kod:
Private Sub CommandButton1_Click()
 a = 1
    For X = 1 To Son
   a = a + 1
        S1.Cells(a, X) = Controls("TextBox" & X).Value
    Next
    
    MsgBox "Veriler hücrelere aktarılmıştır.", vbInformation
End Sub
Burayı bu sekilde değiştirdim fakat istediğimi elde edemedim.
Nerede hata yapıyorum.?
 
Katılım
6 Temmuz 2008
Mesajlar
1,875
Excel Vers. ve Dili
OFFİCE 2010- TÜRKÇE
Altın Üyelik Bitiş Tarihi
22-12-2019
Kod:
Private Sub UserForm_Initialize()
    Dim Lbl As MSForms.Label, Txt As MSForms.TextBox
    
    Set S1 = Sheets("Sayfa1")
    Son = S1.Cells(1, Columns.Count).End(xlToLeft).Column
    Aralik = 5
    
    ReDim Preserve Txtbx(Son)
    
    Me.ScrollBars = fmScrollBarsVertical
    Me.ScrollHeight = 1000
    
    For X = 1 To Son
        Set Lbl = Me.Controls.Add("Forms.Label.1", "Label" & X)
        With Lbl
            .Left = 10
            .Top = .Top + Aralik
            .Width = 100
            .Height = 18
            .Caption = S1.Cells(1, X)
            .SpecialEffect = fmSpecialEffectEtched
        End With
        
        Set Txt = Me.Controls.Add("Forms.TextBox.1", "TextBox" & X)
        With Txt
            .Left = 120
            .Top = .Top + Aralik
            .Width = 100
            .Height = 18
            .Value = ""
            .SpecialEffect = fmSpecialEffectEtched
            .Tag = Cells(2, X).Address
        End With
        
        Set Txtbx(X).Txtbx = Controls("TextBox" & X)
        
        Aralik = Aralik + 18
    Next
End Sub
Kodu bu şekilde değiştirdim.Satır başlarını labellara alıyorum.Textboxlarda sayenizde karşılarında .
Amaç;
Texboxtaki veriler her girdiğimde ilgili satırbaşlarının altında sırayla eklenip gidecek...
 
Katılım
6 Temmuz 2008
Mesajlar
1,875
Excel Vers. ve Dili
OFFİCE 2010- TÜRKÇE
Altın Üyelik Bitiş Tarihi
22-12-2019
Korhan bey çözdüm sorunumu ;
teşekkürler.
Kod:
Private Sub CommandButton1_Click()
 son2 = Cells(Rows.Count, 1).End(xlUp).Row + 1
    For X = 1 To Son
        S1.Cells(son2, X) = Controls("TextBox" & X).Value
   Next
    MsgBox "Veriler hücrelere aktarılmıştır.", vbInformation
End Sub
 
Katılım
6 Temmuz 2008
Mesajlar
1,875
Excel Vers. ve Dili
OFFİCE 2010- TÜRKÇE
Altın Üyelik Bitiş Tarihi
22-12-2019
Kod:
Private Sub UserForm_Initialize()
    Dim Lbl As MSForms.Label, Txt As MSForms.TextBox
    
    Set S1 = Sheets("Sayfa1")
    Son = S1.Cells(1, Columns.Count).End(xlToLeft).Column
    Aralik = 5
    
    ReDim Preserve Txtbx(Son)
    
    Me.ScrollBars = fmScrollBarsVertical
    Me.ScrollHeight = 1000
    
    For X = 1 To Son
        Set Lbl = Me.Controls.Add("Forms.Label.1", "Label" & X)
        With Lbl
            .Left = 10
            .Top = .Top + Aralik
            .Width = 100
            .Height = 18
            .Caption = S1.Cells(1, X)
            .SpecialEffect = fmSpecialEffectEtched
        End With
        
        Set Txt = Me.Controls.Add("Forms.TextBox.1", "TextBox" & X)
        With Txt
            .Left = 120
            .Top = .Top + Aralik
            .Width = 100
            .Height = 18
            .Value = ""
            .SpecialEffect = fmSpecialEffectEtched
            
        End With
        
       [COLOR="Red"]  If Me.Controls("Label" & X).Caption = "A" Or Me.Controls("Label" & X).Caption = "S" Then
         Me.Controls("Label" & X).Height = 36
         Me.Controls("Textbox" & X).Height = 36
      
         End If[/COLOR]


    
        Set Txtbx(X).Txtbx = Controls("TextBox" & X)
        
        Aralik = Aralik + 18
    Next
    
End Sub
Hocam son olarak;
Bu şekilde bir kod ekledim ve eğer şart doğruysa uzunluğunu ayarladım fakat ,haliyle bazıları üstüste bindi.
Şart sağlayan label yada textboxların aralığını nasıl açarım?
 
Katılım
6 Temmuz 2008
Mesajlar
1,875
Excel Vers. ve Dili
OFFİCE 2010- TÜRKÇE
Altın Üyelik Bitiş Tarihi
22-12-2019
Hocam bugün kendim sorup kendim çözüyorum sanırım :)


Kod:
 Aralik = Aralik + Me.Controls("Label" & X).Height
Bu şekilde çözdüm sorumu..
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
43,088
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Ne kadar güzel...

Demek ki size bir şeyler katabilmişiz...
 
Katılım
6 Temmuz 2008
Mesajlar
1,875
Excel Vers. ve Dili
OFFİCE 2010- TÜRKÇE
Altın Üyelik Bitiş Tarihi
22-12-2019
Sanırım bu seferki sorunumu çözemiyeceğim;

Kod:
Set S1 = Sheets("Sayfa1")

Burada sayfa adını combobox1 deki değerden alınmasını istiyorum ve formun o sayfaya göre yeniden yapılanmasını istiyorum ama birkaç yol denedim haliyle yapamadım.
 
Katılım
6 Temmuz 2008
Mesajlar
1,875
Excel Vers. ve Dili
OFFİCE 2010- TÜRKÇE
Altın Üyelik Bitiş Tarihi
22-12-2019
Ne kadar güzel...

Demek ki size bir şeyler katabilmişiz...
Sizin sayenizde :)
Siz
Nejdet Yeşertener
Hüseyin Çoban
Ömer
İhsan tanık
Orion1
Daha aklıma gelmeyen Üstadlar sayesinde ;
İlk açtığım konulara bakıyorum da bu forum çok şey katmış bana :)
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
43,088
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Çalışmanızı görmeden tamamen afaki yazıyorum.

Combobox1 nesnesinin Change olayına formu yeniden açtıran kodlar eklenebilir. Ya da örnek dosya ekleyip açıklama yaparsanız dosyanıza göre farklı yorumlar yapabilirim.
 
Katılım
6 Temmuz 2008
Mesajlar
1,875
Excel Vers. ve Dili
OFFİCE 2010- TÜRKÇE
Altın Üyelik Bitiş Tarihi
22-12-2019
Kod:
Dim syf As Worksheet
For Each syf In Worksheets
    ComboBox1.AddItem syf.Name
     Next
    Set S1 = Sheets(ComboBox1.Value)

Kod:
Private Sub ComboBox1_Change()
UserForm_Initialize

End Sub
Bu şekilde denedim fakat hata aldım :)
Comboboxa ilk olarak koşul ekleyim değer verdim form açıldı fakat labellar ve textboxlar değişmedi sadece değerleri değişti o da yanlış oldu .
 
Üst