Notifications
Clear all

TextBox Colorido conforme condição

6 Posts
3 Usuários
0 Reactions
2,215 Visualizações
(@laeoli)
Posts: 85
Estimable Member
Topic starter
 

Boa Noite!

Srs, venho novamnete solicitar vossa ajuda, pois tenho um formulario com 9 textbox e preciso colorir o fundo conforme uma colocar uma condição (texto contido na celula da planilha). Este texto na célula pode variar em 5 tipos. Consegui colocar para o 1° textBox, mas não tive sucesso em fazer o loop, veja o codigo que apliquei:

With ThisWorkbook.Worksheets("FORNO3501")
'TextBox Amarelo
If Range("E2").Text = "DESENVOLVIMENTO" Then
Me.txt3501_1.BackColor = &H80FFFF
End If
'TextBox Verde
If Range("E2").Text = "PETROLEO" Then
Me.txt3501_1.BackColor = &HFF00&
End If
'TextBox Rosa
If Range("E2").Text = "RETRABALHO" Then
Me.txt3501_1.BackColor = &HFF80FF
End If
'TextBox Vermelho
If Range("E2").Text = "DEVOLUÇÃO" Then
Me.txt3501_1.BackColor = &H8080FF
End If
'TextBox Azul
If Range("E2").Text = "SIMILAR" Then
Me.txt3501_1.BackColor = &H8000000D
End If

End With

Mui grato!!!

 
Postado : 12/01/2014 6:35 pm
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

Laeoli,

Boa Noite!

Supondo que os demais textbox se chama txt3501_2, txt3501_3, txt3501_4, txt3501_5, txt3501_6, txt3501_7, txt3501_8 e txt3501_9, utilize assim:

    With ThisWorkbook.Worksheets("FORNO3501")
        Select Case Range("E2").Value
        Case "DESENVOLVIMENTO"
            Me.txt3501_1.BackColor = &H80FFFF
            Me.txt3501_2.BackColor = &H80FFFF
            Me.txt3501_3.BackColor = &H80FFFF
            Me.txt3501_4.BackColor = &H80FFFF
            Me.txt3501_5.BackColor = &H80FFFF
            Me.txt3501_6.BackColor = &H80FFFF
            Me.txt3501_7.BackColor = &H80FFFF
            Me.txt3501_8.BackColor = &H80FFFF
            Me.txt3501_9.BackColor = &H80FFFF
        Case "PETROLEO"
            Me.txt3501_1.BackColor = &HFF00&
            Me.txt3501_2.BackColor = &HFF00&
            Me.txt3501_3.BackColor = &HFF00&
            Me.txt3501_4.BackColor = &HFF00&
            Me.txt3501_5.BackColor = &HFF00&
            Me.txt3501_6.BackColor = &HFF00&
            Me.txt3501_7.BackColor = &HFF00&
            Me.txt3501_8.BackColor = &HFF00&
            Me.txt3501_9.BackColor = &HFF00&
        Case "RETRABALHO"
            Me.txt3501_1.BackColor = &HFF80FF
            Me.txt3501_2.BackColor = &HFF80FF
            Me.txt3501_3.BackColor = &HFF80FF
            Me.txt3501_4.BackColor = &HFF80FF
            Me.txt3501_5.BackColor = &HFF80FF
            Me.txt3501_6.BackColor = &HFF80FF
            Me.txt3501_7.BackColor = &HFF80FF
            Me.txt3501_8.BackColor = &HFF80FF
            Me.txt3501_9.BackColor = &HFF80FF
        Case "DEVOLUÇÃO"
            Me.txt3501_1.BackColor = &H8080FF
            Me.txt3501_2.BackColor = &H8080FF
            Me.txt3501_3.BackColor = &H8080FF
            Me.txt3501_4.BackColor = &H8080FF
            Me.txt3501_5.BackColor = &H8080FF
            Me.txt3501_6.BackColor = &H8080FF
            Me.txt3501_7.BackColor = &H8080FF
            Me.txt3501_8.BackColor = &H8080FF
            Me.txt3501_9.BackColor = &H8080FF
        Case "SIMILAR"
            Me.txt3501_1.BackColor = &H8000000D
            Me.txt3501_2.BackColor = &H8000000D
            Me.txt3501_3.BackColor = &H8000000D
            Me.txt3501_4.BackColor = &H8000000D
            Me.txt3501_5.BackColor = &H8000000D
            Me.txt3501_6.BackColor = &H8000000D
            Me.txt3501_7.BackColor = &H8000000D
            Me.txt3501_8.BackColor = &H8000000D
            Me.txt3501_9.BackColor = &H8000000D
        End Select
    End With
 
Postado : 12/01/2014 7:19 pm
(@laeoli)
Posts: 85
Estimable Member
Topic starter
 

Boa Noite!

Morel funcionou perfeito, porém não me expliquei corretamente. É que cada TextBox pega um valor de uma celula, por exemplo o txt3501_1 pega a E2, o txt3501_2 pega a E3 e assim por diante até chegar na linha 9 (E10). Claro que o código Case pode ser adaptado facilmente, mas o formulário tem 180 textBox, a sequencia 3501 representa uma planilha que contém 9 celulas, a planilha 3502 também 9 celulas, 3502_1. 3502_2 etc ... No formulário há 20 textbox que corresponde a 20 planilhas na horizontal por 9 na vertical que corresponde 9 linhas de cada planilha, formando uma matriz 20x9 (180 textbox) e neste caso o código ficaria muito grande e nem sei se o VBA suportaria (?).

Grato!

 
Postado : 12/01/2014 8:25 pm
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

Bem... deve ter uma forma de fazer sim. Todavia, agora ficou muito mais complexa e confusa a explicação.

O ideal é você compactar seu arquivo e anexá-lo aqui para poder compreender melhor e para que outros integrantes do fórum também possam ajudar.

 
Postado : 13/01/2014 8:15 am
(@alexcs)
Posts: 7
Active Member
 

Laeoli,

Boa tarde,

Tive um "problema" semelhante ao seu, porem foi solucionado.
Acredito que pode te ajudar.

Dê uma olhada no tópico: Realçar Resultado no Texbox.

Att.
;)

 
Postado : 13/01/2014 9:37 am
(@laeoli)
Posts: 85
Estimable Member
Topic starter
 

Boa Tarde!

Alexcs, Obrigado, mas no meu caso a informação não esta contida diretamente na TextBox. Trata-se de um formulario com 180 textBox alimentado por 20 planilhas. As informações estão na coluna B de cada planilha que são numeros de ordem de serviço e na coluna E contém a classifificação dessas OS que pode ser Desenvolvimento ou Similar ou Retrabalho ou Devolução. Para identificação usamos padrões de cores. Estou tentando informatizar este procedimento no meu trabalho.

Morel, não consegui compactar o arquivo, cheguei np máximo a 522kb. Estive pensando em fazer diferente. Tentei adaptar um código direto na planilha mas não deu certo. Seria possível criar uma ListBox com as opções cuja a escolha do tipo de OS tornasse a textbox colorida?

Pessoal agradeço a todos! Para concluir o programa só me falta isto.

 
Postado : 14/01/2014 11:23 am