• DİKKAT

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

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
 
Aşağıdaki gibi uygulamanız gerekir.

Kod:
for i=2 to 10
controls("textbox" & i).text=i
next
 
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
 
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 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
 
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
 
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.
 
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
 
n=35 i döngü dışına alarak hatanın birini düzelttim. Ama hatayı ilk textboxta veriyorum. Nexte gelmeden
 
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
 
Textbox adını çift tırnak içine almanız lazım.

"TextBox343"
 
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
 
O zaman bu isimde bir textbox adı yoktur.
 
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
 
Ya da "nd" & 35 yani nd35 isimli bir nesne vardır.
 
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.
 
Geri
Üst