• DİKKAT

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

Click Olayı ile sıra ile gizleme ve Gösterme

Katılım
5 Şubat 2009
Mesajlar
188
Excel Vers. ve Dili
Microsoft Office 365
Merhaba arkadaşlar cok ugrastım ama bir türlü yapamadım. ve en sonunda sizlerden yardım istemeye karar verdim :)

benim söyle bir sorunum var. butona tıklayarak textbox ları sıra ile gizleme ve baska bir butona tıklayarak da göstermek istiyorum ama ben bunu sırasıyla yapamadım bir türlü


örnek dosyayı sizler ile paylasıyorum yardımcı olursanız sevinirim.


simdiden tesekkürler..
 

Ekli dosyalar

Aşağıdaki şekilde deneyin.

Kod:
Private Sub CommandButton1_Click()
For x = 1 To 3
If Me.Controls("TextBox" & x).Visible = False Then
Me.Controls("TextBox" & x).Visible = True
Exit Sub
End If
Next
End Sub

Private Sub CommandButton2_Click()
For x = 1 To 3
If Controls("TextBox" & x).Visible = True Then
Controls("TextBox" & x).Visible = False
Exit Sub
End If
Next
End Sub


Veya

Kod:
Private Sub CommandButton1_Click()
For x = 1 To Controls.Count - 1
If Mid(Controls(x).Name, 1, 7) = "TextBox" Then
c = c + 1
If Me.Controls("TextBox" & c).Visible = False Then
Me.Controls("TextBox" & c).Visible = True
Exit Sub
End If
End If
Next
End Sub

Private Sub CommandButton2_Click()
For x = 1 To Controls.Count - 1
If Mid(Controls(x).Name, 1, 7) = "TextBox" Then
c = c + 1
If Me.Controls("TextBox" & c).Visible = True Then
Me.Controls("TextBox" & c).Visible = False
Exit Sub
End If
End If
Next
End Sub
 
Son düzenleme:
Öncelikle tesekkürler.

simdi bu benim işimi gördü ama bu control sadece textbox lar icin,

textbox1 in yanında combobox1 var ve ikisini de aynı anda gizlemek istiyorum bunu nasıl yapabiliriz. Visible olayını aktif yaptıktan sonra disible yaparken asagıdan yukarı dogru yapılabilirmi acaba.
 
Comboboxlar;textboxlardan fazla değilse aşağıdaki kodu kullanın

Kod:
Private Sub CommandButton1_Click()
On Error Resume Next
For x = 1 To Controls.Count - 1
If Mid(Controls(x).Name, 1, 8) = "ComboBox" Then t = t + 1
Next
For a = 1 To Controls.Count - 1
If Me.Controls("TextBox" & a).Visible = False Then
Me.Controls("TextBox" & a).Visible = True
If a <= t Then
If Me.Controls("ComboBox" & a).Visible = False Then Me.Controls("ComboBox" & a).Visible = True
End If
Exit Sub
End If
Next
End Sub


Private Sub CommandButton2_Click()
For x = 1 To Controls.Count - 1
If Mid(Controls(x).Name, 1, 7) = "TextBox" Then c = c + 1
If Mid(Controls(x).Name, 1, 8) = "ComboBox" Then t = t + 1
Next
For a = c To 1 Step -1
If Me.Controls("TextBox" & a).Visible = True Then
Me.Controls("TextBox" & a).Visible = False
If a <= t Then
If Me.Controls("ComboBox" & a).Visible = True Then Me.Controls("ComboBox" & a).Visible = False
End If
Exit Sub
End If
Next
End Sub
 
Bu kod tam istedigim gibi olmus ama benim tablomda calısmıyor.cünkü gizlenmesi gerekmeyen comboboxlar ve textboxlar var.

yani bi form da 20 tane textbox ve combobox var ama ben bunların sadece 10 tanesini gizlemek ve göstermek istiyorum.


frame icindeki textboxlar ve comboboxlar diye ayırabilirmiyiz acaba.
 
Merhaba,
formun olduğu örnek dosyayı ekleyebilirseniz,
daha kolay çözüm bulunacaktır, iyi çalışmalar.
 
Peki ekliyorum.

talep edilen mal bölümünde + butonuna tıklayınca bir sıra daha eklenmesini istiyorum; - ye tıklanınca gizlenmesini istiyorum.
 

Ekli dosyalar

Merhaba
Aşağıdaki dopsyayı inceleyin.
"Talep edilen mal" bölümünde gizlenen "textbox" ve "combobox" 'lara
çeşitli isim verilmiş ve karışık olduğundan;
"TabIndex" leri 1 den 15 e (soldan sağa) kadar sıralı hale getirilmiştir.
Sanırım alttan üç sıranın gizlenmesi yeterli olacaktır.
 

Ekli dosyalar

  • Form.xls
    Form.xls
    113.5 KB · Görüntüleme: 14
Merhaba,
alternatif olsun. Benzer biçimde ilgili combo ve textboxların adı değiştirilmiştir.
İyi çalışmalar.
 

Ekli dosyalar

yardımlarınız icin tesekkürler

On Error Resume Next
For i = 1 To Controls.Count - 1
If Mid(Controls(i).Name, 3, 1) = say Then
Controls(i).Visible = True
End If
Next i

say = say + 1
If say > 4 Then say = 4

bu formülün mantıgını da anlatırsanız benim cok daha ii olur. ögrenmek adına :)
 
Geri
Üst