VBA Excel - Mudando o ícone da Planilha

VBA Excel - Mudando o ícone da Planilha


É importante para algumas aplicações que o ícone da planilha, especialmente quando se abrem muitas simultaneamente, seja específico, identificando prontamente quais dados estão sendo utilizados. O código abaixo não é nenhuma novidade, apenas o disponibilizo como modo clássico de fazê-lo. Sugiro apenas que uma pequena alteração seja efetuada, propiciando que o Path e o nome do arquivo .ICO, estejam posteriormente parametrizáveis em uma pasta. 

É importantíssimo dar o crédito a: Jim RechO código abaixo deve ser postado no Workbook: 

Sub Workbook_Open() 

Let Application.Caption = ".: A&A - Minha planilha personalizada" 

ChangeApplicationIcon 

End Sub 

Agora crie um módulo e coloque o conteúdo 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 

Crie, no mesmo módulo, a SUB que efetuará a chamada às definições acima: 

Sub ChangeApplicationIcon() 

Dim Icon& ' Pegue o ícone de outro aplicativo como abaixo: 
Const NewIcon$ = "Notepad.exe" ' Ou escolha um arquivo .ICO em um diretório: ' 
Const NewIcon$ = "F:\A&A\A&A - LogoIcon - 002.ico" 

Let Icon = ExtractIcon32 (0, NewIcon, 0) 

SendMessage32 

GetActiveWindow32(), &H80, 1, Icon '< 1 =" big" 0 =" small">

End Sub 


Envie seus comentários e sugestões e compartilhe este artigo!

brazilsalesforceeffectiveness@gmail.com

✔ Brazil SFE®✔ Brazil SFE®´s Facebook´s Profile  Google+   Author´s Professional Profile  ✔ Brazil SFE®´s Pinterest       ✔ Brazil SFE®´s Tweets

Série VBA Tips - Registro do LOG de acesso às aplicações

Série VBA Tips - Registro do LOG de acesso às aplicações


É muito comum que o desenvolvedor queira registrar o número de acessos, bem como acompanhar quem está acessando o seus arquivo através de um .LOG.

Isso pode ser facilmente implementado por adicionarmos uma pequena função dentro do FORM Splash (O primeiro FORM a ser aberto) da sua aplicação. Você pode alterar o código para que grave esses arquivos .LOG em um diretório (ou servidor de arquivos) escondido e acompanhar até mesmo remotamente os acessos à sua aplicação.


NO VBE DENTRO DO FORM SPLASH

Sub Form_Open (Cancel As Integer)

' Author: Date: Contact:
' André Bernardes 18/06/2008 08:21 brazilsalesforceeffectiveness@gmail.com
' Sub de abertura do formulário.
' Rastreador inserido em 25.09.2008 - 10:52
.LOG
.

Dim ThisFormName As String

Let ThisFormName = Me.Name

Call Rastrear ' Registra acesso no Log.
Call ImagesPath
Call SetMoldura("Logando à aplicação", " . . . ")


HideAccessCloseButton ' Elimina o botão fechar na janela da aplicação do Windows.


Me.LblTime.Caption = Now()

Call AssenteAcesso("OF", ThisFormName, "Sys: Splash de abertura.")
Call SetMoldura("", ".: A&A - In Any Place")


End Sub


A FUNÇÃO QUE DEVE COLAR DENTRO DO SEU MÓDULO PARA QUE O REGISTRO SEJA EFETUADO É:


Function Rastrear()


' Author: Date: Contact:
' André Bernardes 25/09/2008 10:01 brazilsalesforceeffectiveness@gmail.com
' Cria arquivo .LOG

Open Application.CurrentProject.Path & "\" & Left(Application.CurrentProject.Name, Len(Application.CurrentProject.Name) - 4) & ".log" For Append As #1
Print #1, " "
Print #1, "User: " & atCNames(1) & "- " & Trim(atCNames(2)), Now()
Print #1, " In: " & CodeProject.FullName
Print #1, " "
Close #1


End Function

Se você tiver um pouco de criatividade poderá registrar todos os acessos de todos as aplicações (MS Access, MS Excel, MS Word, MS PowerPoint, etc...) no mesmo arquivo .LOG analisando-o quando desejar.

A infinidade de possibilidades de utilização dessa solução são infinitas, então divirta-se.



Envie seus comentários e sugestões e compartilhe este artigo!

brazilsalesforceeffectiveness@gmail.com

✔ Brazil SFE®✔ Brazil SFE®´s Facebook´s Profile  Google+   Author´s Professional Profile  ✔ Brazil SFE®´s Pinterest       ✔ Brazil SFE®´s Tweets
diHITT - Notícias