Jump to content

Recommended Posts

Posted

AMIGOS,

Tenho dois userforms que interagem entre si. O primeiro selecciona a opção desejada, fechando-se para dar lugar ao 2º userform.

Conforme a opção escolhida no primeiro form, o 2º form abre com os objectos desnecessários (label e textbox), ocultos.

No meu projecto, estes objectos são ocultados no evento "activate" do 2º userform usando:

textbox1.visible = false

No entanto, se precisar de outra opção no form 1, também teria que colocar as instruções no mesmo evento, "activate".

É aqui que o erro surge, pois as opções que não necessitava para a acção anterior, são necessárias agora e aparece o erro de objecto oculto.

Claro que não queria recorrer a um terceiro userform.

Obrigado

Abraços para a comunidade PAP.

Posted (edited)

boas

testei num ficheiro e não vi qualquer problema.

também podes alterar a propriedade visivel nas propriedades e já não necessitas de colocar no evento.

cumps

acao

Edited by acao
Posted (edited)

Boa noite, ACAO.

Mas se alterar as propriedades, fica sempre oculto quer escolha a opção A ou opção B, certo?

Mas não é isso que quero.

No ficheiro que testaste, tenta colacar a instrução "textbox1.setfocus" e correr a aplicação com as duas opções "A" e "B". A aplicação para com certeza em

textbox1.setfocus, pois diz que se não pode aplicar o setfocus a um objecto não visível.

Posso mandar-te o código que tenho para veres onde estou a falhar?

Um abraço

Manuel António

Edited by manuel antonio
Posted (edited)

boas

depois num evento qualquer amostras os objectos, textbox.visible = true

também tens a propiedade «enabled» que fica visivel mas sem ação.

textbox1.setfocus, pois diz que se não pode aplicar o setfocus a um objecto não visível.

altera o foco para outro. a propriedade tabIndex indica o ordem do foco

cumps

acao

Edited by acao
Posted

Bom dia, ACAO.

O foco, tem que ficar naquela textbox, só que mesmo inserindo a instrução de "visible=true" imediatamente antes da atribuição do foco, continua a dar-me erro.

Deslocando a instrução de setfocus para o evento de saída do form, continua a dar o mesmo erro.

Dá uma olhada p.f. neste código e vê se encontras nele o motivo do erro.

Private Sub CommandButton5_OPÇÕES_Click()
Sheets("VIDEOTECA").Protect
Unload Me
Call VOLTAR_AO_MENU

End Sub

Private Sub UserForm_Activate()
Sheets("VIDEOTECA").Unprotect
Sheets("VIDEOTECA").Select
Dim resultado As VbMsgBoxResult
 resultado = MsgBox("----- PRETENDE EFECTUAR CONSULTAS? -----", vbYesNo, "-	 CONSULTAR   OU   GRAVAR	 -")
 If resultado = vbYes Then
	  Label10.Visible = False
	  Label12.Visible = False
	  Label14.Visible = False
	  TextBox2_TITULO.Visible = False
	  TextBox3_GENERO.Visible = False
	  TextBox4_LOCALIZ.Visible = False
	  CommandButton8_ALTERAR.Visible = False
	  CommandButton4_GRAVAR.Visible = False

	  Label1.Visible = True
	  TextBox1_PROC.Visible = True
	  CommandButton3_LIMPAR.Visible = True

	  TextBox1_PROC.SetFocus

 Else
	  Label10.Visible = True
	  Label12.Visible = True
	  Label14.Visible = True
	  TextBox2_TITULO.Visible = True
	  TextBox3_GENERO.Visible = True
	  TextBox4_LOCALIZ.Visible = True
	  CommandButton8_ALTERAR.Visible = True
	  CommandButton4_GRAVAR.Visible = True

	  Label1.Visible = False
	  TextBox1_PROC.Visible = False
	  CommandButton3_LIMPAR.Visible = False

	  TextBox2_TITULO.SetFocus

 End If
End Sub
As linhas a azul foram inseridas para tentar permitir a atribuição do foco, mas nem mesmo assim.

Cumprimentos

Manuel Antonio

Posted (edited)

boas

amigo no cod parece-me estar tudo bem no entanto poderá ser noutro procedimento.

tenta assim:

coloca breaksPoints no cod, para ver em que linha está o erro,

se não sabes o que é tenta pesquisar breaksPoint (para coloca-los basta clicar na barrinha lado esquerdo com o rato e aparece um ponto vermelho, isso faz parar o programa) depois é só correr mo programa e verificar.

ps: verifica se tens algum objecto adicionado sem quereres que esteja invisivel, verifica na combo la no cimo aonde estão os nomes de tudo o que tens adicionado, verifica qual tem a propriedade tabindex = 0 talvez seja esse.

cumps

acao

Edited by acao
Posted

Boa tarde, ACAO.

Vou fazer a verificação e tentar descortinar o que está a causar isto.

Mas confesso que é estranho, passar numa linha em que se diz que é para tornar visível e o programa ignorar e dar erro na linha imediatamente a seguir.

Tenho ignorado os break points porque sempre que o programa dá um erro, pinta-me a linha de amarelo, assinalando o erro que fez parar o programa.

Vou ver se consigo levantar o veu a isto.

Um abraço

Manuel António

Posted

ACAO.

O que pretendia, era que ao clicar em consultar, todos os objectos relativos à gravação ficassem escondidos e quando clicar em gravar, os objectos relativos à consulta, ficassem escondidos, isto no userform principal.

Cumprimentos

M.A.

Posted

ACAO.

Vou instalar o dropbox, para futuras situações. Para a situação actual, contornei o problema, criando um userform diferente

com botons de opção incluídos. Isso resolve o meu problema, suprimindo o que não pertence à opção necessária.

Queria no entanto pedir-te um exclarecimento:

Na primeira página do livro de excell, tenho distribuídos 8 icons, em jeito de menú inicial, cada um com uma macro a direccionar para a folha e userform respectivos. É possível, quando o rato se coloca em cima de um desses icons, fazer aparecer um comentário flutuante, sem ter que adicionar o comentário na célula?

Abraços

Manuel António

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.