Notifications
Clear all

MACRO CONCATENAR VALORES DE TEXTBOX

15 Posts
1 Usuários
0 Reactions
1,953 Visualizações
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Olá pessoal, tenho uma TextBox1 que preciso que concatene os valores preenchidos de outras TextBox2 e ComboBox1, assim que elas forem preenchidas.
Exemplo:

TextBox1 = Já de inicio deverá ter uma mascará [UVA_111_222/222_14/15-X], onde UVA_ e fixo, 111_ e o valor preenchido na TextBox2, 222/222_ e o valor preenchido na ComboBox1, 14/15_ e fixo, -X e sequencia. Lembrando que devem estar com a separação anderlaine "_" .

Acima os números 111, 222/222 e X são para explicar as fontes de extração, pois se a TextBox2 e ComboBox1 se forem vazias, a mascara deverá ser [UVA_14/15], concatenando conforme preenchimento delas.

silvajmp

 
Postado : 23/06/2014 6:52 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Boa noite!!

Tente segui um raciocionio próximo disso ou melhor.

Private Sub CommandButton1_Click() 
    Dim s As String 
    s =TextBox1.Value  & TextBox2.Value & TextBox3.Value 
     
    MsgBox s 
End Sub 

Não testado!!!!!!!!!!!!

Att

 
Postado : 23/06/2014 6:57 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Alexandre, obrigado por me atender, mas não deu certo, não aparece nada, adaptei no botão "Novo" do meu UserForm para quando acionado libera os textboxes e comboboxes.

silvajmp

 
Postado : 23/06/2014 8:13 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Eu ainda não entendi. Mas talvez algo assim:

 Private Sub Novo_Click()
Dim vMasc1 As String, vCombo1 As String
    vMasc1 = "UVA_": vCombo1 = "14/15_"
    TextBox1.Text = vMasc1 & TextBox2.Text & ComboBox1.Value & vCombo1 & "_x"
End Sub
 
Postado : 23/06/2014 9:04 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Reinaldo obrigado por me atender, coloquei seu código e a mascara fixa funcionou, mas quando seleciono as opções das caixas comboboxes não esta concatenando. Estou adaptando neste código.

Private Sub btnNovo_Click()
Dim z As Long
Dim vMasc1 As String, vCombo1 As String
    vMasc1 = "UVA_": vCombo1 = "14/15_"
    txtIDServ.Text = vMasc1 & cmbSetor.Value & cmbOficina.Value & vCombo1 & "_x"

        z = Application.Max(Sheets("BCODADOS").Range("A:A")) + 1
                With frmOrcamento
                .lblNro.Caption = z
                End With
                
             'Habilita botoes de alteraçao
             Me.cmbSetor.BackColor = &HFFFFFF
             Me.cmbSetor.Locked = False
             Me.cmbMIS.BackColor = &HFFFFFF
             Me.cmbMIS.Locked = False
             Me.txtEquipamento.BackColor = &HFFFFFF
             Me.txtEquipamento.Locked = False
             Me.cmbTpSer.BackColor = &HFFFFFF
             Me.cmbTpSer.Locked = False
             Me.txtIDServ.BackColor = &HFFFFFF
             Me.txtIDServ.Locked = False
             Me.txtIDETC.BackColor = &HFFFFFF
             Me.txtIDETC.Locked = False
             Me.txtDescSer.BackColor = &HFFFFFF
             Me.txtDescSer.Locked = False
             Me.cmbOficina.BackColor = &HFFFFFF
             Me.cmbOficina.Locked = False
             Me.cmbTpReq.BackColor = &HFFFFFF
             Me.cmbTpReq.Locked = False
             Me.txtIDItem.BackColor = &HFFFFFF
             Me.txtIDItem.Locked = False
             Me.txtCodigo.BackColor = &HFFFFFF
             Me.txtCodigo.Locked = False
             Me.txtDescReq.BackColor = &HFFFFFF
             Me.txtDescReq.Locked = False
             Me.txtQuantidade.BackColor = &HFFFFFF
             Me.txtQuantidade.Locked = False
             Me.txtUn.BackColor = &HFFFFFF
             Me.txtUn.Locked = False
             Me.txtCustoUnitario.BackColor = &HFFFFFF
             Me.txtCustoUnitario.Locked = False
             Me.txtCustoTotal.BackColor = &HFFFFFF
             Me.txtCustoTotal.Locked = False
             Me.cmbPrEnt.BackColor = &HFFFFFF
             Me.cmbPrEnt.Locked = False
      
        cmbTpReq.SetFocus
        
End Sub

silvajmp

 
Postado : 23/06/2014 9:59 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Bem continuo ainda sem entender.
O Codigo adaptado, faz a concatenação e "libera e colore" botões, isso não afeta a concatenação.
Como aparentemente nesse momento cmbSetor e cmbOficina bem como a variável X ainda não tem valores, então em txtIDServ deve aparecer somente Vmasc1 e vCombo1.
Então em algum evento dos cmb envolvidos é necessário incluir a rotina de concatenação.
Sugestão:
Montar uma rotina de concatenação, tipo:

Private Sub BtnConcat()
Dim vMasc1 As String, vCombo1 As String
vMasc1 = "UVA_": vCombo1 = "14/15_"
txtIDServ.Text = vMasc1 & cmbSetor.Value & cmbOficina.Value & vCombo1 & "_x"
End Sub

Nas rotinas: Sub btnNovo_Click() e nos eventos after update ou change dos cmbSetor e cmbOficina chamar a rotina BtnConcat
+/- assim:

Private Sub btnNovo_Click()

Call BtnConcat
frmOrcamento.lblNro.Caption = Application.Max(Sheets("BCODADOS").Range("A:A")) + 1
                   
'Habilita botoes de alteraçao
Me.cmbSetor.BackColor = &HFFFFFF
Me.cmbSetor.Locked = False
Me.cmbMIS.BackColor = &HFFFFFF
Me.cmbMIS.Locked = False
Me.txtEquipamento.BackColor = &HFFFFFF
Me.txtEquipamento.Locked = False
Me.cmbTpSer.BackColor = &HFFFFFF
......
 
Postado : 24/06/2014 5:03 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Reinaldo bom dia, deu certo sua última postagem, mas como ficaria se eu busca-se "UVA" na Plan3(Parâmetros) G2 e "14/15" na Plan3(Parâmetros) F2, pois assim posso alterar a unidade da empresa e o ano letivo quando necessário.

silvajmp

 
Postado : 24/06/2014 5:32 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

vMasc1 = sheets("Parâmetros").range("G2").value ' "UVA_"
vCombo1 =sheets("Parâmetros").range("F2").value ' "14/15_"

 
Postado : 24/06/2014 6:19 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Reinaldo deu certo, agora estou tentando concatenar somente as iniciais do setor, mas só consegui fazer a extração do das 3 primeiras, seja o exemplo:

EXTRAÇÃO DE CALDO = Quero extrair somente os que estão em destaque.

txtIDServ.Text = vMasc1 & "_" & Left(cmbSetor.Value, 3) & Right(cmbSetor.Value, 3) & "_" & cmbOficina.Value & "_" & vCombo1 & "-" & vNro

silvajmp

 
Postado : 24/06/2014 8:55 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Experimente

Separa = Split(cmbSetor.Value, " ", -1, vbTextCompare)
txtIDServ.Text = vMasc1 & "_" &  Left(separa(LBound(separa)), 3) & Left(separa(UBound(separa)), 2) & "_" & cmbOficina.Value & "_" & vCombo1 & "-" & vNro
 
Postado : 24/06/2014 9:17 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Reinaldo não deu certo esta aparecendo a mensagem Erro em tempo de execução '9 e depurando esta destacando em amarelo a linha baixo:

txtIDServ.Text = vMasc1 & "_" &  Left(separa(LBound(separa)), 3) & Left(separa(UBound(separa)), 2) & "_" & cmbOficina.Value & "_" & vCombo1 & "-" & vNro

silvajmp

 
Postado : 24/06/2014 9:47 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Quando o erro ocorre?

 
Postado : 24/06/2014 9:53 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Reinaldo assim que acionei o botão Novo.

silvajmp

 
Postado : 24/06/2014 10:55 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Então provavelmente é por não haver ainda valor em cmbSetor.
Deve haver um tratamento:
Algo assim:
If cmbsetor.value="" then
concatena só básico. (creio que vmasc/vcombo1/vnro)
else
oconcatena o final
endif

 
Postado : 24/06/2014 11:16 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Reinaldo deu certo, eu acho que este caso das concatenações terminaram.

Valeu!

silvajmp

 
Postado : 24/06/2014 12:14 pm