Propósito

✔ Programação GLOBAL® - Quaisquer soluções e/ou desenvolvimento de aplicações pessoais, ou da empresa, que não constem neste Blog devem ser tratados como consultoria freelance. Queiram contatar-nos: brazilsalesforceeffectiveness@gmail.com | ESTE BLOG NÃO SE RESPONSABILIZA POR QUAISQUER DANOS PROVENIENTES DO USO DOS CÓDIGOS AQUI POSTADOS EM APLICAÇÕES PESSOAIS OU DE TERCEIROS.

.: Vitrine

Carregando artigos...

Views

Mostrando postagens com marcador Functions. Mostrar todas as postagens
Mostrando postagens com marcador Functions. Mostrar todas as postagens

VBA Excel - 13 Funções Interessantes




É sempre bom podermos sacar algumas soluções prontas, para que apenas as copiemos e colemos em nossas necessidades. Ahhh, você nunca fez isso? Mas este Blog existe para isso. Para que você copie e use!

Para facilitar a sua vida coloco abaixo alguns exemplos que espero sejam úteis:

- Delete arquivos facilmente, quando estes não estiverem em uso.

Caracteres coringas (*) podem ser usados em substituição ao nome do arquivo (Mas cuidado!).

Sub DelFile() 
' Author: André Bernardes 
' Date: 13.10.2008 – 16:10 
' Contact: bernardess@gmail.com 

Dim MyFile As String 'Esta Linha de código é opcional 

On Error Resume Next 'Caso ocorram erros, estes não serão percebidos por usuários. 

Let MyFile = "c:\folder\filename.xls" 

Kill MyFile 
End Sub 

 - Protegendo a pasta (worksheet) corrente com uma senha de proteção.

Sub ProtegSheet() 
' Author: André Bernardes 
' Date: 13.10.2008 – 16:10 
Dim Psswrd ' Esta linha de código é opcional.
Let Psswrd = "bernardes"
ActiveSheet.Protect Psswrd, True, True, True 
End Sub

 - Desproteja a pasta (worksheet) corrente com uma senha de proteção.

Sub UnProtegSheet() 
' Author: André Bernardes
 ' Date: 13.10.2008 – 16:10
 ' Contact: bernardess@gmail.com Let Psswrd = "bernardes"

ActiveSheet.Unprotect Psswrd 
End Sub

 - Protegendo todas as pastas (worksheets) de uma mesma planilha.

Sub ProtegAll() 
' Author: André Bernardes 
' Date: 11.10.2008 – 08:05 
' Contact: bernardess@gmail.com Dim PlansCount 

' Esta linha de código é opcional. Dim j 
' Esta linha de código é opcional.

Let PlansCount = Application.Sheets.Count 

' Retorna quantas pastas (worksheets) contém nesta planilha.
Sheets(1).Select 

' Aqui selecionamos a primeira pasta (worksheet).
For j = 1 To PlansCount ActiveSheet.Protect
If j = PlansCount Then End End If
ActiveSheet.Next.Select Next j 
End Sub

 - Prevenindo o usuário quanto a área da pasta (worksheets) que não pode ser alterada.

Este exemplo previnirá o usuário sobre selecionar células num range (área) específico na pasta (worksheet). 

Este procedimento pode ser escrito na própria pasta (worksheet) ou num módulo.

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range) 
' Author: André Bernardes 
' Date: 10.10.2008 – 17:55 
' Contact: bernardess@gmail.com 

If Not Application.Intersect(Target, Range("A1:A100")) Is Nothing Then
Cells(ActiveCell.Row, 2).Select
MsgBox "Descupe, mas não pode selecionar células na faixa: A1:A100!"
End If
End Sub

 - Como obter o local de atividade da aplicação corrente:

MsgBox "Local de Atividade e nome da pasta: " & CurDir

 - Como mudar o local de atividade da aplicação:

ChDrive "D" ' changes to the F-station

 - Como mudar a pasta de atividade atual da aplicação:

ChDir "D:\Meus Documentos\Privado"

 - Como determinar se um arquivo existe na pasta:

If Dir("D:\Meus Documentos\MyPlan.xls") <> "" Then 

10º - ' Quando o arquivo não existe retorna "" (uma string vazia).

Se não especificar o local, o Excel usa o local atual. 

Se não especificar as pasta, o Excel usa a pasta onde a aplicação está. 

Como podemos criar uma nova pasta?

MkDir "NovaPastaParticular" ' Cria uma nova pasta no local que a planilha atual está.      
MkDir "D:\Meus Documentos\NovaPastaParticular" ' Cria uma nova pasta no local indicado.

11º - Como apagar uma pasta (A pastas precisa estar vazia):

RmDir "NovaPastaParticular" ' Deleta a subpasta no local onde a planilha atual está.
RmDir "D:\Meus Documentos\NovaPastaParticular" ' Deleta a subpasta no local indicado.

12º - Como copiar um arquivo (o mesmo precisa estar fechado):

FileCopy "Apontamentos.xls", "BAK-Apontamentos.xls" ' Copia-o na pasta local onde a planilha corrente está.

FileCopy "Apontamentos.xls", "X:\BAK-Apontamentos.xls" ' Copia o arquivo na pasta indicada.

13º - Como mover um arquivo (o mesmo precisa estar fechado):

Let Old = "C:\Old\Balanço.xls" ' Localização original do arquivo.
Let New = "C:\New\Balanço.xls" ' Nova localização do arquivo.

Name Old As New ' Move o arquivo.


Deixe os seus comentários! Envie este artigo, divulgue este link...

brazilsalesforceeffectiveness@gmail.com


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

Excel Tips - Interações com APIs - UserForms With Windows API Functions


Disponibilizar diversas funcionalidades que propiciem interferência nos formulários que criamos no MS Excel através de chamadas as suas APIs é muito prático ,rápido e funcional.

Bem, como sempre, estou usando um exemplo simples como o de fazer um botão aparecer e sumir num formulário criado por nós mesmos no MS Excel. Mas veja esta como uma oportunidade para aprender a utilizar códigos de terceiros dentro das suas aplicações VBA.

O que é uma API?
API, é o acrônimo, sim, mais prá nossa coleção, de Application Programming Interface (ou Interface de Programação de Aplicativos) é um conjunto de rotinas e padrões estabelecidos por um software para a utilização das suas funcionalidades através de aplicativos que não pretendem envolver-se em detalhes da implementação do software, mas apenas usar seus serviços.

De modo geral, a API é composta por uma série de funções acessíveis somente por programação, as quais nos permitem utilizarmos características de software menos evidentes aos programadores mais tradicionais.

Por exemplo, um sistema operacional possui uma grande quantidade de funções na API, que permitem ao programador criar janelas, acessar arquivos, criptografar dados etc. Mas as APIs dos sistemas operacionais costumam ser dissociadas de tarefas mais essenciais, como a manipulação de blocos de memória e acesso a dispositivos. Essas tarefas são atributos do núcleo (kernel) de sistema e raramente são programáveis. Outro exemplo são os programas de desenho geométrico que possuem uma API específica para criar automaticamente entidades de acordo com padrões definidos pelo utilizador.

Mais recentemente, o uso de API tem se generalizado nos plugins (acessórios que complementam a funcionalidade de um programa). Os autores do programa principal fornecem uma API específica para que outros autores criem plugins, estendendo as funcionalidades do programa.

Agora que já ampliamos um pouco mais a nossa compreensão do que são as APIs, façamos melhor, vamos utilizar algumas chamadas às suas funcionalidades.

Ativar no formulário o botão Maximize
Mostra ou torna invisível o botão de Maximizar e o de Minimizar no formulário ativo. Os botões ficarão visíveis, mas somente terão funcionalidades de acordo com a respectiva chamada da sua função. ShowMinimizeButton ou ShowMaximizeButton.

Function ShowMaximizeButton (UF As MSForms.UserForm, HideButton As Boolean) As Boolean

Function ShowMinimizeButton (UF As MSForms.UserForm, HideButton As Boolean) As Boolean

Bem, antes de efetuar chamadas as funções acima, precisa criar um módulo no qual colocará os códigos abaixo, pois estes são quem efetuarão as chamadas as APIs do Windows

Existem inúmeras funções com chamadas intrínsecas, e será muito produtivo que tire tempo para estudar cada uma destas, a fim de ampliar a sua compreensão de como efetuar tais chamadas. 

Este post é apenas uma pincelada na utilização desta técnica, que poderá ser ampliada até mesmo ao uso das APIs do GoogleGoogleMapsGMailSkype, etc...

As funções que não encontrar constantes abaixo, podem ser facilmente encontradas com o Google na Internet. E isso foi proposital, para que pesquise outras idéias em outros Blogs e fóruns.

Function ShowMaximizeButton (UF As MSForms.UserForm, _

    HideButton As Boolean) As Boolean

'
' ShowMaximizeButton
' Mostra (Se HideButton estiver como False) ou esconde (Se HideButton estiver como True)
' O botão de maximizar da janela.
'
Dim UFHWnd As Long

Dim WinInfo As Long

Dim R As Long

Let UFHWnd = HWndOfUserForm (UF)

If UFHWnd = 0 Then

    Let ShowMaximizeButton = False

    Exit Function

End If

Let WinInfo = GetWindowLong (UFHWnd, GWL_STYLE)



If HideButton = False Then

    Let WinInfo = WinInfo Or WS_MAXIMIZEBOX

Else

    Let WinInfo = WinInfo And (Not WS_MAXIMIZEBOX)

End If

Let R = SetWindowLong (UFHWnd, GWL_STYLE, WinInfo)

Let ShowMaximizeButton = (R <> 0)

End Function

Function ShowMinimizeButton (UF As MSForms.UserForm, _

    HideButton As Boolean) As Boolean
Dim UFHWnd As Long

Dim WinInfo As Long

Dim R As Long

Let UFHWnd = HWndOfUserForm (UF)


If UFHWnd = 0 Then

    Let ShowMinimizeButton = False

    
    Exit Function

End If

Let WinInfo = GetWindowLong (UFHWnd, GWL_STYLE)


If HideButton = False Then

    Let WinInfo = WinInfo Or WS_MINIMIZEBOX

Else

    Let WinInfo = WinInfo And (Not WS_MINIMIZEBOX)

End If


Let R = SetWindowLong (UFHWnd, GWL_STYLE, WinInfo)



Let ShowMinimizeButton = (R <> 0)

End Function



Function HWndOfUserForm (UF As MSForms.UserForm) As Long

' HWndOfUserForm
' This returns the window handle (HWnd) of the userform referenced
' by UF. It first looks for a top-level window, then a child

' of the Application window, then a child of the ActiveWindow.

Dim AppHWnd As Long

Dim DeskHWnd As Long

Dim WinHWnd As Long

Dim UFHWnd As Long

Dim Cap As String

Dim WindowCap As String

Let Cap = UF.Caption

' First, look in top level windows

Let UFHWnd = FindWindow (C_USERFORM_CLASSNAME, Cap)

If UFHWnd <> 0 Then

    Let HWndOfUserForm = UFHWnd


    Exit Function

End If


' Not a top level window. Search for child of application.

Let AppHWnd = Application.hwnd

Let UFHWnd = FindWindowEx (AppHWnd, 0&, 
C_USERFORM_CLASSNAME, Cap)


If UFHWnd <> 0 Then

    Let HWndOfUserForm = UFHWnd


    Exit Function

End If


' Not a child of the application.

' Search for child of ActiveWindow (Excel's ActiveWindow, not

' Window's ActiveWindow).


If Application.ActiveWindow Is Nothing Then

    Let HWndOfUserForm = 0


    Exit Function

End If


Let WinHWnd = WindowHWnd (Application.ActiveWindow)


Let UFHWnd = FindWindowEx (WinHWnd, 0&, C_USERFORM_CLASSNAME, Cap)


Let HWndOfUserForm = UFHWnd

End Function


Tags: VBA, FORM, userform, API, functions, Chipearson, ShowMaximizeButton, HWndOfUserForm, GetWindowLong, SetWindowLong, FindWindow, FindWindowEx, WindowHWnd

Excel Tips - Funções de Lógica - Logical functions

Inline image 1

Para utilizarmos bem as funções do MS Excel precisamos ao menos saber que existem e conhecermos onde as podemos aplicar.

O que segue são algumas destas que podemos utilizar extensivamente, agora com um pouco mais de conhecimento.

Tenham em mente que elas estão expressas em inglês, escolhi assim para que pudéssemos ter proveito delas tanto funcionalmente no MS Excel quanto na programação VBA. Sei que na maioria das empresas a instalação está em português, o que pessoalmente acho péssimo, nestes casos poderá procurar pela referência de como escrevê-la em Português.

Ahh e não reclamem, aproveitem para usar o Google Translate se precisarem.

Funções de Lógica

AND
Returns TRUE if all of its arguments are TRUE

FALSE
Returns the logical value FALSE

IF
Specifies a logical test to perform

IFERROR
Returns a value you specify if a formula evaluates to an error; otherwise, returns the result of the formula

NOT
Reverses the logic of its argument

OR
Returns TRUE if any argument is TRUE

TRUE
Returns the logical value TRUE


Tags: Function, Excel, Tips, functions, Logical, lógicas, lógica


diHITT - Notícias