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