Ir ao conteúdo
  • Cadastre-se
Fernando.Igor

Formulário excel

Recommended Posts

Pessoal, boa tarde.

 

Alguém consegue automatizar o formulário do arquivo em anexo? O formulário está no vb.

 

Queria aprender o código que preenche as listas e o código que vincula o preenchimento de volta ao excel (Plan1!G5:J5).

 

No arquivo tem um exemplo do que eu gostaria (as listas).

 

Abs!

Formulário de Cadastro.xlsm

Compartilhar este post


Link para o post
Compartilhar em outros sites
13 horas atrás, Basole disse:

Este controle não é editavel, ou seja nao aceita inserir dados manualmente.

Para inserir dados voce deve utilizar um textbox.

Ah tá... eu sempre me confundo com esses campos. Já arrumei aqui.

 

Então... o "produto final" era quase isso!

Mas com os códigos que você colocou consegui fazer aqui!

 

Só me tire mais uma dúvida, por favor. No arquivo em anexo está o que eu quero (Formulário2). Fiz dois formulários (1 e 2) com dois jeitos diferentes para carregar as listas (quando você abrir vai entender mais ou menos o que eu queria).

 

Esse no Formulário1, usando um if:

Private Sub ComboBox3_Change()
Sheets("Plan1").Range("i5").Value = Me.ComboBox3.Text

Dim W As Worksheet
Dim Lr As Long
Dim rng As Range, c As Range
' limpa os dados e define a fonte do combobox
If Me.ComboBox3.Text = "Fruta" Then
With ComboBox2
.Clear
.Font.Size = 10
End With
Set W = Sheets("Plan1")
With W
Lr = .Cells(Rows.Count, 4).End(xlUp).Row
Lr = IIf(Lr < 4, 4, Lr)
Set rng = Range("d4:d" & Lr)
For Each c In rng
Me.ComboBox2.AddItem c.Value
Next
End With

Else
With ComboBox2
.Clear
.Font.Size = 10
End With
Set W = Sheets("Plan1")
With W
Lr = .Cells(Rows.Count, 5).End(xlUp).Row
Lr = IIf(Lr < 5, 5, Lr)
Set rng = Range("E4:E" & Lr)
For Each c In rng
Me.ComboBox2.AddItem c.Value
Next
End With
End If

End Sub

E esse no Formulário2, usando uma fórmula índice no próprio excel:

 

Private Sub ComboBox3_Change()
Sheets("Plan1").Range("i5").Value = Me.ComboBox3.Text

Dim W As Worksheet
Dim Lr As Long
Dim rng As Range, c As Range
' limpa os dados e define a fonte do combobox
With ComboBox2
.Clear
.Font.Size = 10
End With
Set W = Sheets("Plan1")
With W
Lr = .Cells(Rows.Count, 13).End(xlUp).Row
Lr = IIf(Lr < 13, 13, Lr)
Set rng = Range("m4:m" & Lr)
For Each c In rng
Me.ComboBox2.AddItem c.Value
Next
End With


End Sub

 

Você teria uma terceira sugestão? Se fossem só "fruta" e "cor", a primeira atenderia facilmente. Mas se eu tiver mais itens fica inviável. O que você acha?

 

E à propósito, você poderia me explicar só essa linha do código:

Lr = .Cells(Rows.Count, 13).End(xlUp).Row
Lr = IIf(Lr < 13, 13, Lr)

 

Valeu @Basole , muito obrigado! Abs!!!

Formulário de Cadastro_v2.xlsm

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×