Textbox a değişken isim verme?

Katılım
11 Nisan 2011
Mesajlar
111
Excel Vers. ve Dili
2003
Arkadaslar merhaba,

For döngüsü içinde textbox kullanacağım. Kod basit olarak şöyle:

for i=2 to 10
textboxi.text=i
next

buradaki textboxi ifadesi doğru olmuyor.Bu yazımın doğrusu nedir? Tesekkürler
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,060
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Aşağıdaki gibi uygulamanız gerekir.

Kod:
for i=2 to 10
controls("textbox" & i).text=i
next
 
Katılım
18 Aralık 2022
Mesajlar
53
Excel Vers. ve Dili
2010
Levent Hocam kolay gelsin iyi çalışmalar.
TextBox1 den TextBox50 ye kadar olan textboxlarımın name lerini Ornek1,Ornek2... şeklinde değiştiren bir vba döngüsü arıyorum.
2 gündür bakmadığım konu kalmadı.
Bu konuda yardımcı olursanız çok sevinirim.
Teşekkür ederim. İyi Çalışmalar
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,605
Excel Vers. ve Dili
2019 Türkçe
Nesnelerin isimleri kod ile değiştirilemez. Başka bir değişle kodlar çalışınca nesnelerin ismine müdahale edilemez.
Nesnelerin isimlerini kodları çalıştırmadan önce yani tasarım modunda manuel değiştirebilirsiniz.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,060
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Levent Hocam kolay gelsin iyi çalışmalar.
TextBox1 den TextBox50 ye kadar olan textboxlarımın name lerini Ornek1,Ornek2... şeklinde değiştiren bir vba döngüsü arıyorum.
2 gündür bakmadığım konu kalmadı.
Bu konuda yardımcı olursanız çok sevinirim.
Teşekkür ederim. İyi Çalışmalar
VB editörüne kod ile dışarıdan müdahele edilebilir. Çok işlenen bir konu olmadığı için forumda da yeteri kadar örnek yoktur. Ben geçen aylarda aşağıdaki linkte konuya değinmiştim.


Aşağıdaki gibi bir kodlamayla nesnelerin adını değiştirebilirsiniz. Userformun adının "UserForm1" olduğu kabul edilmiştir.

Kod:
For a = 1 To 50
Application.VBE.ActiveVBProject.VBComponents("Userform1").Designer.Controls("TextBox" & a).Name = "Ornek" & a
Next
 
Katılım
18 Aralık 2022
Mesajlar
53
Excel Vers. ve Dili
2010
Kodu kopyalayıp yapıştırdım. Döngü sayılarını ve dosya adını değiştirerek şu şekilde döndürdüm.
For a = 343 To 373
n = 35
Application.VBE.ActiveVBProject.VBComponents("BelletmenNobeti").Designer.Controls("TextBox" & a).Name = "nd" & n
n = n + 1
a = a + 2
Next

Method 'VBE' of object_Application' failed
hatası verdi
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,060
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Textbox isimleri hangi numara sırasıyla gidiyor? ayrıca vermek istediğiniz isimler hangi sırayla gitmeli.

Not: döngünün doğru çalışması için textbox isimleri ardışık numaralı olarak gitmelidir.
 
Katılım
18 Aralık 2022
Mesajlar
53
Excel Vers. ve Dili
2010
343 346 349 şeklinde 3 er artıyor
vereceğim numara 35 ten başlıyor
textboxtaki a değişkenine a+2 diyerek artış verdim ki next dedğimde a+3 olsun.
n=35 olan n=n+1 olsun ki bir sonrakiisim n=36 olsun
Bu nedenle a değişkenine
 
Katılım
18 Aralık 2022
Mesajlar
53
Excel Vers. ve Dili
2010
n=35 i döngü dışına alarak hatanın birini düzelttim. Ama hatayı ilk textboxta veriyorum. Nexte gelmeden
 
Katılım
18 Aralık 2022
Mesajlar
53
Excel Vers. ve Dili
2010
Sadece Textbox343 ün adını nd35 olarak değiştirmek için
Application.VBE.ActiveVBProject.VBComponents("BelletmenNobeti").Designer.Controls(TextBox343).Name = "nd" & 35
yazdım. Yine
Method 'VBE' of object_Application' failed
hatası verdi
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,060
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Textbox adını çift tırnak içine almanız lazım.

"TextBox343"
 
Katılım
18 Aralık 2022
Mesajlar
53
Excel Vers. ve Dili
2010
textbox adını tırnak içine kopyalayıp yapıştırdım

Private Sub CommandButton3_Click()
Application.VBE.ActiveVBProject.VBComponents("BelletmenNobeti").Designer.Controls("TextBox343").Name = "nd" & 35
End Sub
aynı hatayı verdi
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,060
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
O zaman bu isimde bir textbox adı yoktur.
 
Katılım
18 Aralık 2022
Mesajlar
53
Excel Vers. ve Dili
2010
FARKLI BİR YÖNTEM OLARAK aşağıdaki kodu yazdım. Forma textboxları oluşturup. İsimlerini değiştiriyor. ama formun tasarım moduna gelince textboxlar kayboluyor. Kısacası aktif form üzerindeki iken buton ile oluşuyor fakat gerçekte yok. Buna kalıcı bir çözüm olursa sorun da çözülmüş olur.

Private Sub CommandButton2_Click()
For X = 0 To 3
Set NewTextBox = BelletmenNobeti.Controls.Add("Forms.textbox.1")
With NewTextBox
.Name = "Ornek" & X + 1 ' isim kısmını bu satırda belirleyebilirsiniz.
.Top = 20
.Left = 20
.Width = 30
.Height = 30
.Font.Size = 7
.Font.Name = "Tahoma"
.BorderStyle = fmBorderStyleNone
.SpecialEffect = fmSpecialEffectSunken
.BackColor = vbRed
.BackStyle = frmBackStyleOpaque
.BorderColor = &H80000006
End With
Next
End Sub
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,060
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Ya da "nd" & 35 yani nd35 isimli bir nesne vardır.
 
Katılım
18 Aralık 2022
Mesajlar
53
Excel Vers. ve Dili
2010
FARKLI BİR YÖNTEM OLARAK aşağıdaki kodu yazdım. Forma textboxları oluşturup. İsimlerini değiştiriyor. ama formun tasarım moduna gelince textboxlar kayboluyor. Kısacası aktif form üzerindeki iken buton ile oluşuyor fakat gerçekte yok. Buna kalıcı bir çözüm olursa sorun da çözülmüş olur.

Private Sub CommandButton2_Click()
For X = 0 To 3
Set NewTextBox = BelletmenNobeti.Controls.Add("Forms.textbox.1")
With NewTextBox
.Name = "Ornek" & X + 1 ' isim kısmını bu satırda belirleyebilirsiniz.
.Top = 20
.Left = 20
.Width = 30
.Height = 30
.Font.Size = 7
.Font.Name = "Tahoma"
.BorderStyle = fmBorderStyleNone
.SpecialEffect = fmSpecialEffectSunken
.BackColor = vbRed
.BackStyle = frmBackStyleOpaque
.BorderColor = &H80000006
End With
Next
End Sub
Biryerde Textbox için NewTextBox kullanılmaz diyor. AddTextbox kullanın diyor.
AddTextbox ı bu koda nasıl uygularız.
 
Üst