Views

...

Important:

Quaisquer soluções e/ou desenvolvimento de aplicações pessoais, ou da empresa, que não constem neste Blog podem ser tratados como consultoria freelance.

E-mails

Deixe seu e-mail para receber atualizações...

eBook Promo

Mostrando postagens com marcador Aplicação. Mostrar todas as postagens
Mostrando postagens com marcador Aplicação. Mostrar todas as postagens

Minimizando a aplicação - Mostrando somente um Formulário - Hiding/Minimizing Excel and only displaying UserForm


Sabe como é: Aplicações profissionais requerem alguns cuidados como o de deixar a estação de trabalho livre para a utilização do usuário.

Especialmente quando nossas aplicações tratarão de processos demorados, não fará sentindo deixar a máquina totalmente estagnada. Assim podemos usar alguns recursos para permitir que o usuário continue usufruindo a máquina em outras atividades.

Uma dessas técnicas é minimizar a aplicação e deixar um pequeno formulário indicando o posicionamento sobre a fase em andamento. Isso o manterá informado e ao mesmo tempo permitirá seu livre acesso a outros processos e demandas.

Ahh tá bom, mas como faço isso?

Seguem alguns exemplos para experimentar e escolher:


1º EXEMPLO

Sub RunUserForm()

     Let Application.WindowState = xlMinimized

     UserForm1.Show


End Sub


2º EXEMPLO

Private Sub Workbook_Open()

     Let Application.WindowState = xlMinimized

     DataReductionForm.Show

     Let Application.WindowState = xlMaximized

End Sub




3º EXEMPLO


Private Sub UserForm_Initialize()
     Let Application.WindowState = xlNormal
     Let Application.Width = Me.Width
     Let Application.Height = Me.Height
End Sub


4º EXEMPLO

Private Sub Workbook_Open()
     Let Application.WindowState = xlMinimized

     UserForm1.Show vbModeless

End Sub


5º EXEMPLO

Sub Workbook_BeforeClose(Cancel As Boolean)

     Let Application.Visible = True

End Sub

Private Sub Workbook_Open()

     If ThisWorkbook.ReadOnly = True Then
          Let Application.Visible = False

          CBReq.Show
     End If

End Sub


6º EXEMPLO

Private Sub UserForm_Activate()
     Let Application.Left = Me.Left
     Let Application.Top = Me.Top
     Let Application.Width = Me.Width - 100
     Let Application.Height = Me.Height - 100
End Sub

Private Sub UserForm_Layout()
     Let Application.Left = Me.Left
     Let Application.Top = Me.Top

End Sub

Envie comentários e sugestões. Compartilhe este artigo! 
⬛◼◾▪ Social Media ▪◾◼⬛
• FACEBOOK • TWITTER • INSTAGRAM • TUMBLR • GOOGLE+ • LINKEDIN • PINTEREST

⬛◼◾▪ Blogs ▪◾◼⬛ 


⬛◼◾▪ CONTATO ▪

VBA Excel - Mudando o ícone padrão de uma planilha.

Inline image 1


Hello Folks!

Imagine em certo momento do seu dia-a-dia, onde diversas planilhas estão abertas simultaneamente. Isso é raro? Certamente Não. Uma das coisas mais úteis seria identificarmos rapidamente a planilha (ou aplicação MS Excel) que desejamos trabalhar naquele momento.

Quando olhamos para a nossa barra de tarefas do Windows observamos inúmeras planilhas abertas ou ainda pior, olhamos aquele ícone com todos as planilhas agrupadas.

E se...e somente se, pudéssemos atribuir um ícone diferente para cada aplicação MS Excel que estivéssemos usando? Imagine identificarmos a nossa aplicação rapidamente através do seu ícone, seria muito bom! Além disso destacaríamos a nossa aplicação de outras que estivessem rodando nas máquinas dos nossos Clientes.

Mas é possível alterar o ícone de uma planilha específica, ou de várias, que estão rodando em nossa máquina? Tá bom, chega de tortura, segue como é que se faz:

Ao abrir a planilha, solicite que uma das primeiras coisas a serem executadas, seja a nossa SUB ChangeAppIcon:

Private Sub Workbook_Open()
    ' Author:                     Date:                       Contact:                            URL:
    ' André Bernardes      02/03/2011 09:40    bernardess@gmail.com     http://al-bernardes.sites.uol.com.br/
    ' Application: ***
    ' Ao abrir o formulário.
    ' Listening: - .
    ' Re-escrito/Atualizado em: .
    
    Let Application.ScreenUpdating = False
    Let Application.Caption = ".: Minha Aplicação"
    Let Application.StatusBar = "A&A - In Any Place"

    ' Abre um formulário.
    frmSplash.Show

    Call ChangeAppIcon
    Let Application.ScreenUpdating = True
End Sub

Em seguida crie um módulo com o nome de mdl_Functions_PutIcon e cole o código abaixo nele:

Option Explicit

Declare Function GetActiveWindow32 Lib "USER32" Alias "GetActiveWindow" () As Integer

Declare Function SendMessage32 Lib "USER32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

Declare Function ExtractIcon32 Lib "SHELL32.DLL" Alias "ExtractIconA" (ByVal hInst As Long, ByVal lpszExeFileName As String, ByVal nIconIndex As Long) As Long

Sub ChangeAppIcon()

    ' Author:                     Date:                       Contact:                            URL:
    ' André Bernardes      02/03/2011 08:14    bernardess@gmail.com     http://al-bernardes.sites.uol.com.br/
    ' Application: 
    ' Modification of code from Excel Experts E-Letter Archives.
    ' Original code By Jim Rech can be found by following this
    ' Listening: - .
    ' Re-escrito/Atualizado em: .
    Dim Icon&

    ' Change Icon To Suit

    Const NewIcon$ = "C:\Bernardes\Application.ico" 

    Let Icon = ExtractIcon32(0, NewIcon, 0)

    SendMessage32 GetActiveWindow32(), &H80, 1, Icon '< 1 = big Icon

    SendMessage32 GetActiveWindow32(), &H80, 0, Icon '< 0 = small Icon
End Sub

Pronto! Agora você tem a solução para alterar o ícone das suas aplicações desenvolvidas com o MS Excel.

Esse ícone pode ser utilizado como indicador e ser alterado de acordo com um parâmetro, é só utilizar a sua imaginação, de acordo com a sua necessidade.

Outro aspecto interessante é o de que você também pode utilizar um ícone de arquivo executável, como por exemplo o Notepad.exe. Basta que coloque o caminho onde ele está no ambiente do Windows que o seu ícone será mostrado.

Tags: Bernardes, MS, Microsoft, MS Office, Automation, Automação, Aplicação, Application, Icon, ícone, image, change, DLL, API, SendMessage, LIB, USER32.DLLSHELL32.DLL




eBooks VBA na AMAZOM.com.br

LinkWithinBrazilVBAExcelSpecialist

Related Posts Plugin for WordPress, Blogger...

Vitrine