Notifications
Clear all

retornasse sempre a maior dureza dos 3 textbox

4 Posts
3 Usuários
0 Reactions
904 Visualizações
(@wfranca)
Posts: 297
Honorable Member
Topic starter
 

Como posso atribuir um código a essa situação:

tenho 3 textbox que carregam minha dureza.

Exemplo
Textbox1 = Macio - Textbox2 - Medio - Textbox3 = Macio

no exemplo acima eu gostaria que em um textbox ele me retornasse sempre a maior dureza dos 3 textbox, que no exemplo acima seria o médio.

eu tenho as durezas
macio
medio
duro
superduro
extraduro

 
Postado : 11/08/2016 11:38 pm
(@osvaldomp)
Posts: 857
Prominent Member
 

Considerei que todos os TextBoxes estão em um UserForm.
Veja se o código abaixo ajuda.
Se você não conseguir sugiro que você disponibilize uma amostra do seu arquivo.

Private Sub CommandButton1_Click()
 Dim st, s As Long, k As Long
 st = Array("extraduro", "superduro", "duro", "medio", "medio", "macio")
  For s = LBound(st) To UBound(st)
   For k = 1 To 3
    If Me.Controls("TextBox" & k).Text = st(s) Then
     'MsgBox "encontrado " & st(s) & " na TextBox " & k
     Me.TextBox4 = st(s)
     Exit Sub
    End If
   Next k
  Next s
End Sub
 
Postado : 12/08/2016 6:21 am
(@wfranca)
Posts: 297
Honorable Member
Topic starter
 

Osvaldomp, não consegui adaptar ao seu exemplo, é possível ver o meu modelo?

anexei um modelo de teste.

 
Postado : 24/08/2016 5:05 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 
Private Sub UserForm_Initialize()
txt_dureza1.Text = "MACIO"
txt_dureza2.Text = "MEDIO"
txt_dureza3.Text = "MACIO"
Dim st, s As Long, k As Long
st = Array("extraduro", "superduro", "duro", "medio", "medio", "macio")
  For s = LBound(st) To UBound(st)
   For k = 1 To 3
    If Me.Controls("txt_dureza" & k).Text = UCase(st(s)) Then
     'MsgBox "encontrado " & st(s) & " na TextBox " & k
     Me.txt_maiordureza = UCase(st(s))
     Exit Sub
    End If
   Next k
  Next s
End Sub
 
Postado : 24/08/2016 5:14 am