Ir ao conteúdo

Posts recomendados

Postado

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

Postado
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

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!