Dinamik Textbox

mehmett

Altın Üye
Katılım
18 Mayıs 2005
Mesajlar
2,571
Excel Vers. ve Dili
Excel 2010 Türkçe
Sn GKMER

Userform üzerinde textbox'tan başka bir de commandbutton oluşturun ve textbox ile commanbutton'a aşağıdaki kodları yazın. Uygulanmış dosya da ektedir.

[vb:1:1c097da072]Private Sub CommandButton1_Click()
[a2].Value = TextBox2.Value
End Sub

Private Sub TextBox2_enter()
TextBox2.Value = [a2].Value
End Sub[/vb:1:1c097da072]
 
Katılım
24 Eylül 2005
Mesajlar
332
Sayın Zerige teşekkür ederim ama siz benim sorumla alakalı olmayan cevap vermişsiniz.
 
Katılım
24 Eylül 2005
Mesajlar
332
Sayın xxrt benim bu soru başlığı altında sorduğum ve sayın danersin verdiği kod ile yapmak istediğim problem ile sayın zerige'nin verdiği yanıt uyuşmamaktadır. Sorunumu bu başlık altında tamamına bakarsanız bana hak verirsiniz.
 
Katılım
29 Eylül 2004
Mesajlar
1,810
Excel Vers. ve Dili
Excel 2002 TR
Sn. GKMER, benim verdiğim kodda sorunuzun cevabı, sn. zerige'nin verdiği kodda. İkisinin arasında herhangi bir uyuşmazlıkta yok. Siz sorunuzu derleyip toplayıp bir seferde sorarsanız daha iyi cevap alırsınız. Bu şekilde başka soruların altına ve parça parça sorarsanız olay karışıyor.
 
Katılım
24 Eylül 2005
Mesajlar
332
Arkadaşlar sorunumun bu boyuta ulaşmasından üzüldüm. Hepinizden özür dilerim. Ben satır sayısına göre oluşacak dinamik textbox’sa satıdaki 4 hücrede bulunan verilerin yazdırılmasını istiyordum. Sayın danersin’in verdiği kod ile userformda textbox’lar oluşuyor fakat textbox içinde sırayla kutu11, kutu12 yazıyor ben oluşan dinamik textbox’sa hücrelerdeki verileri yazdırmak istedim Sayın zerige’nin verdiği kod ile oluşturmamı istediği textbox’sa yazığım veri a2 hücresine yazıyor. Ben böyle bir şey sormadım. Yanlış anlaşılmaktan dolayı hepinizden tekrar özür diliyorum.
 
Katılım
29 Eylül 2004
Mesajlar
1,810
Excel Vers. ve Dili
Excel 2002 TR
Ortada büyütecek birşey yok :) basit bir yanlış anlama.

Kodlarda 6. satırda değişiklik yaptığınızda textbox lara kutu ismini yazmak yerine hücrelerden alır yazacağını. Hücrelere bir şey yazmak veya okutmak istediğimiz her sefer aşağıda kurduğumuz gibi 2 döngü (a ve i döngüsü) kurmak durumundayız.

[vb:1:76d314985f]
Private Sub UserForm_Initialize()
SonSat = Cells(65536, 1).End(xlUp).Row
For a = 1 To SonSat
For i = 1 To 4
Me.Controls.Add "Forms.textbox.1", "Kutu" & a & i
Me.Controls("Kutu" & a & i) = Cells(a, i)
Me.Controls("Kutu" & a & i).Top = 6 + (a - 1) * 22
Me.Controls("Kutu" & a & i).Left = 12 + (i - 1) * 100
Next i
Next a
End Sub
[/vb:1:76d314985f]
 
Katılım
24 Eylül 2005
Mesajlar
332
Çok Teşekkür ederim. Þimdi oldu.
Buradaki verileri düzelterek Sayfaya nasıl aktarırım.
kod yazmayı hiç bilmiyordum. hala bilmiyorum ya. İstediğim buradaki döngüyü tersine çalıştırmak.
 
Katılım
29 Eylül 2004
Mesajlar
1,810
Excel Vers. ve Dili
Excel 2002 TR
Userformun üstüne bir commandbutton ekleyip ona aşağıdaki kodları yazmanız yeterli..

(gerçi sonsat'ı sayfadan okutmak yerine userform'daki controllere bağlı olarak bir döngü daha doğru olurdu ama buna gerek varmı sanırım şu an sizde bende bilmiyoruz)

[vb:1:3a15bfc71d]Private Sub CommandButton1_Click()
SonSat = Cells(65536, 1).End(xlUp).Row
For a = 1 To SonSat
For i = 1 To 4
Cells(a, i) = Me.Controls("Kutu" & a & i)
Next i
Next a
End Sub[/vb:1:3a15bfc71d]
 
Katılım
24 Eylül 2005
Mesajlar
332
Vermiş Olduğunuz kodlar, yapmak istediğime tam uydu :mutlu: . Çok Teşekkür ederim.
Userformda oluşan 4. textbox'a YTL formatını nasıl uyarlarım.
 
Katılım
24 Eylül 2005
Mesajlar
332
Çok özür dilerim. Soruları 1 seferde sormam lazım ama bu seferlik beni af ederek Textbox'ların genişliğini nasıl ayarlarım.
 
Katılım
24 Eylül 2005
Mesajlar
332
Sayın xxrt soru ikinci sayfaya geçtiği için yanlış anlaşılma var.
Benim textboxlar dinamik olarak oluşuyor. bundan dolayı userform da gözükmüyor.
Ben oluşacak textboxların boyutlarını nasıl ayarlayacağım.
istediğim 2. textbox genişliği 300 olması 4. textbox'sun YTL formatında olması.
Ayrıca satır sayısı çok olunca userformda dikey kaydırma çubuğu yapılabiliyormu.
 
Katılım
24 Eylül 2005
Mesajlar
332
Sheets("Sayfa4").Visible = True
Sheets("Sayfa4").Select
SonSat = Cells(65536, 1).End(xlUp).Row
For a = 1 To SonSat
For i = 3 To 6
Me.Controls.Add "Forms.textbox.1", "Kutu" & a & 1
Me.Controls.Add "Forms.textbox.2", "Kutu" & a & 2
Me.Controls.Add "Forms.textbox.3", "Kutu" & a & i
Me.Controls("Kutu" & a & 1) = Cells(a, 1)
Me.Controls("Kutu" & a & 2) = Cells(a, 2)
Me.Controls("Kutu" & a & i) = Cells(a, i)
Me.Controls("Kutu" & a & 1).Top = 26 + (a - 1) * 15
Me.Controls("Kutu" & a & 2).Top = 26 + (a - 1) * 15
Me.Controls("Kutu" & a & i).Top = 26 + (a - 1) * 15
Me.Controls("Kutu" & a & 1).Left = 10
Me.Controls("Kutu" & a & 2).Left = 120
Me.Controls("Kutu" & a & i).Left = 420 + (i - 1) * 110
Next i
Next a
With UserForm10
.Height = Application.Height
.Width = Application.Width
End With

kodu ile yapmaya çalıştım ama Geçersiz sınıf dizesi hatasını veriyor. :yardim:
 
Katılım
24 Eylül 2005
Mesajlar
332
Private Sub UserForm_Initialize()
Sheets("dene").Unprotect Password:="1234”
Sheets("dene").Visible = True
Sheets("dene").Select
sonsat = Cells(65536, 1).End(xlUp).Row

For a = 1 To sonsat
For i = 3 To 4
Me.Controls.Add "Forms.textbox.1", "Kutu" & a & i
Me.Controls("Kutu" & a & i) = Cells(a, i)
Me.Controls("Kutu" & a & i).Top = 26 + (a - 1) * 15
Me.Controls("Kutu" & a & i).Left = 240 + (i - 1) * 90
' Me.Controls("Kutu" & a & i) = Format(Me.Controls("Kutu" & a & i), "%0")
Next i
Next a

sonsat = Cells(65536, 1).End(xlUp).Row
For a = 1 To (sonsat + 1)
Me.Controls.Add "Forms.textbox.1", "Kutu" & a & 1
Me.Controls("Kutu" & a & 1) = Cells(a, 1)
Me.Controls("Kutu" & a & 1).Top = 26 + (a - 1) * 15
Me.Controls("Kutu" & a & 1).Left = 10
Me.Controls("Kutu" & a & 1).Width = 70
'Me.Controls("Kutu" & a & 1) = Format(Me.Controls("Kutu" & a & 1), "%0")
Next a

sonsat = Cells(65536, 1).End(xlUp).Row
For a = 1 To sonsat
Me.Controls.Add "Forms.textbox.1", "Kutu" & a & 2
Me.Controls("Kutu" & a & 2) = Cells(a, 2)
Me.Controls("Kutu" & a & 2).Top = 26 + (a - 1) * 15
Me.Controls("Kutu" & a & 2).Left = 90
Me.Controls("Kutu" & a & 2).Width = 300

Next a
'sonsat = Cells(65536, 1).End(xlUp).Row
' For a = 1 To sonsat
' Me.Controls.Add "Forms.textbox.1", "Kutu" & a & 3
' Me.Controls("Kutu" & a & 3) = Cells(a, 3)
' Me.Controls("Kutu" & a & 3).Top = 26 + (a - 1) * 15
' Me.Controls("Kutu" & a & 3).Left = 420

' Next a
With UserForm10
.Height = Application.Height
.Width = Application.Width
End With
Sheets("dene").Protect Password:="1234”
End Sub

ile Oluşan userformun 1 sıradaki textboxlardaki rakamları otomatik olarak toplatmak istiyorum . Daha sonra bu toplamın 1 'den büyük olması halinde uyarmasını istiyorum.

Oluşan textboxlara rakamları

Private Sub CommandButton1_Click()
Sheets("dene").Unprotect Password:="1234"
sonsat = Cells(65536, 1).End(xlUp).Row
For a = 1 To sonsat
For i = 1 To 4
Cells(a, i) = Me.Controls("Kutu" & a & i)
Next i
Next a

Sheets("dene").Protect Password:="1234"
Unload Me
Sheets("dene").Visible = False
Sheets("İML.ANA").Select
End Sub

ile düzeltip tekrar sayfaya yazdırıyorum.
istediğim
1- 3. textbox'daki rakam 1. textbox'dan büyükse uyarsın.
2- 3. textbox'daki rakam 4. textbox'dan küçükse uyarsın.

dikkatsizlik sonucu yanlış rakam girilmesini önlemek için lazım.
 
Katılım
24 Eylül 2005
Mesajlar
332
Sorunumun1. kısmı yani en a :kafa: lt textboxsa üsttekileri toplatarak kontrol sorununu çözdüm fakat yan yana olan textbox'lardaki kıyaslama sorununa yardım edebilirmisiniz. :kafa:
 
Üst