Dinamik Textbox

Katılım
30 Haziran 2005
Mesajlar
149
Selamlar,

Bir UserForm yaratmak istiyorum ve icinde "A1"de ne rakam varsa o kadar miktarda alt alta textbox yaratmak istiyorum. Ayrica yeni yaratilan bu Textbox'larin adi Textbox1, Textbox2 olarak degil de Kutu1, Kutu2 vs olarak adlandirilmasini istiyorum.

Bunu yapmak mumkunmu?

Saygilar
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Aşağıdaki kodu deneyin. Sadece textboxların isimlerinin değiştirilmesi eksik.

[vb:1:1b64a726ab]
Private Sub UserForm_Initialize()
For a = 1 To [a1]
UserForm1.Controls.Add ("Forms.textbox.1")
Controls("textbox" & a).Top = 6 + (a - 1) * 22
Controls("textbox" & a).Left = 12
Next
End Sub
[/vb:1:1b64a726ab]
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
leventm, arkadaşımın örneğine devam ederek .... isimleriyle birlikte olusturmak icin ...

[vb:1:9444925039]Private Sub UserForm_Initialize()
For a = 1 To [a1]
Me.Controls.Add "Forms.textbox.1", "Kutu" & a
Me.Controls("Kutu" & a) = Me.Controls("Kutu" & a).Name
Me.Controls("Kutu" & a).Top = 6 + (a - 1) * 22
Me.Controls("Kutu" & a).Left = 12
Next
End Sub
[/vb:1:9444925039]
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Sn Raider

Çok teşekkür ederim, bende bu isim kısmına takılmıştım.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Rica ederim Levent arkadaşım.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
UserForm üzerine her yeni eklenen Kutu1, Kutu2 ..... adli TextBox' larin UserForm uzerindeki koordinatlarini belirliyor.
 
Katılım
30 Haziran 2005
Mesajlar
149
Tesekurler Raider,

Ama ben o kismi o zaten anlamistim :mrgreen:
Benim istedigim biraz daha teknik bi bilgi.

Bunu sormamdaki amac, yarin obur gun ben bir userform'da istedigim yere istedigim kontrolu girmek istiyorsam bunun koordinatlarini nasil hesaplicam?

Saygilar
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Isin o kismini yine de tam anlayamamissin ama.... :mrgreen:

Eger sadece 1 adet TextBox ilave etmek isteseydin, Top ve Left ozelliklerine diledigin sayiari vererek UserForm uzerinde yerlestirirdin.

Yukarida yapilan kodda da durum cok farkli degil aslinda.... eklenen TextBox' larin birbiri uzerine binmemesi icin dongude her yeni TextBox eklendiginde Top ozelligi arttiriliyor.

Ama, eklenen TextBox' larin hepsinin de UserForm uzerinde sol taraftan esit olarak yerlestirilmesi, kodda benimsenmis oldugundan Left ozelligine dongunun her asamasinda 12 degeri verilmis.

Yani, eger Top ozelligi de dongude 12 veya 15 gibi sabit bir deger olsaydi ..... ust uste bir suru TextBox eklenmis olucak ama herbirinin Top ve Left ozellikleri bir birine esit oldugu icin, sadece en son eklenen en ustte kalacagi icin sadece onu gorebilecektik.

Onemli olan Top degerini gonderirken, bir sekilde degiskene bagli her seferinde degisik bir sayi ama mantikli bir koordinat olacak yeni bir sayi uretmek. Yukaridaki gibi degil ama, baska turlu bir formul de olabilirdi. Yeter ki cikan Top veya Left degerleri, UserForm'un eni ve yukseklik sinirlari icinde kalsin.

Bilmem yardimci olabildim mi ...
 
Katılım
30 Haziran 2005
Mesajlar
149
Evet, yardimci olabildin :) eline saglik

Hazir konuyla ilgiliyken, Textbox yerine Combobox yapmak istersem kod icinde RawSource'u nasil eklerim?

Tesekur.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Ama ben o kismi o zaten anlamistim
Sn iggydarsa

Sorunuzda kullandığınız cümleden açıkçası hiçte böyle bir mana çıkmıyor. Sn Raider sorunuzun tam cevabını vermiş, bende açıkçası aynı cevabı verirdim. Buradan şu sonuca ulaşabiliriz; sorunuzu doğru ifade ederseniz daha hızlı cevap alacağınız ortadadır. Gelelim sorunuza; bu değerlerin tespiti için en iyi yol deneme yanılma metodudur. Ã?rneğin bir userform üzerine alt alta eşit aralıklarla ve eşit büyüklükte textboxlar yerleştirerek hepsinin top ve left değerlerine bakabilirsiniz. Böylece aradaki farkı gözönüne alarak bu ritmik artışı sağlayacak bir formül oluşturursunuz.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
[vb:1:a56fd6e2bd]Private Sub UserForm_Initialize()
Me.Controls.Add "Forms.ComBobox.1", "MyCombo"
Me.Controls("MyCombo").Left = 12
Me.Controls("MyCombo").Top = 20
Me.Controls("MyCombo").RowSource = "A1:A10"
End Sub

[/vb:1:a56fd6e2bd]
 
Katılım
24 Eylül 2005
Mesajlar
332
dinamik textbox

Sayfadaki satır sayısına göre userformda her satır için yan yana 4 adet olmak üzere textbox nasıl yapılır.
 
Katılım
29 Eylül 2004
Mesajlar
1,810
Excel Vers. ve Dili
Excel 2002 TR
Yukarıdaki kodu uyarlayabilirsiniz.

[vb:1:0bc6fb7136]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) = Me.Controls("Kutu" & a & i).Name
Me.Controls("Kutu" & a & i).Top = 6 + (a - 1) * 22
Me.Controls("Kutu" & a & i).Left = 12 + (i - 1) * 100
Next i
Next
End Sub[/vb:1:0bc6fb7136]
 
Katılım
24 Eylül 2005
Mesajlar
332
Sayın Danersin ilginize teşekkür ederim.
isteğimin1. kısmı tamam oluşan teksbox'larda kutu 11 den itibaren yazıyor. ben Sayfadaki hücrelerdeki verilerin yazmasını istiyorum.
 
Katılım
24 Eylül 2005
Mesajlar
332
Ayrıca Textbox'da verielri düzeltip tekrar sayfaya kaydetmek istiyorum. Bu olay listboxla oluyor fakat ben textboxda yapmak istiyorum.
 
Katılım
6 Şubat 2005
Mesajlar
1,467
[a2].Value = TextBox2
şeklinde olursa yazmıyor ama
[a2].Value = Controls("TextBox2")

Controls("TextBox2").Value =[a2]

şeklinde olursa yazıyor
nedenini bien varsa öğrenelim
 
Üst