Preenchimento automático de TextBox


#1

Prezados,

Estou finalizando uma planilha que tem a finalidade de gerir a documentação de empresas e funcionários de empresas terceirizadas.

A mesma funciona da seguinte maneira:

  • 1ª Aba - Cadastro de Empresas: O usuário irá inserir os dados da empresa, como razão social, endereço, CNPJ, número de contrato, entre outros.

  • 2ª Aba - Cadastro de Funcionários: O usuário irá realizar o cadastro dos funcionários desta empresa. Para isso, o formulário (VBA) solicita a inclusão da empresa (a programação é para a ComboBox realize a busca em função da relação de empresas contratadas, através do dispositivo “RowSource”).

O problema encontrado está justamente na 2ª Aba. Para que o usuário possa vincular o funcionário a ser cadastrado com empresa previamente cadastrada, é necessário que ele informe tanto a razão social quanto o CNPJ.

Necessito que, quando ele escolher a razão social da empresa, a ComboBox do CNPJ seja automaticamente preenchida.

Alguém poderia me ajudar?

Abaixo estou deixando a imagem do código do formulário.

Template do Formulário:

Código do Formulário:
(Em texto)

Private Sub cmdSAIR2_Click()
Unload UserForm2

End Sub

Private Sub cmdSALVAR2_Click()

'Selecionar a planilha oculto 1
Sheets(“CF”).Select

'Selecionar a célula A3
Range(“E11”).Select

'Procurar a primeira célula vazia
Do
If Not (IsEmpty(ActiveCell)) Then
ActiveCell.Offset(1, 0).Select
End If
Loop Until IsEmpty(ActiveCell) = True

'Carregar os dados da TextBox
ActiveCell.Offset(0, 0).Value = TextBox1.Value 'DATA
ActiveCell.Offset(0, 3).Value = TextBox2.Value 'NOME FUNCIONÁRIO
ActiveCell.Offset(0, 4).Value = TextBox14.Value 'FUNÇÃO
ActiveCell.Offset(0, 5).Value = CDate(TextBox15.Value) 'DATA DE VALIDADE DA CNH
ActiveCell.Offset(0, 7).Value = TextBox13.Value 'VALIDADE (CNH)
ActiveCell.Offset(0, 13).Value = CDate(TextBox3.Value) 'ASO (VALIDADE)
ActiveCell.Offset(0, 21).Value = CDate(TextBox6.Value) 'ORDEM DE SERVIÇO (VALIDADE)
ActiveCell.Offset(0, 22).Value = TextBox7.Value 'DOCUMENTO (1)
ActiveCell.Offset(0, 24).Value = CDate(TextBox8.Value) 'VALIDADE (1)
ActiveCell.Offset(0, 25).Value = TextBox9.Value 'DOCUMENTO (2)
ActiveCell.Offset(0, 27).Value = CDate(TextBox10.Value) 'VALIDADE (2)
ActiveCell.Offset(0, 28).Value = TextBox11.Value 'DOCUMENTO (3)
ActiveCell.Offset(0, 30).Value = CDate(TextBox12.Value) 'VALIDADE (3)

'Limpar as caixas de texto
TextBox1.Value = Empty
TextBox2.Value = Empty
TextBox3.Value = Empty
TextBox6.Value = Empty
TextBox7.Value = Empty
TextBox8.Value = Empty
TextBox9.Value = Empty
TextBox10.Value = Empty
TextBox11.Value = Empty
TextBox12.Value = Empty
TextBox13.Value = Empty
TextBox14.Value = Empty
TextBox15.Value = Empty

'Carregar os dados da ComboBox
ActiveCell.Offset(0, 1).Value = ComboBox1.Value 'EMPRESA (CARREGAR DADOS)
ActiveCell.Offset(0, 2).Value = ComboBox2.Value 'CNPJ (CARREGAR DADOS)
ActiveCell.Offset(0, 6).Value = ComboBox12.Value 'CATEGORIA (CNH)
ActiveCell.Offset(0, 8).Value = ComboBox13.Value 'CONTRATANTE
ActiveCell.Offset(0, 9).Value = ComboBox14.Value 'TIPO
ActiveCell.Offset(0, 10).Value = ComboBox15.Value 'AUTORIZAÇÃO
ActiveCell.Offset(0, 11).Value = ComboBox16.Value 'SETOR
ActiveCell.Offset(0, 12).Value = ComboBox3.Value 'ASO (DISPOSIÇÃO)
ActiveCell.Offset(0, 14).Value = ComboBox4.Value 'FICHA REGISTRO (DISPOSIÇÃO)
ActiveCell.Offset(0, 16).Value = ComboBox5.Value 'CARTEIRA TRABALHO (DISPOSIÇÃO)
ActiveCell.Offset(0, 17).Value = ComboBox6.Value 'CARTEIRA TRABALHO (SITUAÇÃO)
ActiveCell.Offset(0, 18).Value = ComboBox7.Value 'FICHA ENTREGA - EPI (DISPOSIÇÃO)
ActiveCell.Offset(0, 20).Value = ComboBox8.Value 'ORDEM DE SERVIÇO (DISPOSIÇÃO)
ActiveCell.Offset(0, 23).Value = ComboBox9.Value 'DISPOSIÇÃO (1)
ActiveCell.Offset(0, 26).Value = ComboBox10.Value 'DISPOSIÇÃO (2)
ActiveCell.Offset(0, 29).Value = ComboBox11.Value 'DISPOSIÇÃO (3)
ActiveCell.Offset(0, 15).Value = ComboBox17.Value 'FICHA REGISTRO (VALIDADE)
ActiveCell.Offset(0, 19).Value = ComboBox18.Value 'FICHA ENTREGA - EPI (VALIDADE)

'Limpar as ComboBox
ComboBox1.Value = Empty
ComboBox2.Value = Empty
ComboBox3.Value = Empty
ComboBox4.Value = Empty
ComboBox5.Value = Empty
ComboBox6.Value = Empty
ComboBox7.Value = Empty
ComboBox8.Value = Empty
ComboBox9.Value = Empty
ComboBox10.Value = Empty
ComboBox11.Value = Empty
ComboBox12.Value = Empty
ComboBox13.Value = Empty
ComboBox14.Value = Empty
ComboBox15.Value = Empty
ComboBox16.Value = Empty
ComboBox17.Value = Empty
ComboBox18.Value = Empty

'Colocar o foco na primeira caixa de texto
TextBox1.SetFocus

Plan2.Activate

Unload UserForm2

End Sub

Private Sub UserForm_Initialize()

Me.ComboBox1.RowSource = “Empresas”
Me.ComboBox2.RowSource = “CNPJ”
Me.ComboBox13.RowSource = “CE!F11:F2000”

With ComboBox3
.AddItem “Possui”
.AddItem “Não Possui”
.AddItem “Não Aplicável”
End With

With ComboBox4
.AddItem “Possui”
.AddItem “Não Possui”
.AddItem “Não Aplicável”
End With

With ComboBox5
.AddItem “Possui”
.AddItem “Não Possui”
.AddItem “Não Aplicável”
End With

With ComboBox6
.AddItem “Adequado”
.AddItem “Não Adequado”
.AddItem “Não Aplicável”
End With

With ComboBox7
.AddItem “Possui”
.AddItem “Não Possui”
.AddItem “Não Aplicável”
End With

With ComboBox8
.AddItem “Possui”
.AddItem “Não Possui”
.AddItem “Não Aplicável”
End With

With ComboBox9
.AddItem “Possui”
.AddItem “Não Possui”
.AddItem “Não Aplicável”
End With

With ComboBox10
.AddItem “Possui”
.AddItem “Não Possui”
.AddItem “Não Aplicável”
End With

With ComboBox11
.AddItem “Possui”
.AddItem “Não Possui”
.AddItem “Não Aplicável”
End With

With ComboBox12
.AddItem “A”
.AddItem “B”
.AddItem “C”
.AddItem “D”
.AddItem “E”
.AddItem “A/B”
End With

With ComboBox14
.AddItem “Terceirização da Prestação de Serviços”
.AddItem “Quarteirização da Prestação de Serviços”
End With

With ComboBox15
.AddItem “Autorizado”
.AddItem “Não Autorizado”
End With

With ComboBox16
.AddItem “Almoxarifado”
.AddItem “Alta Direção”
.AddItem “Centro de Controle de Arrecadação (CCA)”
.AddItem “Centro de Controle Operacional (CCO)”
.AddItem “Compras / Suprimentos”
.AddItem “Comunicação”
.AddItem “Controladoria”
.AddItem “Engenharia”
.AddItem “Facilities”
.AddItem “Frotas”
.AddItem “Jurídico”
.AddItem “Manutenção Eletroeletrônica”
.AddItem “Meio Ambiente”
.AddItem “Operação”
.AddItem “Ouvidoria”
.AddItem “Receitas Acessórias”
.AddItem “Recursos Humanos”
.AddItem “Regulatório”
.AddItem “Saúde e Segurança do Trabalho”
.AddItem “Segurança Viária”
.AddItem “Sistema de Gestão Integrado”
.AddItem “Tecnologia da Informação”
.AddItem “Tesouraria”
End With

With ComboBox17
.AddItem “Adequado”
.AddItem “Não Adequado”
.AddItem “Não Aplicável”
End With

With ComboBox18
.AddItem “Adequado”
.AddItem “Não Adequado”
.AddItem “Não Aplicável”
End With

End Sub


#2
Olá Luis Fernando ! 

Não sei se entendi direito. Porem vamos lá.
O ideal seria você colocar no evento change do combobox empresa. vlookup ou um “for” ou um loop buscando a referencia da razão social e retornando o CNPJ.
Mais ou menos assim:

Private Sub ComboBoxEMPRESA_Change()

Dim CNPJ    As String
Dim Razao   As String
Razao = Me.ComboBox1.Text
With Sheets("PLANILHA ONDE ESTA O BANCO DE DADOS")
    For i = 1 To 50000
        If .Cells(i, 1) = Razao Then 'ou seja quando ele achar a mesma razão social ele ira colocar o cnpj.
            CNPJ = .Cells(i, 2)
            Me.comboboxCNPJ = CNPJ
            Exit For
        End If
    Next
End With

End Sub

Caso não consiga desenvolver essa parte encaminhe um e-mail para contato@hbs_sheets.com com a planilha em anexo, que te ajudo!!!

Hugo Bichara