Textboxes zichtbaar maken als waarde is ingevuld

Status
Niet open voor verdere reacties.

Esducsafe

Gebruiker
Lid geworden
2 sep 2009
Berichten
185
@Helpers
Het Userform heeft meerdere textboxes verdeeld over twee rijen.
In het voorbeeld beperkt tot 14 (2 x 7) textboxes.

Wanneer in textboxen T1 en TA1 een waarde is ingevuld moeten de textboxen T2 en TA2 zichtbaar worden.
Tot nu toe is het alleen gelukt na het invullen van een getal in T1, T2 enz.
Dan wordt textbox T2 zichtbaar en niet textbox TA2

Hoe het zou moeten werken:
Als in TA1 (tweede rij) een waarde wordt ingevuld, dan moet T2 en TA2 zichtbaar worden
Als in TA2 (tweede rij) een waarde wordt ingevuld, dan moet T3 en TA3 zichtbaar worden
Wie kan mij helpen?
Alvast dank.
Esko

Code:
Dim T As Object
Dim TA As Object  '??

For Each T In UserForm1.Controls
If TypeName(T) = "TextBox" Then
If T.Text = "" Then
 T.Visible = True
 Exit For
 End If
 End If
 Next


For Each TA In UserForm1.Controls 'dit werkt niet
If TypeName(TA) = "TextBox" Then
If TA.Text = "" Then
 TA.Visible = True
 Exit For
 End If
 End If
 Next
 

Bijlagen

  • Textboxes next 001.xls
    47,5 KB · Weergaven: 33
Laatst bewerkt door een moderator:
Misschien dat je makkelijker kan werken met dit:
Code:
Controls("T" & nummer).Visible
Controls("TA" & nummer).Visible

Waarbij dan de variabele nummer 1/tm 7 is.
 
Of zo:

Code:
Private Sub T1_Change()
   M_check
End Sub

Private Sub TA1_Change()
   M_check
End Sub

Sub M_check()
    For j = 2 To 7
       Me("T" & j).Visible = Len(Me("T" & j - 1)) * Len(Me("TA" & j - 1))
       Me("TA" & j).Visible = Me("T" & j).Visible
    Next
End Sub
 

Bijlagen

  • __Textnext snb.xls
    32 KB · Weergaven: 28
Laatst bewerkt:
@Edmoor en SNB

Dank voor jullie reactie.

Esko


Voordat ik de bijdrage van SNB had gezien dacht ik dat ik een paar
honderd regels zou moeten coderen.
Maar met de bijdrage van SNB scheelt dat veel codeerwerk.

Code:
Private Sub T2_Change()
   M_check
End Sub
Private Sub TA2_Change()
   M_check

enzovoort

End Sub

Zelf was ik niet zover gekomen.
Een kleurtje geven lukte nog wel.

Code:
   Dim i As Long
    Dim ctl As Control
    For i = 2 To 7 'aantal Textboxes

    Me.Controls("TA" & i).BackColor = vbGreen
    If Me.Controls("TA" & i).Value = 1 Then
    Me.Controls("TA" & i).Visible = True
    Else
    Me.Controls("TA" & i).Visible = False
    End If
        Me.Controls("T" & i).BackColor = vbRed
        If Me.Controls("T" & i).Value = 1 Then
        Me.Controls("T" & i).Visible = True
        Else
        Me.Controls("T" & i).Visible = False
        End If
    Next i
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan