Ajuda para fazer fo...
 
Notifications
Clear all

Ajuda para fazer formulário

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

Boas!

Eu estou a fazer um formulário no entanto estou com algumas dúvidas que espero que vocês me possam esclarecer.

No formulário tenho uma combobox que vai buscar os valores à coluna B2:B5000 da planilha "Informações". O que pretendo é que ao seleccionar determinado dado na combobox preencha automaticamente mais duas textbox do formulário com as informações que estão na coluna A2:5000 e C2:5000, da mesma planilha, com os dados correspondente à linha seleccionada na combobox.

Outra dúvida que me surgiu é como é que eu introduzo fórmulas e como faço os valores aparecerem numa textbox no mesmo formulário

Espero ter sido claro

Como eu sou novo em programação no VBA do excel de certeza que me irão surgir mais dúvidas, e quando isso acontecer usarei da este tópico para as expôr.

Cumprimentos

 
Postado : 08/08/2011 4:49 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Amigo,
Não sei se é exatamente isso que fiz no exemplo, mais serve como idéia para solucionar sua dúvida.

 
Postado : 08/08/2011 5:23 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Permitam-me...

Com essas linhas é possivel fazer, também.

Private Sub ComboBox1_Change()
LINHA = ComboBox1.ListIndex + 1
TextBox1.Value = Plan1.Range("B2:B65000").Item(LINHA)
TextBox2.Value = Plan1.Range("C2:C65000").Item(LINHA)
'TextBox3.Value = Plan1.Range("D2:D65000").Item(LINHA)
End Sub
 
Postado : 08/08/2011 6:07 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Amigo,
Não sei se é exatamente isso que fiz no exemplo, mais serve como idéia para solucionar sua dúvida.

É isso mesmo, obrigado pela dica. Como é que eu ponho essas duas textbox bloqueadas? Ou seja, não é permitido editar esses valores.

Obrigado também ao joseA pelas recomendações

Em relação às fórmulas vamos supor que eu tenho 3 textbox:

textbox1 = 1
textbox2 = 2
textbox3 = textbox1 + textbox2 (e este valor aparece no fórmulário) = 3

de seguida faz a formula (1+2)/3 e o valor resultante aparece numa celula, por exemplo (D1), da planilha

Cump

 
Postado : 08/08/2011 7:18 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Tou aqui a tentar adaptar o ficheiro que fizeste e não estou a conseguir. Enquanto que o teu ficheiro a planilha está identificada como Plan1, a minha está como "Informações", e quando mudo o nome da planilha ele dá erro ("Compile error: Variable not defined")

Alguma pista?

Deixo aqui o código:

Informações!B1 = SE(A1="";"";PROCV(A1;A:C;2;0))
Informações!C1 = SE(A1="";"";PROCV(A1;A:C;3;0))

A tabela também está na planilha Informações
......

Private Sub cb_obra_Change()
Informações.Range("a1").Value = cb_obra.Value
txt_localização.Value = Informações.Range("b1").Value
txt_dobra.Value = Informações.Range("c1").Value
End Sub

Private Sub UserForm_initialize()
txt_dataensaio = Date
txt_código = valmax + 1
cb_obra.Clear
Informações.Cells(3, 1).Select
Do While ActiveCell.Value <> ""
cb_obra.AddItem ActiveCell.Value
ActiveCell.Offset(1, 0).Select
Loop
cb_operador.RowSource = "Informações!E2:E30"
End Sub
 
Postado : 08/08/2011 8:40 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Colega, para trabalharmos coms os objetos WorkBook, WorkSheets, ..... fora do padrão original do Excel (Plan1, Plan2, ...) precisamos referenciá-los, ou seja mostrar ao programa que é quem.
Por exemplo, em seu código, ao renomear a Aba "Plan1" para "informações" devemos efetuar o seguinte:

Dim swInfo As Worksheet
Set swInfo = Sheets("informações")

swInfo.Range("a1").Value = ComboBox1.Value
........................................

Qualquer outra aba que renomear, e for utiliuza-la em rotina se faz necessário Seta-la no VBA, ou usar o indice Sheets(1), Shetts(2)...

Se renomear a aba Plan2 para "Retorno", devemos colocar na rotina :

Dim swRetorno As Worksheet
Set swRetorno = Sheets("Retorno")

swRetorno.Range("a1").Value = ComboBox1.Value
........................................
TextBox1.Value = swRetorno.Range("b1").Value

Para entender um pouco mais sobre estes Objetos, de uma olhada nas Lições 4, 5 e 6 do curso do Julio abaixo, é Gratuito, são 120 lições, é só aproveitar.

Lição 04: VBA - Trabalhando com o objeto Application
http://www.juliobattisti.com.br/excel12 ... licao4.htm
[]s

 
Postado : 08/08/2011 9:50 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Por acaso já tinha constatado isso quando no exemplo dado pelo caio mudei o nome das planilhas e logo depois deu erro. Então experimentei correr o comando mas com referencia à Plan1 e deu resultado.

Obrigado pelo link. Vou dar uma vista de olhos ;)

 
Postado : 08/08/2011 10:38 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Pessoal,

estou montando um formulario onde tenho 2 variaveis (Box de Origem e Box de Destino), e gostaria de logo depois de preencher esses campos com os Estados acionasse o botão buscar e me retornasse em outro campo qual seria a aliquota entre esses 2 estados, porem para isso existe 704 combinações. Seria possivel?

Obs.: Já tenho essa planilha montada com as 704 combinações, tenho também uma coluna onde criei chaves para ver se me ajudava a montar, mas ainda não consegui (pra montar essa chave concatenei o estado de origem com o estado de destino e para isso nos retorna uma aliquota).

Agradeço desde já a ajuda

 
Postado : 08/08/2011 9:09 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Pessoal aqui esta o arquivo.

Na parte de aliquotas, vcs podem perceber que teremos 704 cominações, porém são as siglas dos estados brasileiros.

No combo Origem e Destino seriam digitados a sigla do estado, e retornaria a aliquota no campo correspondente.

Ainda falta incluir um combo onde retornaria também o diferencial da aliquota

 
Postado : 08/08/2011 10:05 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Tou a fazer um formulário para fazer requisições.

Quem preencher o formulário só pode fazer uma requisição por dia. Ao abrir o formulário já pus o dia a aparecer automaticamente, mas agora quero por a requisição a aparecer mediante o dia, ou seja, se hoje fizer três entradas na requisição, todas elas serão numeradas com o n.º 1. Se fizer outras três amanhã, elas serão numeradas com o n.º2, e assim sucessivamente. Alguma dica?

Cump

 
Postado : 09/08/2011 2:10 pm