Notifications
Clear all

Abrir somente o Userform, mais não fechar outras planilhas.

21 Posts
3 Usuários
0 Reactions
5,091 Visualizações
(@edantasrj)
Posts: 14
Active Member
Topic starter
 

Boa noite!
Gostaria de saber se existe alguma forma de no meu aplicativo feito em Excel somente fosse apresentado o userform.
No meu caso eu até já consegui fazer isso, mais quando abro meu aplicativo fecha todas as planilhas. Gostaria de um código que somente fizesse referencia ao meu aplicativo. E quando clicar no botão fechar somente fechasse o aplicativo.

Segue exemplo do meu plicativo.

 
Postado : 01/04/2013 3:36 pm
(@edantasrj)
Posts: 14
Active Member
Topic starter
 

Mauro Coutinho,

Boa noite!
Conforme informei, estou iniciando os estudos em Excel. Poderia disponibilizar o arquivo após suas alterações?

Obs. Eu tenho 2 arquivos um com senha e outro sem, tinha disponibilizado o sem senha, mais talvez tenha ocorrido algum engano al disponibilizar novamente.
Tente a senha:
"edshu7"

De ante mão agradeço mais uma vez a ajuda de vocês.

 
Postado : 04/04/2013 6:19 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

edanta, eu não cheguei a fazer nenhuma alteração significante no projeto, somente acrescentei a declaração da variável no arquivo anexado pelo Wagner.

Baixe o arquivo que ele anexou, abra e na janela do VBA, a da imagem que você postou onde aparece o erro,perceba que está indicando o erro na variável "wk" destacada em azul, então antes desta linha acrescente a variável :

Private Sub Workbook_Open()
Dim Existe As Boolean

Dim wk As Workbook 'Acrescente esta linha

For Each wk In Workbooks
.................
.....................

Depois de dois cliques no userform Coletores e na tela que abrir vai estar no Evento UserForm_Initialize , então acrescente a mesma declaração.

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 04/04/2013 6:42 pm
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

Mauro,

Obrigado pela excelente contribuição!

Eu já tinha esgotado o meu estoque de soluções e aqui está funcionando corretamente da forma que enviei!

Quanto à senha do projeto, ontem à noite, eu também fiquei curioso pois não havia determinado nenhuma senha para o mesmo. Inclusive, tentei o desbloqueio (para poder ver as referências) através de códigos VBA que possuo e até mesmo com um programa de recuperação de senhas e não consegui.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 05/04/2013 5:05 am
(@edantasrj)
Posts: 14
Active Member
Topic starter
 

Mauro,

Bom dia!

Acredito que tenha feito conforme sua orientação, mais ainda continua com o mesmo problema.
Poderia enviar o arquivo para o meu email? [email protected]
Veja o que eu fiz:
Incluir a variável conforme sua orientação
Na pasta de trabalho ficou:

Private Sub Workbook_Open()
Dim Existe As Boolean
Dim wk As Workbook ' incluir aqui
For Each wk In Workbooks
If wk.Name = "Configuração de Rf´s.xlsm" Then
Existe = False
Else
Existe = True
Exit For
End If
Next

If Existe = True Then
Application.Windows("Configuração de Rf´s.xlsm").Visible = False
Coletores.Show vbModeless
Else
Application.Visible = False
Coletores.Show vbModeless
End If
End Sub

No formulário coletores ficou assim:

Private Sub UserForm_Initialize()
Dim wk As Workbook 'Incluir aqui
Dim lngFrmHndl As Long, lngStyle As Long
lngFrmHndl = FindWindow(vbNullString, Me.Caption)
lngStyle = GetWindowLong(lngFrmHndl, GWL_STYLE)
lngStyle = lngStyle Or WS_SYSMENU Or WS_MINIMIZEBOX
SetWindowLong lngFrmHndl, GWL_STYLE, lngStyle
DrawMenuBar lngFrmHndl

End Sub

Salvei e quando fui testar, aparentemente tudo esta como eu quero, mais na hora de fechar ainda continua o problema.
Acreditei que colocando a mesma variável no Evento Fechar_Click resolveria, mais ai quando fui testar tudo se fecha e não abre mais e se tentar verificar os códigos aparece o erro de DLL.
veja:
Se desta vez não der certo irei desistir.
Mais mesmo assim agradeço a força.

 
Postado : 05/04/2013 5:13 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Wagner com a senha que o edanta colocou no post anterior da para desbloquear e ver as referencias.

Edanta, aqui no serviço não temos excel 2007, eles utilizam o path para conversão e abrir no 2003, e o arquivo que o Wagner enviou, funcionou corretamente sem eu precisar acrescentar a declaração que comentei no post anterior, bem estranho.

Uma vez na tela de Referencias, não aparececeu nenhuma como Ausente, a única coisa que notei é sobre esta "ctv OLE Control module", e em uma pesquisa rápida diz se referir ao Microsoft Word, então sugiro que desabilite a mesma e tambem a "Ref Edit Control" e faça outro teste.
Acredito que como ja foi dito anteriormente, como não estamos realizando nenhuma alteração significante no projeto não há necessidade de reenviar o arquivo, pois nada foi alterado.
Desta forma, é como o Wagner ja comentou, provavelmente é incompatibilidade de bibliotecas, e reenviando o arquivo tambem não resolveria.
Uma outra dica, seria desabilitar todas a s referencias e rehabilita-las.

Editei só para colocar que os testes foram feitos no Windows XP

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 05/04/2013 6:01 am
(@edantasrj)
Posts: 14
Active Member
Topic starter
 

Mauro e Wagner,

Muito bom dia!

Com a ajuda de vc´s o problema foi resolvido.
Incluir a variável Dim wk As Workbook no evento Workbook_Open e desabilitei a referência Ref Edit Control e ai tudo funcionando normalmente.

Apesar de ter sido para um pequeno "projeto" , foi muito proveitoso as informações que obtive de vocês. Quando comecei a criá-lo pesquisei na net por “como criar ou montar ou iniciar somente o userform em Excel" e todos os exemplos achados interferiam de alguma forma nas outras pastas de trabalho do Excel. E teve até alguns comentários que dizia que isso não era possível. Mas vocês provaram o contrário.

Parabéns e muito obrigado novamente!

 
Postado : 05/04/2013 6:53 am
Página 2 / 2