LOOP DE COMANDO PARA VARIOS BOTOES
Como fazer um loop para acionar vários botões ou outro componente qualquer sem indexadores? Por exemplo. Com indexadores é fácil:
Agora como fazer isso sem indexadores???
Do Until idx = 10
Command1(idx).Enabled = True
idx = idx + 1
Loop
Agora como fazer isso sem indexadores???
Dim ctl As Control
For Each ctl In Me.Controls
If TypeName(ctl) = [Ô]CommandButton[Ô] Then
If ctl.Tag = [Ô]X[Ô] Then
ctl..Enabled = True
End If
End If
Next
Identifique seus controles atraves do TAG dos mesmos.
For Each ctl In Me.Controls
If TypeName(ctl) = [Ô]CommandButton[Ô] Then
If ctl.Tag = [Ô]X[Ô] Then
ctl..Enabled = True
End If
End If
Next
Identifique seus controles atraves do TAG dos mesmos.
Olá Irenko!! Primeiro quero agradecer sua atenção. Mas acho que não consegui ser claro ou não entendi sua resposta, mas o que eu quero é fazer um loop sem precisar digitar o nome do botão, como no seu código. Eu coloco simplesmente CommandButton(idx).qualquercoisa e o laço vai se encarregando de acionar os botões.
Quero evitar na verdade de fazer o seguinte:
command1.visible = true
command2.visible = true
command3.visible = true
command4.visible = true
Fazendo algo do tipo:
Do Until idx = 4
Command(idx).Visible = True
idx = idx + 1
Loop
Isso tem jeito??
Quero evitar na verdade de fazer o seguinte:
command1.visible = true
command2.visible = true
command3.visible = true
command4.visible = true
Fazendo algo do tipo:
Do Until idx = 4
Command(idx).Visible = True
idx = idx + 1
Loop
Isso tem jeito??
Private Sub Form_Load()
For i = 0 To 3
If i = 0 Then
Botão(i).Enabled = False
ElseIf i = 2 Then
Botão(i).Enabled = True
End If
Next
End Sub
ou ainda:
Private Sub Form_Load()
For i = 0 To 3
Select Case i
Case 0, 1
Botão(i).Enabled = False
Case 2, 3
Botão(i).Enabled = True
End Select
Next
End Sub
For i = 0 To 3
If i = 0 Then
Botão(i).Enabled = False
ElseIf i = 2 Then
Botão(i).Enabled = True
End If
Next
End Sub
ou ainda:
Private Sub Form_Load()
For i = 0 To 3
Select Case i
Case 0, 1
Botão(i).Enabled = False
Case 2, 3
Botão(i).Enabled = True
End Select
Next
End Sub
Bom colega o for..each é o caminho basta usa-lo desta forma
o botão acima irá desativar todos os commandbuttons
porém se vc deseja que apenas alguns commandbuttons fiquem invisivieis basta colocar um asterisco na propriedade dos que irão ficar invisiveis, e usar este código
pronto, quase como o irenko tinha dito
Private Sub Command1_Click()
Dim ctl As Control
For Each ctl In Me.Controls
If TypeOf ctl Is CommandButton Then
ctl.Visible= False
End If
Next
End Sub
o botão acima irá desativar todos os commandbuttons
porém se vc deseja que apenas alguns commandbuttons fiquem invisivieis basta colocar um asterisco na propriedade dos que irão ficar invisiveis, e usar este código
Private Sub Command1_Click()
Dim ctl As Control
For Each ctl In Me.Controls
If TypeOf ctl Is CommandButton Then
If ctl.tag = [Ô]*[Ô] Then
ctl.Visible = False
End If
End If
Next
End Sub
pronto, quase como o irenko tinha dito
Olá IRENKO. Já tinha tentado o código que você sugeriu mas dá erro 13. O que realmente resolveu o problema foi o código do Marcelo. AGRADEÇO MUITO A ATENÇÃO DOS DOIS. MUITO OBRIGADO
Tópico encerrado , respostas não são mais permitidas