• DİKKAT

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

userform açılışında textbox gösterimi

Katılım
3 Ekim 2018
Mesajlar
76
Excel Vers. ve Dili
Excel 2003-2007/2010
Merhabalar,
Userform üzerinde 100'e yakın textbox var. userform açıldığı zaman bunların hepsinin göstermek istiyorum. ancak textbox ölçüleri excel hücrelerinde. userform açıldığında textbox'ların excel hücresinde yer alan ölçülere göre (height, width, top..) userform üzerinde göstermek istiyorum. combobox'lı kod bulmuştum. ama, combobox kullanmadan nasıl yapılacağını bulamadım.

aşağıda kodun bir kısmı var. combobox olan kısımları sildim. diğer türlü nasıl yapabilirim acaba. combobox'sız yapılabilir mi? yardımcı olursanız sevinirim. şimdiden teşekkür ederim.

Private Sub UserForm_Initialize()
On Error Resume Next

Sheets("alfa").Activate
For b = 150 To 50 Step -1 ' 100 e yakın textbox var..
Controls("Textbox" & b).Visible = True
If Controls("Textbox" & b) <> "" Then
Controls("Textbox" & b).Visible = True

End If
Next b

For a = ????????
Sheets("alfa").Activate
Set j = Sheets("alfa").Range("C:C").Find(a)

'alfa sayfasından ölçüleri alıyor...

Controls("Textbox" & a).Visible = Sheets("alfa").Cells(j.Row, 11)
Controls("Textbox" & a).Top = Sheets("alfa").Cells(j.Row, 12)
Controls("Textbox" & a).Height = Sheets("alfa").Cells(j.Row, 13)
Controls("Textbox" & a).Width = Sheets("alfa").Cells(j.Row, 14)
Controls("Textbox" & a).Left = Sheets("alfa").Cells(j.Row, 15)
Controls("Textbox" & a).DragBehavior = 1
Controls("Textbox" & a).ControlTipText = Sheets("alfa").Cells(j.Row, 10)
Controls("Textbox" & a).MultiLine = True

Next a

End Sub
 
1 to 100 yazabilirsiniz.
Tabii Textboxların adları Texbox1,Textbox2... Textbox100 gibi olmalı.
Find(a) olayı garip:rolleyes:
 
Dediğimi yaparsanız For b = 150 To 50 Step -1 burayıda For b = 1 To 100 yapabilirsiniz.
Tabii koda bakarak yazdım dosyayı görmeden.
 
Sayın Feraz, yorumunuz için teşekkür ederim.

textboxlar 50den (textbox50...51..) başlayıp 150ye kadar gidiyor. kodda eksik olan yerler var bu haliyle çalışmaz.

yapmak istediğim, userform üzerinde değişik ölçülerde, rasgele textboxlar var. bu kadar çok textboxları tek tek ölçülerini manuel ayarlamaktansa, (her biri farklı ölçülerde) bunu excelde satırlarda/sütunlarda yazılan ölçülerden almasını istemiştim. userform açıldığında, Alfa sayfasından ölçüleri alarak, textboxlar otomatik olarak oluşsun istemiştim. combobox ile yapabiliyorum. benim yapmak istediğim, combobox'a dokunmadan userform açıldığında textboxlar görünsün istemiştim. alternatif çözüm olarak, call combobox_change ile deniyorum, olmuyor. combobox'a tıklamadan nasıl çalıştırabiliriz? combobox'ta droplist'te 1 item var.


Alfa sayfasındaki ölçüler
Controls("Textbox" & a).Visible = Sheets("alfa").Cells(j.Row, 11)
Controls("Textbox" & a).Top = Sheets("alfa").Cells(j.Row, 12)
Controls("Textbox" & a).Height = Sheets("alfa").Cells(j.Row, 13)
Controls("Textbox" & a).Width = Sheets("alfa").Cells(j.Row, 14)
Controls("Textbox" & a).Left = Sheets("alfa").Cells(j.Row, 15)
Controls("Textbox" & a).DragBehavior = 1
Controls("Textbox" & a).ControlTipText = Sheets("alfa").Cells(j.Row, 10)
Controls("Textbox" & a).MultiLine = True

bu kodda bütün textboxları gösteriyor.
Dim q As Integer

For q = 0 To Controls.Count - 1
If Mid(Controls(q).Name, 1, 7) = "TextBox" Then
Controls(q).Visible = True
End If
Next q

iki kodu birbiriyle ilişkilendiremedim. belki yapabilen çıkar diye referans olarak koyuyorum. teşekkürler.
 
Rica ederim.
Bence en iyisi geçek olmayan örnek bir dosya eklemeniz.
Tabii altın üye olmayanları düşünerek başka siteyede eklerseniz bakarız.
 
Merhaba alttaki kodu deneyin.J sütununa true yada false yazın.

Kod:
Option Explicit

Private Sub UserForm_Initialize()

Dim a As Integer

With Sheets("Sayfa1")

For a = 1 To .Range(.Range("C2"), .Range("C2").End(xlDown)).Rows.Count

    Controls("Textbox" & a).Visible = .Cells(a + 1, 10).Value
    Controls("Textbox" & a).Top = .Cells(a + 1, 6).Value
    Controls("Textbox" & a).Height = .Cells(a + 1, 4).Value
    Controls("Textbox" & a).Width = .Cells(a + 1, 5).Value
    Controls("Textbox" & a).Left = .Cells(a + 1, 7).Value
    Controls("Textbox" & a).DragBehavior = 1
    Controls("Textbox" & a).ControlTipText = .Cells(a + 1, 9).Value
    Controls("Textbox" & a).MultiLine = True

Next
End With

a = Empty
End Sub
 
Feraz hocam, süper çalışıyor. elinize aklınıza sağlık. allah razı olsun sizden.
çok teşekkür ederim.
 
Rica ederim üstadım.
Sizdende Allah razı olsun.
 
Geri
Üst