segunda-feira, 3 de fevereiro de 2014

Criar funções personalizadas no Microsoft Excel 2007

Apesar da grande quantidade de funções disponíveis no Microsoft Excel, às vezes é necessária uma procedure que desempenhe um cálculo ou tome uma ação específica, e, às vezes é muito mais fácil escrever um código para estes casos que montar fórmulas muito grandes e de difícil manutenção.

O Microsoft Excel oferece a possibilidade de criarmos nossas próprias procedures através da linguagem de programação VBA (Visual Basic for Aplication), disponível em todas as suas versões.

Através desta linguagem, pode-se desenvolver programas extremamente complexos ou escrever funções simples que facilitam o trabalho e aumentam a produtividade do usuário.

Neste post vou mostrar como criar uma função para efetuar a transformação de segundos em horas:minutos:segundos.

Existem dois tipos de procedures que podem ser criadas com VBA, as Subrotinas e as Funções. A diferença básica entre elas é que as Funções retornam valores e as Subrotinas não. As Funções são iniciadas com a palavra chave Function e as Subrotinas são iniciadas com a palavra chave Sub e terminam com as palavras chaves End Function e End Sub, respectivamente.

Exemplos:
1) Função
Function Seg2HHmmss(Seg as string)
 ‘Comentário sobre a procedure Código . .
 Seg2HHmmss = Retorno da função
End Function

2) SubRotina
Sub ConectrBancoDeDados(BancoDeDados as String)
‘Comentário sobre a procedure Código . .
End Sub

Passos para criar uma função personalizada no Excel 2007
Abra o Microsoft Excel Se a aba Desenvolvedor não estiver visível:

Clique no ícone do Windows Conforme Figura abaixo:

 



Clique no botão Opções do Excel e habilite a Caixa de seleção “Mostrar guia Desenvolvedor na Faixa de Opções”
 









Isto fará com que a aba Desenvolvedor fique visível. Depois escolha Visual Basic nesta aba, o que fará com que abra o Editor de Códigos do Visual Basic.













Clique com o botão direito do Mouse no nome da pasta de trabalho, escolha Inserir, depois Módulo como na figura abaixo.














Será aberto o Módulo para que seja digitado o código:












o código conforme abaixo: Observe que o Nome da Função é SegParaHHMMSS












Código da Função:

Function SegParaHHMMSS(Valor As Long) As String
   ‘Transforma segundos em horas minutes e segundos ‘Declaração de variáveis
   Dim lHora As Long
   Dim lMinuto As Long
   Dim lSegundo As Long
   Dim lAuxiliar As Long
    lAuxiliar = Valor
   lHora = Int(lAuxiliar / 3600)
   lAuxiliar = lAuxiliar - (lHora * 3600)
   lMinuto = Int(lAuxiliar / 60)
   lSegundo = lAuxiliar - (lMinuto * 60)
   ‘Retorno da função
   SegParaHHMMSS = Format(lHora, "00") & ":" & Format(lMinuto, "00") & ":" & Format(lSegundo, "00")
End Function

Testar a função

Feche o editor de Códigos do Visual Basic e vá para a planilha do Excel. Na Célula A1, Coloque o valor em segundos para fazer a conversão: Exemplo 36458 Posicione o cursor na Célula A2 e digite o sinal de igual “=” para ativar a barra de fórmulas, depois digite SegParaHHMMSS(A1). Quando finalizar aperte Enter e verá o valor convertido na Célula A2, “10:07:38”.

Dica: Pode ser usado a Barra de Fórumlas para inserir a Função conforme figura abaixo:











Na Caixa Valor, clique na célula “A1”, depois Enter, que o valor será convertido.

Nenhum comentário:

Postar um comentário