Notifications
Clear all

contar textBox

9 Posts
1 Usuários
0 Reactions
3,194 Visualizações
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Meus mestres,
Agora preciso de mais uma ajuda:
Tenho 123 textbox,são Boxt1,boxT2 até BoxT123 e onde são lançados números quando aciono uma combo eles são preenchidos e preciso de saber quantos textbox foram preenchido se fosse no execel eu usaria a função cont-se e no Vba Como Faço?
Desde já agradeço
Abraços

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 20/04/2011 4:11 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Geraldo, o ComboBox e os TextBox estão em um Formulário ou estão inseridos na planilha ?

Porque deu vários espaços criando linhas vazias ?

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 20/04/2011 4:53 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Bom dia
o combobox e os TextBox estão no formulário e estou usando o banco de dados do access e quanto os espaço dado aki, foi falta de conhecimento de uso no forum "Falta de experiências" Peço Desculpas,não é nada de linhas vazias

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 21/04/2011 6:14 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Já que foi corrigido, acredito que não será mais excluido.

Geraldo, adicione a rotina abaixo em seu formulário, associei a mesma a um CommandButton por não saber como é a rotina que está utilizando, mas é só adapta-la.

Private Sub CommandButton1_Click()
    Dim cCont As Control
    Dim i As Integer
    
        For Each cCont In Me.Controls
            If TypeName(cCont) = "TextBox" Then
                If cCont.Value <> "" Then
                    i = i + 1
                End If
            End If
    
         Next cCont
    
        MsgBox "Foram preenchidos - " & i & " - TextBox"
End Sub

abraços

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 21/04/2011 11:07 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Obrigado Mestre Mauro Coutinho
Funcionou uma beleza.
Desculpas minhas falhas.

Abraço

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 22/04/2011 4:43 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Mestre
Mauro coutinho
pra contar todos os textbox funcionou bacana,valeu nota 10 , mas ...
Presico contar somente os textBox denominado de BOXT, que são de 1 a 123 ou seja BOXT1 ,BOXT2,BOXT 3 .....ATÉ BOXT123,tentei adaptar mas não conseguir,desculpas sou iniciante, contanDo com o seu atendimento fico muito grato

Geraldo Pereira

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 22/04/2011 8:34 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Valeu, Bernardo...!
Incluindo mais um critério na sugestão do Mauro:

Private Sub CommandButton1_Click()
Dim cont As Long
Dim tb As Control

For Each tb In Me.Controls
If Mid(tb.Name, 1, 4) = "BOXT" And tb.Value <> "" Then
cont = cont + 1
End If
Next

MsgBox (cont & " BOXT(s) preenchido(s).")

End Sub

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 22/04/2011 11:47 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Edson, em sua temos de Identificar o Tipo do Controle, senão ela se estenderá a qualquer Controle no formulário, CommandButton, Label, ComboBox, e dará erro, então só precisamos acrescentar a linha referente a identificação (TypeName) dos Controles TEXTBOX :

Private Sub CbtEdson_Click()
Dim cont As Long
Dim tb As Control

    For Each tb In Me.Controls
        
        If TypeName(tb) = "TextBox" Then 'Somente Controles TEXTBOX
            
            If Mid(tb.Name, 1, 4) = "Boxt" And tb.Value <> "" Then
                cont = cont + 1
            End If
        End If
        
    Next

    MsgBox (cont & " BOXT(s) preenchido(s).")

End Sub

Na rotina que postei, aproveitando a linha MID de sua rotina a mesma ficaria assim :

Private Sub cbtMauro_Click()
    Dim cCont As Control
    Dim i As Integer
    
        For Each cCont In Me.Controls
            If TypeName(cCont) = "TextBox" Then 'Somente controles TEXTBOX
                
                If Mid(cCont.Name, 1, 4) = "Boxt" And cCont.Value = <> Then
                    i = i + 1
                End If
            End If
    
         Next cCont
    
        MsgBox "Foram preenchidos - " & i & " - TextBox"
End Sub

Uma outra observação é que é distinguido Maiuscula de Minuscula "BOXT" é <> de "Boxt".

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 22/04/2011 2:09 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 


Muito bem observado, Mauro!

Apenas em relação ao tipo de controle, justamente por causa do nome BoxT, ficou subentendido que só é utilizado nas TextBoxes...

Mas realmente fica muito melhor a especificação!

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 22/04/2011 3:45 pm