Insira este código em um novo módulo e tecle F5
Sub Criar_Botões()
Dim botão As Button
Dim bot As Range
ActiveSheet.Buttons.Delete
For i = 1 To 5
Set bot = ActiveSheet.Range(Cells(i, 5), Cells(i, 5))
Set botão = _
ActiveSheet.Buttons.Add(bot.Left, bot.Top, bot.Width, bot.Height)
With botão
.OnAction = "Rotina" & i
.Caption = "Rotina " & i
.Name = "Nome" & i
End With
Next i
End Sub
Tratar Erros em VBA
A Instrução On Error
Para fazer o tratamento de erros em vba utilizamos a instrução On Error, esta instrução tem diferentes formatos e opções, vamos passar uma breve explicação de como funciona.
On Error GoTo Line
Ativa o tratamento de erro que inicia na linha especifícada pelo argumento line.
On Error Resume Next
Esta instrução é utilizada para ignorar erros durante a execução.
On Error GoTo 0
Desativa qualque manipulador de erro ativo no procedimento.
Function tratarErro()
'Declaração da variável
Dim x
'Cria o tratamento do erro
On Error GoTo erro
'Chama a variável criando a função
x = 10 / 0
'Finaliza o erro
Exit Function
'Demonstra o erro
erro:
MsgBox "Erro na divisão por " & Erl
End Function
Para acompanhar a depuração aperte a tecla F8.
Para fazer o tratamento de erros em vba utilizamos a instrução On Error, esta instrução tem diferentes formatos e opções, vamos passar uma breve explicação de como funciona.
On Error GoTo Line
Ativa o tratamento de erro que inicia na linha especifícada pelo argumento line.
On Error Resume Next
Esta instrução é utilizada para ignorar erros durante a execução.
On Error GoTo 0
Desativa qualque manipulador de erro ativo no procedimento.
Function tratarErro()
'Declaração da variável
Dim x
'Cria o tratamento do erro
On Error GoTo erro
'Chama a variável criando a função
x = 10 / 0
'Finaliza o erro
Exit Function
'Demonstra o erro
erro:
MsgBox "Erro na divisão por " & Erl
End Function
Para acompanhar a depuração aperte a tecla F8.
O Microsoft Excel (nome completo Microsoft Office Excel) é um programa de planilhas eletronicas escrito e produzido pela Microsoft para computadores usando o sistema operacional Microsoft Windows. Seus recursos incluem uma interface intuitiva e capacitadas ferramentas de cálculo e de construção de gráficos que, juntamente com marketing agressivo, tornaram o Excel um dos mais populares aplicativos de computador até hoje. É por grande vantagem o aplicativo de planilha eletrônica dominante disponível para essas plataformas e tem o sido desde a versão 5 em 1993 e da sua inclusão como parte do Microsoft Office.
Um Pouco de História
A Microsoft originalmente comercializou um programa de planilha eletrônica chamado Multiplan em 1982, o qual era muito popular em sistemasCP/M , mas em sistemas MS-DOS perdia em popularidade para o Lotus 1-2-3 . Isso levou ao desenvolvimento de um novo programa chamado Excel que começou com a intenção de, nas palavras de Doug Klunder, "fazer tudo que o 1-2-3 faz e fazer melhor". A primeira versão do Excel foi lançada para o Mac em 1985 e a primeira versão para Windows (numerada 2.0 para se alinhar com o Mac e distribuída com um tempo de execução do ambiente Windows) foi lançada em novembro de 1987 . A Lotus foi lenta em trazer o 1-2-3 ao Windows e por volta de 1988 o Excel havia começado a passar o 1-2-3 em vendas e ajudou a Microsoft a alcançar a posição de liderança no desenvolvimento de software para o PC. Essa conquista, destronando o rei do mundo do software, solidificou a Microsoft como um competidor válido e mostrou seu futuro de desenvolvimento de software gráfico. A Microsoft aumentou sua vantagem com lançamento regular de novas versões, aproximadamente a cada dois anos. A versão atual para a plataforma Windows é o Excel 12, também chamado de Microsoft Excel 2007 . A versão atual para a plataforma Mac OS X é o Microsoft Excel 2004.
No começo da sua vida o Excel se tornou alvo de um processo judicial de marca registrada por outra empresa que já vendia um pacote de software chamado "Excel" na indústria financeira. Como resultado da disputa a Microsoft foi solicitada a se referir ao programa como "Microsoft Excel" em todas as press releases formais e documentos legais. Contudo, com o passar do tempo essa prática foi sendo ignorada, e a Microsoft resolveu a questão quando ela comprou a marca registrada reservada ao outro programa. Ela também encorajou o uso das letras XL como abreviação para o programa; apesar dessa prática não ser mais comum, o icone do programa no Windows ainda é formado por uma combinação estilizada das duas letras, e a extensão do arquivo do formato padrão do Excel até a versão 11 (Excel 2003) é .xls, sendo .xlsx a partir da versão 12, acompanhando a mudança nos formatos de arquivo dos aplicativos do Microsoft Office.
O Excel oferece muitos ajustes na interface ao usuário em relação às mais primitivas planilhas eletrônicas; entretanto, a essência continua a mesma da planilha eletrônica original, as células são organizadas em linhas e colunas, e contêm dados ou fórmulas com referências relativas ou absolutas às outras células.
O Excel foi o primeiro programa de seu tipo a permitir ao usuário definir a aparência das planilhas (fontes, atributos de caractere e aparência da célula). Também introduziu recomputação inteligente de células, na qual apenas céluas dependentes da célula a ser modificada são atualizadas (programas anteriores recomputavam tudo o tempo todo ou aguardavam um comando específico do usuário). O Excel tem capacidades avançadas de construção de gráficos.
Desde 1993, o Excel tem incluído o Visual Basic para Aplicativos (VBA), uma linguagem de programação baseada no Visual Basic que adiciona a capacidade de automatizar tarefas no Excel e prover funções definidas pelo usuário (UDF, user defined functions) para uso em pastas de trabalho. o VBA é um complemento poderoso ao aplicativo que, em versões posteriores, inclui um ambiente integrado de desenvolvimento (IDE, integrated development environment). A gravação de macros pode produzir código VBA que replica ações do usuário, desse modo permitindo automação simples de tarefas cotidianas. o VBA permite a criação de formulários e controles dentro da pasta de trabalho para comunicação com o usuário.
A funcionalidade de automação provida pelo VBA fez com que o Excel se tornasse um alvo para vírus de macro. Esse foi um problema sério no mundo corporativo até os produtos anti-vírus começarem a detectar tais vírus. A Microsoft adotou tardiamente medidas para previnir o mau uso com a adição da capacidade de desativar as macros completamente, de ativar as macros apenas quando se abre uma pasta de trabalho ou confiar em todas as macros assinadas com um certificado confiável.
As versões 5.0 a 9.0 do Excel contêm vários "ovos de páscoa", porém desde a versão 10 a Microsoft tomou medidas para eliminar tais recursos não documentados de seus produtos.
Versões:
Excel 2.0 para Windows
Excel 3.0
Excel 4.0
Excel 5.0 (Office 4.2 e 4.3, também uma versão de 32 bits para o Windows NT somente)
Excel 7.0 (Office 95)
Excel 8.0 (Office 97)
Excel 9.0 (Office 2000)
Excel 10.0 (Office XP)
Excel 11.0 (Office 2003)
Excel 12.0 (Office 2007)
Não há Excel 1.0 para evitar confusão com versões para o Macintosh e nem 6.0 por que ele foi lançado com o Word 7. Todos os produtos do Office 95 têm capacidades de OLE 2 - para mover dados automaticamente de vários programas - e o nome Excel 7 deveria mostrar que ele era contemporâneo do Word 7.
Um Pouco de História
A Microsoft originalmente comercializou um programa de planilha eletrônica chamado Multiplan em 1982, o qual era muito popular em sistemasCP/M , mas em sistemas MS-DOS perdia em popularidade para o Lotus 1-2-3 . Isso levou ao desenvolvimento de um novo programa chamado Excel que começou com a intenção de, nas palavras de Doug Klunder, "fazer tudo que o 1-2-3 faz e fazer melhor". A primeira versão do Excel foi lançada para o Mac em 1985 e a primeira versão para Windows (numerada 2.0 para se alinhar com o Mac e distribuída com um tempo de execução do ambiente Windows) foi lançada em novembro de 1987 . A Lotus foi lenta em trazer o 1-2-3 ao Windows e por volta de 1988 o Excel havia começado a passar o 1-2-3 em vendas e ajudou a Microsoft a alcançar a posição de liderança no desenvolvimento de software para o PC. Essa conquista, destronando o rei do mundo do software, solidificou a Microsoft como um competidor válido e mostrou seu futuro de desenvolvimento de software gráfico. A Microsoft aumentou sua vantagem com lançamento regular de novas versões, aproximadamente a cada dois anos. A versão atual para a plataforma Windows é o Excel 12, também chamado de Microsoft Excel 2007 . A versão atual para a plataforma Mac OS X é o Microsoft Excel 2004.
No começo da sua vida o Excel se tornou alvo de um processo judicial de marca registrada por outra empresa que já vendia um pacote de software chamado "Excel" na indústria financeira. Como resultado da disputa a Microsoft foi solicitada a se referir ao programa como "Microsoft Excel" em todas as press releases formais e documentos legais. Contudo, com o passar do tempo essa prática foi sendo ignorada, e a Microsoft resolveu a questão quando ela comprou a marca registrada reservada ao outro programa. Ela também encorajou o uso das letras XL como abreviação para o programa; apesar dessa prática não ser mais comum, o icone do programa no Windows ainda é formado por uma combinação estilizada das duas letras, e a extensão do arquivo do formato padrão do Excel até a versão 11 (Excel 2003) é .xls, sendo .xlsx a partir da versão 12, acompanhando a mudança nos formatos de arquivo dos aplicativos do Microsoft Office.
O Excel oferece muitos ajustes na interface ao usuário em relação às mais primitivas planilhas eletrônicas; entretanto, a essência continua a mesma da planilha eletrônica original, as células são organizadas em linhas e colunas, e contêm dados ou fórmulas com referências relativas ou absolutas às outras células.
O Excel foi o primeiro programa de seu tipo a permitir ao usuário definir a aparência das planilhas (fontes, atributos de caractere e aparência da célula). Também introduziu recomputação inteligente de células, na qual apenas céluas dependentes da célula a ser modificada são atualizadas (programas anteriores recomputavam tudo o tempo todo ou aguardavam um comando específico do usuário). O Excel tem capacidades avançadas de construção de gráficos.
Desde 1993, o Excel tem incluído o Visual Basic para Aplicativos (VBA), uma linguagem de programação baseada no Visual Basic que adiciona a capacidade de automatizar tarefas no Excel e prover funções definidas pelo usuário (UDF, user defined functions) para uso em pastas de trabalho. o VBA é um complemento poderoso ao aplicativo que, em versões posteriores, inclui um ambiente integrado de desenvolvimento (IDE, integrated development environment). A gravação de macros pode produzir código VBA que replica ações do usuário, desse modo permitindo automação simples de tarefas cotidianas. o VBA permite a criação de formulários e controles dentro da pasta de trabalho para comunicação com o usuário.
A funcionalidade de automação provida pelo VBA fez com que o Excel se tornasse um alvo para vírus de macro. Esse foi um problema sério no mundo corporativo até os produtos anti-vírus começarem a detectar tais vírus. A Microsoft adotou tardiamente medidas para previnir o mau uso com a adição da capacidade de desativar as macros completamente, de ativar as macros apenas quando se abre uma pasta de trabalho ou confiar em todas as macros assinadas com um certificado confiável.
As versões 5.0 a 9.0 do Excel contêm vários "ovos de páscoa", porém desde a versão 10 a Microsoft tomou medidas para eliminar tais recursos não documentados de seus produtos.
Versões:
Excel 2.0 para Windows
Excel 3.0
Excel 4.0
Excel 5.0 (Office 4.2 e 4.3, também uma versão de 32 bits para o Windows NT somente)
Excel 7.0 (Office 95)
Excel 8.0 (Office 97)
Excel 9.0 (Office 2000)
Excel 10.0 (Office XP)
Excel 11.0 (Office 2003)
Excel 12.0 (Office 2007)
Não há Excel 1.0 para evitar confusão com versões para o Macintosh e nem 6.0 por que ele foi lançado com o Word 7. Todos os produtos do Office 95 têm capacidades de OLE 2 - para mover dados automaticamente de vários programas - e o nome Excel 7 deveria mostrar que ele era contemporâneo do Word 7.
Evento Change em Excel
Já imaginou em alterar um dado quando outro é inserido? isso é possivel em Excel você sabia?
Então vamos ao código
Private Sub Worksheet_Change(ByVal Target As Range)
Dim linha As Integer
Dim coluna As Integer
' Usamos o argumento Target para saber qual campo foi alterado.
coluna = Target.Column
linha = Target.Row
' Executa a função calculo se campo B5 foi alterado.
If (linha = 5 And coluna = 2) Then
ocultar
End If
End Sub
Function ocultar()
Rows("7:7").Select
Selection.EntireRow.Hidden = True
'altere para false se quiser reexibir
End Function
Insira este código dentro da planilha que você utilizará pelo alt+f11
Então vamos ao código
Private Sub Worksheet_Change(ByVal Target As Range)
Dim linha As Integer
Dim coluna As Integer
' Usamos o argumento Target para saber qual campo foi alterado.
coluna = Target.Column
linha = Target.Row
' Executa a função calculo se campo B5 foi alterado.
If (linha = 5 And coluna = 2) Then
ocultar
End If
End Sub
Function ocultar()
Rows("7:7").Select
Selection.EntireRow.Hidden = True
'altere para false se quiser reexibir
End Function
Insira este código dentro da planilha que você utilizará pelo alt+f11
Função ano Bissexto
Function Bissexto(intAno As Integer) As Boolean
'
' verifica se um ano é bissexto
'
Bissexto = False
If intAno Mod 4 = 0 Then
If intAno Mod 100 = 0 Then
If intAno Mod 400 = 0 Then
Bissexto = True
End If
Else
Bissexto = True
End If
End If
End Function
'
' verifica se um ano é bissexto
'
Bissexto = False
If intAno Mod 4 = 0 Then
If intAno Mod 100 = 0 Then
If intAno Mod 400 = 0 Then
Bissexto = True
End If
Else
Bissexto = True
End If
End If
End Function
Atingir Meta - Excel
Atingir Meta em Excel é uma tarefa relativamente simples, vamos imaginar que você possui uma tabela em Excel e precisa saber o quanto precisa reduzir nos custos para ter uma margem maior de lucro, abaixo uma tabela bem simples e o que é necessário para atingir esta meta.
Primeiro vamos em Ferramentas - Atingir Meta
Vai abrir uma janela pedindo para você informar onde representará o lucro da venda (Definir célula), o percentual lucro desejado (Para o valor) e qual célula será a meta no nosso caso Custos(Alternando célula), clique em OK e a célula custo te mostrará o novo valor a ser atingido.
Primeiro vamos em Ferramentas - Atingir Meta
Vai abrir uma janela pedindo para você informar onde representará o lucro da venda (Definir célula), o percentual lucro desejado (Para o valor) e qual célula será a meta no nosso caso Custos(Alternando célula), clique em OK e a célula custo te mostrará o novo valor a ser atingido.

Atingir Meta - Excel
Atingir Meta em Excel é uma tarefa relativamente simples, vamos imaginar que você possui uma tabela em Excel e precisa saber o quanto precisa reduzir nos custos para ter uma margem maior de lucro, abaixo uma tabela bem simples e o que é necessário para atingir esta meta.
Primeiro vamos em Ferramentas - Atingir Meta
Vai abrir uma janela pedindo para você informar onde representará o lucro da venda (Definir célula), o percentual lucro desejado (Para o valor) e qual célula será a meta no nosso caso Custos(Alternando célula), clique em OK e a célula custo te mostrará o novo valor a ser atingido.
Primeiro vamos em Ferramentas - Atingir Meta
Vai abrir uma janela pedindo para você informar onde representará o lucro da venda (Definir célula), o percentual lucro desejado (Para o valor) e qual célula será a meta no nosso caso Custos(Alternando célula), clique em OK e a célula custo te mostrará o novo valor a ser atingido.

Auditoria de Fórmulas Excel
Muitas vezes você já deve ter visto isto no Excel, mas, nunca imaginou para que serviria certo?
Então vamos a uma breve explicação do que seria a AUDITORIA DE FÓRMULAS em Excel.
Imaginemos que você possui uma planilha que vai calcular valor de desconto, então, você tem na célula A1 o valor real, na B1 você quer que calcule o valor de desconto e este desconto esta na C1.
vamos lá !
100 5 5%
100 0
mas e se você arrasta para linhas de baixo?
se você não fixar na fórmula a coluna C1 irá acontecer um erro e para isso servirá a auditoria de fórmulas.
Deixe o erro acontecer para que possamos analisar.
Agora vá na célula B2 e clique em auditoria de fórmulas - rastrear precedentes e ele te mostrará onde está o erro, você estará solicitando ao Excel para pegar um valor vazio, com este recurso é muito simples corrigir um erro de fórmula.
Então vamos a uma breve explicação do que seria a AUDITORIA DE FÓRMULAS em Excel.
Imaginemos que você possui uma planilha que vai calcular valor de desconto, então, você tem na célula A1 o valor real, na B1 você quer que calcule o valor de desconto e este desconto esta na C1.
vamos lá !
100 5 5%
100 0
mas e se você arrasta para linhas de baixo?
se você não fixar na fórmula a coluna C1 irá acontecer um erro e para isso servirá a auditoria de fórmulas.
Deixe o erro acontecer para que possamos analisar.
Agora vá na célula B2 e clique em auditoria de fórmulas - rastrear precedentes e ele te mostrará onde está o erro, você estará solicitando ao Excel para pegar um valor vazio, com este recurso é muito simples corrigir um erro de fórmula.
Excluir Dados Duplicados
Excluir dados duplicados é bem simples também, a partir do Excel 2007 esta ferramenta está muito simples.
Selecione a coluna que será feita a verificação, clique em Dados, e Remover Dados Duplicados, irá abrir uma janela informando a coluna e solicitando a confirmção, clique em OK e pronto.
Selecione a coluna que será feita a verificação, clique em Dados, e Remover Dados Duplicados, irá abrir uma janela informando a coluna e solicitando a confirmção, clique em OK e pronto.
Evitando dados duplicados em Excel - Validação
Validar para que uma determinada coluna não aceite dados duplicados é muito simples, segue abaixo uma maneira bem rápida de se fazer.
Primeiro escolha a coluna que será aplicada essa validação, clique em Validação.
Será aberta uma caixa de mensagem com alguns critérios para validação no nosso caso vamos escolher o Personalizado em "Permitir"
No campo fórmula insira a está fórmula =CONT.SE(A$1:A$50;A1)=1
Na aba Alerta de erro, descreva a mensagem que o usuário irá receber caso já exista o dado digitado.
Primeiro escolha a coluna que será aplicada essa validação, clique em Validação.
Será aberta uma caixa de mensagem com alguns critérios para validação no nosso caso vamos escolher o Personalizado em "Permitir"
No campo fórmula insira a está fórmula =CONT.SE(A$1:A$50;A1)=1
Na aba Alerta de erro, descreva a mensagem que o usuário irá receber caso já exista o dado digitado.
Criando Funções em VBA - Datas
Dias corridos entre datas em VBA
Function DiasCorridosEntreDatas(DataInicial As Date, DataFinal As Date) As Long
DiasCorridosEntreDatas = (DataFinal - DataInicial)
End Function
Dias úteis entre datas em VBA
Function DiasUteisEntreDatas(DataInicial As Date, DataFinal As Date) As Double
Dim Idatas As Date
Dim i As Double
i = 0
For Idatas = DataInicial To DataFinal
If ÉDiaUtil(Idatas) Then i = i + 1
Next
DiasUteisEntreDatas = i
End Function
Dias corridos após dias úteis em VBA
Function DiasCorridosAposDiasUteis(Data As Date, DiasUteis As Long) As Long
DiasCorridosAposDiasUteis = DiasCorridosEntreDatas(Data, DataAposDiasUteis(Data, DiasUteis))
End Function
Dias úteis após dias corridos em VBA
Function DiasUteisAposDiasCorridos(Data As Date, DiasCorridos As Long) As Long
DiasUteisAposDiasCorridos = DiasUteisEntreDatas(Data, Data + DiasCorridos)
End Function
Data após dias corridos em VBA
Function DataAposDiasCorridos(Data As Date, dias As Long) As String
DataAposDiasCorridos = Data + dias
End Function
Data após dias úteis em VBA
Function DataAposDiasUteis(Data As Date, dias As Long)
Dim i As Long
Dim DataUtil As Date
i = 0
DataUtil = Data
Do While Abs(i) < Abs(dias)
If ÉDiaUtil(DataUtil) Then i = i + Sgn(dias)
DataUtil = DataUtil + Sgn(dias)
Loop
Do While Not ÉDiaUtil(DataUtil)
DataUtil = DataUtil + Sgn(dias + 0.5)
Loop
DataAposDiasUteis = DataUtil
End Function
Próximo dia Útil em VBA
Function ProximoDiaUtil(Data As Date) As Date
Dim DataUtil As Date
DataUtil = Data + 1
Do While Not ÉDiaUtil(DataUtil)
DataUtil = DataUtil + 1
Loop
ProximoDiaUtil = DataUtil
End Function
Primeiro dia útil do mês em VBA
Function PrimeiroDiaUtilMes(Data As Date) As Date
Dim PrimeiroDiaMes As Date
PrimeiroDiaMes = CDate("01/" & Str(Month(Data)) & Str(Year(Data)))
PrimeiroDiaUtilMes = IIf(ÉDiaUtil(PrimeiroDiaMes), _
PrimeiroDiaMes, ProximoDiaUtil(PrimeiroDiaMes))
End Function
Ultimo dia útil do mês em VBA
Function UltimoDiaUtilMes(Data As Date) As Date
Dim PrimeiroDiaMesSeguinte As Date
If Month(Data) < 12 Then
PrimeiroDiaMesSeguinte = PrimeiroDiaUtilMes(CDate("01/" _
& Str(Month(Data) + 1) & Str(Year(Data))))
Else
PrimeiroDiaMesSeguinte = PrimeiroDiaUtilMes(CDate("01/01" _
& Str(Year(Data) + 1)))
End If
UltimoDiaUtilMes = DataAposDiasUteis(PrimeiroDiaMesSeguinte, -1)
End Function
Função para saber se é fim de semana em VBA
Function ÉFimSemana(Data As Date) As Boolean
If WeekDay(Data, vbMonday) < 6 Then
ÉFimSemana = False
Else
ÉFimSemana = True
End If
End Function
Função para saber se é Sábado em VBA
Function ÉSábado(Data As Date) As Boolean
If WeekDay(Data) = 7 Then
ÉSábado = True
Else
ÉSábado = False
End If
End Function
Função para saber se é Domingo em VBA
Function ÉDomingo(Data As Date) As Boolean
If WeekDay(Data) = 1 Then
ÉDomingo = True
Else
ÉDomingo = False
End If
End Function
Função em VBA para saber se é dia útil
Function ÉDiaUtil(Data As Date) As Boolean
If Not ÉFeriado(Data) And Not ÉFimSemana(Data) And Not ÉPascoa(CDate(Data)) Then
ÉDiaUtil = True
Else
ÉDiaUtil = False
End If
End Function
Função em VBA para saber qual o dia da semana
Function DiaDaSemana(Data As Date) As String
Select Case WeekDay(Data, vbMonday)
Case 1
DiaDaSemana = "Segunda"
Case 2
DiaDaSemana = "Terça"
Case 3
DiaDaSemana = "Quarta"
Case 4
DiaDaSemana = "Quinta"
Case 5
DiaDaSemana = "Sexta"
Case 6
DiaDaSemana = "Sábado"
Case 7
DiaDaSemana = "Domingo"
End Select
End Function
Função em VBA para saber o nome do mês
Function NomedoMes(iMesAtual As Integer)
Dim sNomeMes As String
Select Case iMesAtual
Case 1
sNomeMes = "Janeiro"
Case 2
sNomeMes = "Fevereiro"
Case 3
sNomeMes = "Março"
Case 4
sNomeMes = "Abril"
Case 5
sNomeMes = "Maio"
Case 6
sNomeMes = "Junho"
Case 7
sNomeMes = "Julho"
Case 8
sNomeMes = "Agosto"
Case 9
sNomeMes = "Setembro"
Case 10
sNomeMes = "Outubro"
Case 11
sNomeMes = "Novembro"
Case 12
sNomeMes = "Dezembro"
End Select
NomedoMes = sNomeMes
End Function
Função em VBA para determinar os feriados, muito útil.
Function ÉFeriado(sbsDia) As Boolean
Dim kcont As Integer, stFer(8) As String
stFer(1) = "1/1"
stFer(2) = "21/4"
stFer(3) = "1/5"
stFer(4) = "7/9"
stFer(5) = "12/10"
stFer(6) = "2/11"
stFer(7) = "15/11"
stFer(8) = "25/12"
For kcont = 1 To 8
If Day(sbsDia) & "/" & Month(sbsDia) = stFer(kcont) Then
ÉFeriado = True
Exit Function
End If
Next kcont
End Function
Função em VBA para saber se é Pascoa
Function ÉPascoa(sbsPascoa As Single) As Boolean
Dim sn As Integer, sa, sb, sc, sd, se, sf, sg, sh, si, sk, sl, sm, sp, sq As Single
Dim sDia, sMes, sDiaCarnaval, sDiaCarn, sMesCarnaval As Single
Dim stDiadePascoa As String, sDiadePascoa As Single, sDiaCorpChr As Single
sn = Year(sbsPascoa)
sa = sn - Int(sn / 19) * 19
sb = Int(sn / 100)
sc = sn - sb * 100
sd = Int(sb / 4)
se = sb - sd * 4
sf = Int((sb + 8) / 25)
sg = Int((sb - sf + 1) / 3)
sh = (19 * sa + sb - sd - sg + 15) - Int((19 * sa + sb - sd - sg + 15) / 30) * 30
si = Int(sc / 4)
sk = sc - si * 4
sl = (32 + 2 * se + 2 * si - sh - sk) - Int((32 + 2 * se + 2 * si - sh - sk) / 7) * 7
sm = Int((sa + 11 * sh + 22 * sl) / 451)
sp = Int((sh + sl - 7 * sm + 114) / 31)
sq = sh + sl - 7 * sm + 114 - sp * 31
sDia = sq + 1 'Domingo de Páscoa
sMes = sp 'Mês da Páscoa
stDiadePascoa = sDia & "/" & sMes & "/" & sn
sDiadePascoa = Int(CDate(stDiadePascoa))
sDiaCarnaval = sDiadePascoa - 47
sDiaCarn = sDiadePascoa - 48
sDiaCorpChr = sDiadePascoa + 60
If Day(sbsPascoa) = sDia And Month(sbsPascoa) = sp Then
ÉPascoa = True
End If
If Day(sbsPascoa) = sDia - 2 And Month(sbsPascoa) = sp Then
ÉPascoa = True
'Paixão de Cristo
End If
If Day(sbsPascoa) = Day(sDiaCarnaval) And Month(sbsPascoa) = Month(sDiaCarnaval) Then
ÉPascoa = True
'Terça Feira de Carnaval
End If
If Day(sbsPascoa) = Day(sDiaCorpChr) And Month(sbsPascoa) = Month(sDiaCorpChr) Then
ÉPascoa = True
'Corpus Christi
End If
If Day(sbsPascoa) = Day(sDiaCarn) And Month(sbsPascoa) = Month(sDiaCarn) Then
ÉPascoa = True
'Segunda feira de Carnaval
End If
End Function
Função para saber que idade a pessoa tem em VBA
Function QueIdade(dn)
QueIdade = Int((Date - dn) / 365.25)
QueIdade = IIf(QueIdade < 1, Format(QueIdade, "# anos"), Format(QueIdade, "# anos"))
End Function
Function DiasCorridosEntreDatas(DataInicial As Date, DataFinal As Date) As Long
DiasCorridosEntreDatas = (DataFinal - DataInicial)
End Function
Dias úteis entre datas em VBA
Function DiasUteisEntreDatas(DataInicial As Date, DataFinal As Date) As Double
Dim Idatas As Date
Dim i As Double
i = 0
For Idatas = DataInicial To DataFinal
If ÉDiaUtil(Idatas) Then i = i + 1
Next
DiasUteisEntreDatas = i
End Function
Dias corridos após dias úteis em VBA
Function DiasCorridosAposDiasUteis(Data As Date, DiasUteis As Long) As Long
DiasCorridosAposDiasUteis = DiasCorridosEntreDatas(Data, DataAposDiasUteis(Data, DiasUteis))
End Function
Dias úteis após dias corridos em VBA
Function DiasUteisAposDiasCorridos(Data As Date, DiasCorridos As Long) As Long
DiasUteisAposDiasCorridos = DiasUteisEntreDatas(Data, Data + DiasCorridos)
End Function
Data após dias corridos em VBA
Function DataAposDiasCorridos(Data As Date, dias As Long) As String
DataAposDiasCorridos = Data + dias
End Function
Data após dias úteis em VBA
Function DataAposDiasUteis(Data As Date, dias As Long)
Dim i As Long
Dim DataUtil As Date
i = 0
DataUtil = Data
Do While Abs(i) < Abs(dias)
If ÉDiaUtil(DataUtil) Then i = i + Sgn(dias)
DataUtil = DataUtil + Sgn(dias)
Loop
Do While Not ÉDiaUtil(DataUtil)
DataUtil = DataUtil + Sgn(dias + 0.5)
Loop
DataAposDiasUteis = DataUtil
End Function
Próximo dia Útil em VBA
Function ProximoDiaUtil(Data As Date) As Date
Dim DataUtil As Date
DataUtil = Data + 1
Do While Not ÉDiaUtil(DataUtil)
DataUtil = DataUtil + 1
Loop
ProximoDiaUtil = DataUtil
End Function
Primeiro dia útil do mês em VBA
Function PrimeiroDiaUtilMes(Data As Date) As Date
Dim PrimeiroDiaMes As Date
PrimeiroDiaMes = CDate("01/" & Str(Month(Data)) & Str(Year(Data)))
PrimeiroDiaUtilMes = IIf(ÉDiaUtil(PrimeiroDiaMes), _
PrimeiroDiaMes, ProximoDiaUtil(PrimeiroDiaMes))
End Function
Ultimo dia útil do mês em VBA
Function UltimoDiaUtilMes(Data As Date) As Date
Dim PrimeiroDiaMesSeguinte As Date
If Month(Data) < 12 Then
PrimeiroDiaMesSeguinte = PrimeiroDiaUtilMes(CDate("01/" _
& Str(Month(Data) + 1) & Str(Year(Data))))
Else
PrimeiroDiaMesSeguinte = PrimeiroDiaUtilMes(CDate("01/01" _
& Str(Year(Data) + 1)))
End If
UltimoDiaUtilMes = DataAposDiasUteis(PrimeiroDiaMesSeguinte, -1)
End Function
Função para saber se é fim de semana em VBA
Function ÉFimSemana(Data As Date) As Boolean
If WeekDay(Data, vbMonday) < 6 Then
ÉFimSemana = False
Else
ÉFimSemana = True
End If
End Function
Função para saber se é Sábado em VBA
Function ÉSábado(Data As Date) As Boolean
If WeekDay(Data) = 7 Then
ÉSábado = True
Else
ÉSábado = False
End If
End Function
Função para saber se é Domingo em VBA
Function ÉDomingo(Data As Date) As Boolean
If WeekDay(Data) = 1 Then
ÉDomingo = True
Else
ÉDomingo = False
End If
End Function
Função em VBA para saber se é dia útil
Function ÉDiaUtil(Data As Date) As Boolean
If Not ÉFeriado(Data) And Not ÉFimSemana(Data) And Not ÉPascoa(CDate(Data)) Then
ÉDiaUtil = True
Else
ÉDiaUtil = False
End If
End Function
Função em VBA para saber qual o dia da semana
Function DiaDaSemana(Data As Date) As String
Select Case WeekDay(Data, vbMonday)
Case 1
DiaDaSemana = "Segunda"
Case 2
DiaDaSemana = "Terça"
Case 3
DiaDaSemana = "Quarta"
Case 4
DiaDaSemana = "Quinta"
Case 5
DiaDaSemana = "Sexta"
Case 6
DiaDaSemana = "Sábado"
Case 7
DiaDaSemana = "Domingo"
End Select
End Function
Função em VBA para saber o nome do mês
Function NomedoMes(iMesAtual As Integer)
Dim sNomeMes As String
Select Case iMesAtual
Case 1
sNomeMes = "Janeiro"
Case 2
sNomeMes = "Fevereiro"
Case 3
sNomeMes = "Março"
Case 4
sNomeMes = "Abril"
Case 5
sNomeMes = "Maio"
Case 6
sNomeMes = "Junho"
Case 7
sNomeMes = "Julho"
Case 8
sNomeMes = "Agosto"
Case 9
sNomeMes = "Setembro"
Case 10
sNomeMes = "Outubro"
Case 11
sNomeMes = "Novembro"
Case 12
sNomeMes = "Dezembro"
End Select
NomedoMes = sNomeMes
End Function
Função em VBA para determinar os feriados, muito útil.
Function ÉFeriado(sbsDia) As Boolean
Dim kcont As Integer, stFer(8) As String
stFer(1) = "1/1"
stFer(2) = "21/4"
stFer(3) = "1/5"
stFer(4) = "7/9"
stFer(5) = "12/10"
stFer(6) = "2/11"
stFer(7) = "15/11"
stFer(8) = "25/12"
For kcont = 1 To 8
If Day(sbsDia) & "/" & Month(sbsDia) = stFer(kcont) Then
ÉFeriado = True
Exit Function
End If
Next kcont
End Function
Função em VBA para saber se é Pascoa
Function ÉPascoa(sbsPascoa As Single) As Boolean
Dim sn As Integer, sa, sb, sc, sd, se, sf, sg, sh, si, sk, sl, sm, sp, sq As Single
Dim sDia, sMes, sDiaCarnaval, sDiaCarn, sMesCarnaval As Single
Dim stDiadePascoa As String, sDiadePascoa As Single, sDiaCorpChr As Single
sn = Year(sbsPascoa)
sa = sn - Int(sn / 19) * 19
sb = Int(sn / 100)
sc = sn - sb * 100
sd = Int(sb / 4)
se = sb - sd * 4
sf = Int((sb + 8) / 25)
sg = Int((sb - sf + 1) / 3)
sh = (19 * sa + sb - sd - sg + 15) - Int((19 * sa + sb - sd - sg + 15) / 30) * 30
si = Int(sc / 4)
sk = sc - si * 4
sl = (32 + 2 * se + 2 * si - sh - sk) - Int((32 + 2 * se + 2 * si - sh - sk) / 7) * 7
sm = Int((sa + 11 * sh + 22 * sl) / 451)
sp = Int((sh + sl - 7 * sm + 114) / 31)
sq = sh + sl - 7 * sm + 114 - sp * 31
sDia = sq + 1 'Domingo de Páscoa
sMes = sp 'Mês da Páscoa
stDiadePascoa = sDia & "/" & sMes & "/" & sn
sDiadePascoa = Int(CDate(stDiadePascoa))
sDiaCarnaval = sDiadePascoa - 47
sDiaCarn = sDiadePascoa - 48
sDiaCorpChr = sDiadePascoa + 60
If Day(sbsPascoa) = sDia And Month(sbsPascoa) = sp Then
ÉPascoa = True
End If
If Day(sbsPascoa) = sDia - 2 And Month(sbsPascoa) = sp Then
ÉPascoa = True
'Paixão de Cristo
End If
If Day(sbsPascoa) = Day(sDiaCarnaval) And Month(sbsPascoa) = Month(sDiaCarnaval) Then
ÉPascoa = True
'Terça Feira de Carnaval
End If
If Day(sbsPascoa) = Day(sDiaCorpChr) And Month(sbsPascoa) = Month(sDiaCorpChr) Then
ÉPascoa = True
'Corpus Christi
End If
If Day(sbsPascoa) = Day(sDiaCarn) And Month(sbsPascoa) = Month(sDiaCarn) Then
ÉPascoa = True
'Segunda feira de Carnaval
End If
End Function
Função para saber que idade a pessoa tem em VBA
Function QueIdade(dn)
QueIdade = Int((Date - dn) / 365.25)
QueIdade = IIf(QueIdade < 1, Format(QueIdade, "# anos"), Format(QueIdade, "# anos"))
End Function
Validando Datas com Excel
Validando células que irão receber datas de um intervalo de datas.
Exemplo
01/01/2011 a 31/12/2011
Selecione uma célula e digite a seguinte fórmula no campo de validação.
=OU(ÉTEXTO(A1);E(A1>=C1;A1<=D1))
Se for acionado qualquer intervalo de datas que não esteja no intervalo que você definiu a validação será acionada.
Validando Datas de um determinado mês
=MÊS(A1)=MÊS(HOJE())
Validando células para aceitar datas até 360 dias da data atual.
=E(A1>=HOJE();A1<=DATA(ANO(HOJE())+1;MÊS(HOJE());DIA(HOJE())))
Validando células que aceite somente alguns dias anteriores a data de hoje.
=HOJE()-A1<=10
Neste caso a célula aceitará até 10 dias da data indicada.
Bom acho que deu pra entender um pouquinho, mais para frente postarei outras formas de validação.
Exemplo
01/01/2011 a 31/12/2011
Selecione uma célula e digite a seguinte fórmula no campo de validação.
=OU(ÉTEXTO(A1);E(A1>=C1;A1<=D1))
Se for acionado qualquer intervalo de datas que não esteja no intervalo que você definiu a validação será acionada.
Validando Datas de um determinado mês
=MÊS(A1)=MÊS(HOJE())
Validando células para aceitar datas até 360 dias da data atual.
=E(A1>=HOJE();A1<=DATA(ANO(HOJE())+1;MÊS(HOJE());DIA(HOJE())))
Validando células que aceite somente alguns dias anteriores a data de hoje.
=HOJE()-A1<=10
Neste caso a célula aceitará até 10 dias da data indicada.
Bom acho que deu pra entender um pouquinho, mais para frente postarei outras formas de validação.
Modificar tamanho DropDown em VBA
Muitas vezes criamos uma validação em Excel e o campo DropDown fica pequeno, para isso podemos utilizar o VBA e resolver nossos problemas.
Para modificar o tamanho do campo validado nada melhor que utilizar o evento Selection
Change(), evento que é acionado sempre que selecionamos uma determinada célula.
No módulo privado EstaPasta_de_trabalho selecione o Workbook_SheetSelectionChange()
e insira o código abaixo;
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Const dFixedPos As Double = "0.2"
Const dFixWidth As Double = "12.0" '
Dim vld As Validation
Dim lDpdLine As Long
If Not prvTarget Is Nothing Then
If Not oDpd Is Nothing Then
If oDpd.Value = 0 Then
prvTarget.Value = vbNullString
Else
prvTarget.Value = Range(Mid(sFml1, 2)).Item(oDpd.Value)
End If
Set prvTarget = Nothing
End If
End If
On Error Resume Next
oDpd.Delete
sFml1 = vbNullString
Set oDpd = Nothing
On Error GoTo 0
If Target.Count > 1 Then
Set oDpd = Nothing
Exit Sub
End If
Set vld = Target.Validation
On Error GoTo Terminate
sFml1 = vld.Formula1
On Error GoTo 0
Set prvTarget = Target
lDpdLine = Plan1.Range(Mid(sFml1, 2)).Rows.Count
With Target
Set oDpd = ActiveSheet.DropDowns.Add( _
.Left - dFixedPos, _
.Top - dFixedPos, _
.Width + dFixWidth + dFixedPos * 2, _
.Height + dFixedPos * 2)
End With
With oDpd
.ListFillRange = sFml1
.DropDownLines = lDpdLine
.Display3DShading = True
End With
Terminate:
End Sub
Para modificar o tamanho do campo validado nada melhor que utilizar o evento Selection
Change(), evento que é acionado sempre que selecionamos uma determinada célula.
No módulo privado EstaPasta_de_trabalho selecione o Workbook_SheetSelectionChange()
e insira o código abaixo;
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Const dFixedPos As Double = "0.2"
Const dFixWidth As Double = "12.0" '
Dim vld As Validation
Dim lDpdLine As Long
If Not prvTarget Is Nothing Then
If Not oDpd Is Nothing Then
If oDpd.Value = 0 Then
prvTarget.Value = vbNullString
Else
prvTarget.Value = Range(Mid(sFml1, 2)).Item(oDpd.Value)
End If
Set prvTarget = Nothing
End If
End If
On Error Resume Next
oDpd.Delete
sFml1 = vbNullString
Set oDpd = Nothing
On Error GoTo 0
If Target.Count > 1 Then
Set oDpd = Nothing
Exit Sub
End If
Set vld = Target.Validation
On Error GoTo Terminate
sFml1 = vld.Formula1
On Error GoTo 0
Set prvTarget = Target
lDpdLine = Plan1.Range(Mid(sFml1, 2)).Rows.Count
With Target
Set oDpd = ActiveSheet.DropDowns.Add( _
.Left - dFixedPos, _
.Top - dFixedPos, _
.Width + dFixWidth + dFixedPos * 2, _
.Height + dFixedPos * 2)
End With
With oDpd
.ListFillRange = sFml1
.DropDownLines = lDpdLine
.Display3DShading = True
End With
Terminate:
End Sub
Localizando dados com For Each
Aqui vamos percorrer toda a coluna A para localizar um dado que esta na coluna C com o for each.
Sub localizar()
Dim i As Range
For Each i In Sheets("Plan1").Range("A1:A15000")
If i.Value = Sheets("Plan1").Range("C1") Then
i.Select
End If
Next
End Sub
codigo muito util para localizar datas no excel, visto que na coluna C1 você pode inserir uma fórmula =hoje(), e este códgo no workbookopen do VBA e sempre que você abrir a planilha de excel ele localizará a data.
Sub localizar()
Dim i As Range
For Each i In Sheets("Plan1").Range("A1:A15000")
If i.Value = Sheets("Plan1").Range("C1") Then
i.Select
End If
Next
End Sub
codigo muito util para localizar datas no excel, visto que na coluna C1 você pode inserir uma fórmula =hoje(), e este códgo no workbookopen do VBA e sempre que você abrir a planilha de excel ele localizará a data.
Cálculos no Excel
O Excel parou de calcular? É fácil resolver
Ao trabalhar com uma planilha do Excel, você nota um comportamento estranho. Embora você modifique o valor das células numa coluna, por exemplo, os totais se mantêm os mesmos. Será que o Excel perdeu, misteriosamente, sua capacidade de mastigar números? Não é nada disso.
Vá em Ferramentas/Opções e, na caixa de diálogo que se abre, traga para o primeiro plano a aba Cálculo. A opção ativa deve ser a de cálculo manual. Troque-a para Automático. Retorne à planilha e veja que o comportamento foi normalizado. Para executar cálculos somente após um comando do usuário (F9). Essa opção é útil, especialmente quando se está adicionando dados a uma planilha muito grande. O desligamento do recálculo automático evita que o Excel refaça uma extensa cascata de operações após a inclusão de cada número. Assim, o usuário pode inserir os dados e só depois usar o F9 ou reabilitar o modo automático.
Ao trabalhar com uma planilha do Excel, você nota um comportamento estranho. Embora você modifique o valor das células numa coluna, por exemplo, os totais se mantêm os mesmos. Será que o Excel perdeu, misteriosamente, sua capacidade de mastigar números? Não é nada disso.
Vá em Ferramentas/Opções e, na caixa de diálogo que se abre, traga para o primeiro plano a aba Cálculo. A opção ativa deve ser a de cálculo manual. Troque-a para Automático. Retorne à planilha e veja que o comportamento foi normalizado. Para executar cálculos somente após um comando do usuário (F9). Essa opção é útil, especialmente quando se está adicionando dados a uma planilha muito grande. O desligamento do recálculo automático evita que o Excel refaça uma extensa cascata de operações após a inclusão de cada número. Assim, o usuário pode inserir os dados e só depois usar o F9 ou reabilitar o modo automático.
Função ÉERRORS
Quando uma fórmula produz erro, o Excel inclui na célula uma mensagem como #DIV/0! (divisão por zero) ou #REF! (referência inválida). Para evitar que essas mensagens apareçam na planilha, ou mesmo para personalizá-las, use a função ÉERROS. Se, por exemplo, em lugar de uma mensagem de erro você quiser que apareçam três asteriscos (###), escreva uma fórmula como:
=SE(ÉERROS(B1/A1);"###";B1/A1)
=SE(ÉERROS(B1/A1);"###";B1/A1)
Comando voltar Excel (100 vezes)
A possibilidade de voltar para a última ação é uma ajuda importantíssima para desfazer erros, mas essa função vem automaticamente limitada a 16 ações. Quando isso não é suficiente, você pode manipular o registro do Windows para aumentar o número de níveis e estabelecer um máximo de cem ações a serem desfeitas.
1. Feche o Excel e selecione Executar no menu Iniciar do Windows.
2. Na caixa de texto Abrir, digite regedit e clique OK.
3. Abra as seguintes chaves no painel esquerdo: HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Excel\Options (leve em consideração que 11.0 é para a versão 2003 do Excel e 10.0, para a 2002).
4. Selecione Editar/Novo/Valor DWORD, digite UndoHistory e tecle Enter.
5. Clique duas vezes em UndoHistory, selecione Decimal no painel Base e digite o número de comando que o Excel poderá desfazer (um número compreendido entre 16 e 100).
6. Clique OK e feche o Editor do Registro.
Agora você já pode abrir o Excel e verificar se desfaz o número de vezes estabelecido.
1. Feche o Excel e selecione Executar no menu Iniciar do Windows.
2. Na caixa de texto Abrir, digite regedit e clique OK.
3. Abra as seguintes chaves no painel esquerdo: HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Excel\Options (leve em consideração que 11.0 é para a versão 2003 do Excel e 10.0, para a 2002).
4. Selecione Editar/Novo/Valor DWORD, digite UndoHistory e tecle Enter.
5. Clique duas vezes em UndoHistory, selecione Decimal no painel Base e digite o número de comando que o Excel poderá desfazer (um número compreendido entre 16 e 100).
6. Clique OK e feche o Editor do Registro.
Agora você já pode abrir o Excel e verificar se desfaz o número de vezes estabelecido.
MATEMÁTICA FINANCEIRA NO EXCEL
FUNÇÕES FINANCEIRAS:
=EFETIVA(taxa_nominal,nper)
=IPGTO(taxa;período;nper;vp;vf;tipo)
=NOMINAL(taxa_efet,nper)
=NPER(taxa;pgto;vp;vf;tipo)
=PGTO(taxa;nper;vp;vf;tipo)
=PGTOCAPACUM(taxa;nper;vp;início_período;final_período;tipo_pgto)
=PGTOJURACUM(taxa;nper;vp;início_período;final__período;tipo_pgto)
=PPGTO(taxa;período;nper;vp;vf;tipo)
=TAXA(nper;pgto;vp;vf;tipo;estimativa)
=TIR(valores;estimativa)
=VF(taxa;nper;pgto;vp;tipo)
=VFPLANO(capital;plano)
=VP(taxa;nper;pgto;vf;tipo)
=VPL(taxa;valor1;valor2;...)
=XTIR(valores;datas;estimativa)
=XVPL(taxa;valores;datas)
FUNÇÕES MATEMÁTICAS:
=EXP(núm)
=LN(núm)
=LOG(núm;base)
=LOG10(núm)
=POTÊNCIA(núm;potência)
=RAIZ(núm)
=SOMA(núm1;núm2; ...)
=SOMARPRODUTO(matriz1;matriz2;matriz3; ...)
FUNÇÕES DE LÓGICA:
=E(lógico1;lógico2; ...)
=OU(lógico1;lógico2;...)
=SE(teste_lógico;valor_se_verdadeiro;valor_se_falso)
FUNÇÕES DE PROCURA E REFERÊNCIA:
=PROCH(valor_procurado;matriz_tabela;núm_índice_lin;procurar_intervalo)
=PROCV(valor_procurado;matriz_tabela;núm_índice_coluna;procurar_intervalo)
FUNÇÕES DE DATAS:
=DATAM(data_inicial;meses)
=DIA.DA.SEMANA(núm_série; retornar_tipo)
=DIATRABALHO(data_inicial;dias;feriados)
=DIATRABALHOTOTAL(data_inicial;data_final;feriados)
=HOJE( )
Algumas das funções que estudaremos será necessário a utilização dos suplementos Ferramentas de Análises, para habilitar vá em Ferramentas - Suplementos - Ferramentas de análise - VBA.
Operações Simples
Exemplo 1
(A * B) / (C * D)
------------------ = ? =((A*B)/(C*D))/(E/F)
(E/F)
Exemplo 2
(A / B) - (C * D) + G
---------------------- = ? =((A/B)-(C*D)+ G)/((E/F)/(H/I))
(E/F)/(H/I)
Exemplo 3
10000 + 125
--------------------- = ? = =(10000+125)/(1-((15+0,49)*45/3000))
[1-(15+0.49)*45
------------
3000 ]
Operações Complexas
Vimos as operações básicas no Excel, agora verermos as operações complexas como : Potência, Porcentagem, Lógica, Soma Produtos e Procv.
A melhor maneira de aprender é com exemplos práticos, e é o que mostraremos a seguir.
Potência
Exemplos
(1,28)3 - =1,28^3
(27)1/3 - =27^(1/3)
(1,07)3 * (1,05)4 - =(1,07^3)*(1,05^4)
(1 + 4,50) 32/360 - =(1+4,5)^(32/360)
[ ( 1 + 0,60) 68/30 - 1 ] * 100 - =((1+0,6)^(68/30)-1)*100
[(1,10)4 * 0,10 * 100.000,00
------------------------------- - =((1,1^4)*0,1)/((1,1^4)-1)*100000
(1,10)4 - 1 ]
Porcentagem
Na matermática financeira aprender sobre porcentagem é um dos tópicos de suma importânca, então diversos exemplos foram expostos abaixo.
Sabendo que a prestação foi paga em atraso com multa de 2%. Qual o valor da multa e o novo valor da prestação?
Valor original da prestação 260000,00
Multa 2,00%
Valor da multa 5200,00 =H487*H488
Valor da prestação atual 265200,00
Sabendo que um produto no valor de R$ 400,00 está sendo vendido com um desconto de 8,50%. Qual o valor do desconto fornecido pela loja e qual o valor a ser pago por este produto?
Preço anunciado 400,00
Desconto 8,50%
Valor do desconto 34,00 =H498*H499
Valor a ser pago 366,00
Sabendo que a alíquota do Imposto de Renda devido num rendimento de aplicação é 20%, calcular o valor do imposto e o e o valor líquido de uma aplicação:
Rendimento nominal 12350,00
Alíquota de I.R 20,00%
Valor do I.R. devido 2470,00 =H509*H510
Valor líquido de resgate 9880,00
Sabendo o montante ganho em diversas aplicações e o total desses ganhos calcular o valor de ganho em cada aplicação:
Tipos de investimentos Valor %
Poupança 23.000,00 26,47% =G524/$G$528
Fundos de Investimentos 35.000,00 40,28% =G525/$G$528
CDB 20.000,00 23,01% =G526/$G$528
Ações 8.900,00 10,24% =G527/$G$528
Total 86.900,00 100,00%
Quantos por cento de 40 são 16?
40,00%=16/40
35% de um número é igual a 175,00. Qual é esse número?
500,00=175/0,35
Um veículo no valor de R$ 35.000,00 está sendo vendido com desconto de 15%. Qual o valor do desconto e o valor a ser pago pelo veículo?
Preço anunciado do veículo 35000,00
Desconto 15,00%
Valor do desconto 5250,00 =H544*H545
Valor total a pagar 29750,00
Verificar a variação percentual do preço das ações da empresa Beta a seguir:
Valor da ação no dia 01-03-2007 1,20
Valor da ação no dia 01-04-2007 1,26
Variação % 5,00% =H554/H553-1
Valor da ação no dia 01-06-99 1,20
Valor da ação no dia 01-08-99 1,14
Variação % -5,00% =H558/H557-1
Verificar qual a margem percentual de lucro sobre o preço de custo obtida numa venda:
Preço de custo 35,00
Preço de venda 50,00
Margem de lucro 42,86% =H566/H565-1
Verificar qual o percentual de desconto sobre o preço de venda a prazo concedido:
Preço a prazo 8000,00
Preço a vista 7300,00
% de desconto -8,75% =H576/H575-1
Uma mercadoria está sendo vendida com a seguinte promoção:
a. qualquer compra pode ser paga com cheque pré-datado para 30 dias sem acréscimo;
b. todas as compras pagas a vista recebem um desconto de 10%.
Verificar qual a taxa de juros mensal efetiva cobrada para quem paga
a prazo:
Preço a vista 90,00
Preço a prazo 100,00
Taxa efetiva mensal 11,11% =H589/H588-1
Função SOMAPRODUTO
Multiplica os componentes correspondentes nas matrizes fornecidas e retorna a soma destes produtos.
Sintaxe: SOMARPRODUTO(matriz1;matriz2;matriz3; ...)
Matriz1, matriz2, matriz3,... são matrizes de 2 a 30 cujos componentes se
multiplicar e depois somar.
Os argumentos da matriz devem ter a mesma dimensão. Se não tiverem, SOMARPRODUTO fornecerá o valor de erro #VALOR!
SOMARPRODUTO trata as entradas da matriz não-numéricas como se fossem zeros.
Exemplos:
A tabela a seguir apresenta o total de vendas das ações da Cia. Petropina no dia 02-09-2007. Nesse dia, foram realizadas vendas da mesma ação a diversos preços.
De posse dos dados da tabela, calcularemos o valor total das vendas do dia e o preço médio ponderado de venda dessa ação.
DISTRIBUIÇÃO DAS VENDAS
Qtd. Vendida Preço Unitário
1000 5,00 Total de Vendas: 108.900,00 - =SOMARPRODUTO(D619:D623;E619:E623)
2000 5,50 Preço Médio
5000 4,90 Ponderado: 4,95
6000 5,80
8000 4,20
No próximo exemplo vamos calcular o prazo médio ponderado das duplicatas a seguir:
RELAÇÃO DAS DUPLICATAS
DATA DE EMISSÃO DATA DE VENCIMENTO VALOR DE EMISSÃO PRAZO(DIAS)
02/06/07 02/07/07 30.000,00 30,00
02/06/07 03/08/07 40.000,00 62,00
02/06/07 26/09/07 50.000,00 116,00
02/06/07 03/10/07 60.000,00 123,00
02/06/07 03/11/07 70.000,00 154,00
Prazo médio ponderado (dias)109,36
=SOMARPRODUTO(D631:D635*E631:E635/SOMA(D631:D635))
=EFETIVA(taxa_nominal,nper)
=IPGTO(taxa;período;nper;vp;vf;tipo)
=NOMINAL(taxa_efet,nper)
=NPER(taxa;pgto;vp;vf;tipo)
=PGTO(taxa;nper;vp;vf;tipo)
=PGTOCAPACUM(taxa;nper;vp;início_período;final_período;tipo_pgto)
=PGTOJURACUM(taxa;nper;vp;início_período;final__período;tipo_pgto)
=PPGTO(taxa;período;nper;vp;vf;tipo)
=TAXA(nper;pgto;vp;vf;tipo;estimativa)
=TIR(valores;estimativa)
=VF(taxa;nper;pgto;vp;tipo)
=VFPLANO(capital;plano)
=VP(taxa;nper;pgto;vf;tipo)
=VPL(taxa;valor1;valor2;...)
=XTIR(valores;datas;estimativa)
=XVPL(taxa;valores;datas)
FUNÇÕES MATEMÁTICAS:
=EXP(núm)
=LN(núm)
=LOG(núm;base)
=LOG10(núm)
=POTÊNCIA(núm;potência)
=RAIZ(núm)
=SOMA(núm1;núm2; ...)
=SOMARPRODUTO(matriz1;matriz2;matriz3; ...)
FUNÇÕES DE LÓGICA:
=E(lógico1;lógico2; ...)
=OU(lógico1;lógico2;...)
=SE(teste_lógico;valor_se_verdadeiro;valor_se_falso)
FUNÇÕES DE PROCURA E REFERÊNCIA:
=PROCH(valor_procurado;matriz_tabela;núm_índice_lin;procurar_intervalo)
=PROCV(valor_procurado;matriz_tabela;núm_índice_coluna;procurar_intervalo)
FUNÇÕES DE DATAS:
=DATAM(data_inicial;meses)
=DIA.DA.SEMANA(núm_série; retornar_tipo)
=DIATRABALHO(data_inicial;dias;feriados)
=DIATRABALHOTOTAL(data_inicial;data_final;feriados)
=HOJE( )
Algumas das funções que estudaremos será necessário a utilização dos suplementos Ferramentas de Análises, para habilitar vá em Ferramentas - Suplementos - Ferramentas de análise - VBA.
Operações Simples
Exemplo 1
(A * B) / (C * D)
------------------ = ? =((A*B)/(C*D))/(E/F)
(E/F)
Exemplo 2
(A / B) - (C * D) + G
---------------------- = ? =((A/B)-(C*D)+ G)/((E/F)/(H/I))
(E/F)/(H/I)
Exemplo 3
10000 + 125
--------------------- = ? = =(10000+125)/(1-((15+0,49)*45/3000))
[1-(15+0.49)*45
------------
3000 ]
Operações Complexas
Vimos as operações básicas no Excel, agora verermos as operações complexas como : Potência, Porcentagem, Lógica, Soma Produtos e Procv.
A melhor maneira de aprender é com exemplos práticos, e é o que mostraremos a seguir.
Potência
Exemplos
(1,28)3 - =1,28^3
(27)1/3 - =27^(1/3)
(1,07)3 * (1,05)4 - =(1,07^3)*(1,05^4)
(1 + 4,50) 32/360 - =(1+4,5)^(32/360)
[ ( 1 + 0,60) 68/30 - 1 ] * 100 - =((1+0,6)^(68/30)-1)*100
[(1,10)4 * 0,10 * 100.000,00
------------------------------- - =((1,1^4)*0,1)/((1,1^4)-1)*100000
(1,10)4 - 1 ]
Porcentagem
Na matermática financeira aprender sobre porcentagem é um dos tópicos de suma importânca, então diversos exemplos foram expostos abaixo.
Sabendo que a prestação foi paga em atraso com multa de 2%. Qual o valor da multa e o novo valor da prestação?
Valor original da prestação 260000,00
Multa 2,00%
Valor da multa 5200,00 =H487*H488
Valor da prestação atual 265200,00
Sabendo que um produto no valor de R$ 400,00 está sendo vendido com um desconto de 8,50%. Qual o valor do desconto fornecido pela loja e qual o valor a ser pago por este produto?
Preço anunciado 400,00
Desconto 8,50%
Valor do desconto 34,00 =H498*H499
Valor a ser pago 366,00
Sabendo que a alíquota do Imposto de Renda devido num rendimento de aplicação é 20%, calcular o valor do imposto e o e o valor líquido de uma aplicação:
Rendimento nominal 12350,00
Alíquota de I.R 20,00%
Valor do I.R. devido 2470,00 =H509*H510
Valor líquido de resgate 9880,00
Sabendo o montante ganho em diversas aplicações e o total desses ganhos calcular o valor de ganho em cada aplicação:
Tipos de investimentos Valor %
Poupança 23.000,00 26,47% =G524/$G$528
Fundos de Investimentos 35.000,00 40,28% =G525/$G$528
CDB 20.000,00 23,01% =G526/$G$528
Ações 8.900,00 10,24% =G527/$G$528
Total 86.900,00 100,00%
Quantos por cento de 40 são 16?
40,00%=16/40
35% de um número é igual a 175,00. Qual é esse número?
500,00=175/0,35
Um veículo no valor de R$ 35.000,00 está sendo vendido com desconto de 15%. Qual o valor do desconto e o valor a ser pago pelo veículo?
Preço anunciado do veículo 35000,00
Desconto 15,00%
Valor do desconto 5250,00 =H544*H545
Valor total a pagar 29750,00
Verificar a variação percentual do preço das ações da empresa Beta a seguir:
Valor da ação no dia 01-03-2007 1,20
Valor da ação no dia 01-04-2007 1,26
Variação % 5,00% =H554/H553-1
Valor da ação no dia 01-06-99 1,20
Valor da ação no dia 01-08-99 1,14
Variação % -5,00% =H558/H557-1
Verificar qual a margem percentual de lucro sobre o preço de custo obtida numa venda:
Preço de custo 35,00
Preço de venda 50,00
Margem de lucro 42,86% =H566/H565-1
Verificar qual o percentual de desconto sobre o preço de venda a prazo concedido:
Preço a prazo 8000,00
Preço a vista 7300,00
% de desconto -8,75% =H576/H575-1
Uma mercadoria está sendo vendida com a seguinte promoção:
a. qualquer compra pode ser paga com cheque pré-datado para 30 dias sem acréscimo;
b. todas as compras pagas a vista recebem um desconto de 10%.
Verificar qual a taxa de juros mensal efetiva cobrada para quem paga
a prazo:
Preço a vista 90,00
Preço a prazo 100,00
Taxa efetiva mensal 11,11% =H589/H588-1
Função SOMAPRODUTO
Multiplica os componentes correspondentes nas matrizes fornecidas e retorna a soma destes produtos.
Sintaxe: SOMARPRODUTO(matriz1;matriz2;matriz3; ...)
Matriz1, matriz2, matriz3,... são matrizes de 2 a 30 cujos componentes se
multiplicar e depois somar.
Os argumentos da matriz devem ter a mesma dimensão. Se não tiverem, SOMARPRODUTO fornecerá o valor de erro #VALOR!
SOMARPRODUTO trata as entradas da matriz não-numéricas como se fossem zeros.
Exemplos:
A tabela a seguir apresenta o total de vendas das ações da Cia. Petropina no dia 02-09-2007. Nesse dia, foram realizadas vendas da mesma ação a diversos preços.
De posse dos dados da tabela, calcularemos o valor total das vendas do dia e o preço médio ponderado de venda dessa ação.
DISTRIBUIÇÃO DAS VENDAS
Qtd. Vendida Preço Unitário
1000 5,00 Total de Vendas: 108.900,00 - =SOMARPRODUTO(D619:D623;E619:E623)
2000 5,50 Preço Médio
5000 4,90 Ponderado: 4,95
6000 5,80
8000 4,20
No próximo exemplo vamos calcular o prazo médio ponderado das duplicatas a seguir:
RELAÇÃO DAS DUPLICATAS
DATA DE EMISSÃO DATA DE VENCIMENTO VALOR DE EMISSÃO PRAZO(DIAS)
02/06/07 02/07/07 30.000,00 30,00
02/06/07 03/08/07 40.000,00 62,00
02/06/07 26/09/07 50.000,00 116,00
02/06/07 03/10/07 60.000,00 123,00
02/06/07 03/11/07 70.000,00 154,00
Prazo médio ponderado (dias)109,36
=SOMARPRODUTO(D631:D635*E631:E635/SOMA(D631:D635))
CRIANDO FÓRMULAS MATRICIAIS COM CONSTANTES
O que é Uma Constante ?
Um item nomeado que mantém um valor constante por toda a execução de uma fórmula.
Uma constante pode ser uma literal de seqüência de caracteres ou numérica, uma outra constante ou qualquer combinação que inclua operadores aritméticos ou lógicos.
Como Criar Uma Constante:
Criaremos uma constante numa coluna com quatro linhas. Na primeira linha desta coluna digite "={1;2;3;4}", sim digite as chaves também !
Quando você "arrastar para a segunda, terceira e quarta linha todas células ficarão preenchidas com o número 1, que o primeiro valor da constante. Agora entra a fórmula matricial, selecione as quatro linhas e na barra de fórmulas pressione Ctrl+Shift+Enter. O resultado será que cada linha será preenchida com um numéro da constante, ou seja 1,2,3 e 4. Se você "arrastar" por mais de 4 linha um erro será gerado pois a constante só permite 4.
Coluna Constante, antes do pressionamento das teclas
={1;2;3;4}
Coluna Constante, depois do pressionamento das teclas
{={1;2;3;4}}
Exemplo Prático de Utilização de Constante:
Números
4
9 3+ grandes valores 3+ grandes valores
2 15 15
12 15 12
6 15 9
15
=MAIOR(F2:F7;{1;2;3}), Antes do pressionamento das teclas
{=MAIOR(F2:F7;{1;2;3})}, Depois do pressionamento das teclas
No exemplo acima utilizamos a fórmula matricial para fazer um ranking dos três maiores valores.
Podemos também utilizar constantes para fórmulas horizontais:
Um item nomeado que mantém um valor constante por toda a execução de uma fórmula.
Uma constante pode ser uma literal de seqüência de caracteres ou numérica, uma outra constante ou qualquer combinação que inclua operadores aritméticos ou lógicos.
Como Criar Uma Constante:
Criaremos uma constante numa coluna com quatro linhas. Na primeira linha desta coluna digite "={1;2;3;4}", sim digite as chaves também !
Quando você "arrastar para a segunda, terceira e quarta linha todas células ficarão preenchidas com o número 1, que o primeiro valor da constante. Agora entra a fórmula matricial, selecione as quatro linhas e na barra de fórmulas pressione Ctrl+Shift+Enter. O resultado será que cada linha será preenchida com um numéro da constante, ou seja 1,2,3 e 4. Se você "arrastar" por mais de 4 linha um erro será gerado pois a constante só permite 4.
Coluna Constante, antes do pressionamento das teclas
={1;2;3;4}
Coluna Constante, depois do pressionamento das teclas
{={1;2;3;4}}
Exemplo Prático de Utilização de Constante:
Números
4
9 3+ grandes valores 3+ grandes valores
2 15 15
12 15 12
6 15 9
15
=MAIOR(F2:F7;{1;2;3}), Antes do pressionamento das teclas
{=MAIOR(F2:F7;{1;2;3})}, Depois do pressionamento das teclas
No exemplo acima utilizamos a fórmula matricial para fazer um ranking dos três maiores valores.
Podemos também utilizar constantes para fórmulas horizontais:
Funções para SQL
São Utilizadas para determinar quantidade de registros, totais, médias ou dados estatísticos.
Função SUM: Utilizada para somarmos uma determinada coluna de valor numérico ou monetário. Para utilizar esta função no SQL devemos "apelidar" a nova coluna que será criada seguido da palavra AS. Ex: SUM(salários) AS TotalSalário. A coluna TotalSalário será temporária e assim que fecharmos a consulta ela não mais existirá.
Exemplo:
Set MinhaTabela = MeuBD.OpenRecordset("SELECT superior, sum(salário) as TotalSalários FROM [dados2$] GROUP BY superior;")
Função AVG: Assim como na função SUM sua utilidade é de calcular a média de certo valor monetária de uma coluna que satisfaça uma certa condição. No Exemplo anterior utilizamos a Cláusula GROUP BY para agruparmos quantos supervisores existiam na empresa; em seguida somamos os salários dos seus subordinados. Agora iremos calcular o salário médio dos subordinados.
Exemplo:
Set MinhaTabela = MeuBD.OpenRecordset("SELECT superior, SUM(salário) as TotalSalários , AVG(salário) AS MédiaSalários FROM [dados2$] GROUP BY superior;")
Função COUNT: Utilizada para contar o número de registros. Neste exemplo utilizamos para saber o número de funcionários que cada supervisor comanda.
Exemplo:
Set MinhaTabela = MeuBD.OpenRecordset("SELECT superior, SUM(salário) as TotalSalários ,AVG(salário) AS MédiaSalários , COUNT(salário) AS QtSalários FROM [dados2$] GROUP BY superior;")
Função MIN e MAX: Utilizadas para obter o menor e o maior registro respectivamente. Neste exemplo conseguimos saber o menor e o maior salário dos subordinados dos respectivos supervisores.
Exemplo:
Set MinhaTabela = MeuBD.OpenRecordset("SELECT superior, SUM(salário) as TotalSalários ,AVG(salário) AS MédiaSalários , COUNT(salário) AS QtSalários , MIN(salário) AS MinSalários, MAX(salário) AS MaxSalários FROM [dados2$] GROUP BY superior;")
Consulta UNION: É usada para combinar o conjunto de registros de duas ou mais tabelas com campos idênticos. Sua sitaxe é a seguinte: "SELECT * FROM Tabela1 UNION ALL SELECT * FROM Tabela2;
Função SUM: Utilizada para somarmos uma determinada coluna de valor numérico ou monetário. Para utilizar esta função no SQL devemos "apelidar" a nova coluna que será criada seguido da palavra AS. Ex: SUM(salários) AS TotalSalário. A coluna TotalSalário será temporária e assim que fecharmos a consulta ela não mais existirá.
Exemplo:
Set MinhaTabela = MeuBD.OpenRecordset("SELECT superior, sum(salário) as TotalSalários FROM [dados2$] GROUP BY superior;")
Função AVG: Assim como na função SUM sua utilidade é de calcular a média de certo valor monetária de uma coluna que satisfaça uma certa condição. No Exemplo anterior utilizamos a Cláusula GROUP BY para agruparmos quantos supervisores existiam na empresa; em seguida somamos os salários dos seus subordinados. Agora iremos calcular o salário médio dos subordinados.
Exemplo:
Set MinhaTabela = MeuBD.OpenRecordset("SELECT superior, SUM(salário) as TotalSalários , AVG(salário) AS MédiaSalários FROM [dados2$] GROUP BY superior;")
Função COUNT: Utilizada para contar o número de registros. Neste exemplo utilizamos para saber o número de funcionários que cada supervisor comanda.
Exemplo:
Set MinhaTabela = MeuBD.OpenRecordset("SELECT superior, SUM(salário) as TotalSalários ,AVG(salário) AS MédiaSalários , COUNT(salário) AS QtSalários FROM [dados2$] GROUP BY superior;")
Função MIN e MAX: Utilizadas para obter o menor e o maior registro respectivamente. Neste exemplo conseguimos saber o menor e o maior salário dos subordinados dos respectivos supervisores.
Exemplo:
Set MinhaTabela = MeuBD.OpenRecordset("SELECT superior, SUM(salário) as TotalSalários ,AVG(salário) AS MédiaSalários , COUNT(salário) AS QtSalários , MIN(salário) AS MinSalários, MAX(salário) AS MaxSalários FROM [dados2$] GROUP BY superior;")
Consulta UNION: É usada para combinar o conjunto de registros de duas ou mais tabelas com campos idênticos. Sua sitaxe é a seguinte: "SELECT * FROM Tabela1 UNION ALL SELECT * FROM Tabela2;
Instruções SQL para realização de Consultas
SQL: Estrutura da Linguagem Query é a linguagem padrão para comunicar-se com um banco de dados.Utilizamos esta linguagem para extrair de uma tabela em um formato legível,de acordo com a solicitação do usuário informações que venha satisfazer suas necessidades. As consultas são ferramentas essenciais em qualquer sistema de gerenciamento de banco de dados, pois possibilitam selecionar registros, atualizar tabelas, editar incluir registros.
Comando SELECT: É o principal comando do SQL, Usado principalmente em consultas de seleção. Sua sintaxe é a seguinte:
Set MinhaTabela = MeuBD.OpenRecordset("SELECT * FROM [dados$];")
Onde:SELECT é a instrução; o asterisco( * ) representa toda tabela; FROM [dados$], da tabela dados.
Cláusula ORDER BY: A critério do usuário pode-se ordenar uma tabela simultaneamente quando da execução de uma consulta, para isto basta utilizar o comando ORDER BY. Pode-se ordenar na ascendente (ASC) ou na Descendente (DESC). A sintaxe é a seguinte:
Set MinhaTabela = MeuBD.OpenRecordset("SELECT * FROM [dados$] ORDER BY nome DESC;")
Cláusula WHERE: Tem alguns casos que precisamos filtrar algum registro em algum parametro específico. Por exemplo, precisamos filtrar todos nomes "José", neste caso utilizamos a cláusula WHERE. A cláusula WHERE aceita operadores OR (ou) e AND (e) para trabalho com expressões.
Estrutura JOIN...ON: Podemos utilizar mais de uma tabela para efetuar uma consulta complexa. No nosso caso prático temos duas tabelas com um campo em comum, "nº" ; Numa tabela consta o nome, cargo e bairro; e na outra consta o superior, salário e dataadmissão. Desejamos então saber quais os nomes da tabela 1 tem como superior imediato o sr. João. Devemos então fazer uma associação das duas tabelas com a estrutura JOIN...ON. As tabelas são incluidas na Cláusula JOIN e os
critérios de associação são colocados na cláusula ON. A três tipos de associações: INNER (Equivalência), LEFT (externa à esquerda) e RIGHT( Externa à direita). As associações externas são as que retornam todos os valores de uma tabela e apenas os correspondentes de outra.
Palavra Chave DISTINCT: Esta palavra chave faz com que sejam eliminadas linhas repetidas com base nos valores das linhas da consulta. Se utiliza esta palavra chave para sabermos quantos nomes direntes exisem em uma determinada tabela.
Modificadores TOP e PERCENT: Ambos limitam o conjunto de resultados de uma consulta. Utiliza-se para conhecer-se como por exemplo os maiores salários de uma empresa, os maiores clientes etc.
Utilizarmos a consulta para conhecer os 03 maiores. Obs: Para que a consulta seja verdadeira é necessário ordernarmos a coluna que servirá de resposta, no caso salario.
Cláusula GROUP BY: Serve agrupar dados.
Comando SELECT: É o principal comando do SQL, Usado principalmente em consultas de seleção. Sua sintaxe é a seguinte:
Set MinhaTabela = MeuBD.OpenRecordset("SELECT * FROM [dados$];")
Onde:SELECT é a instrução; o asterisco( * ) representa toda tabela; FROM [dados$], da tabela dados.
Cláusula ORDER BY: A critério do usuário pode-se ordenar uma tabela simultaneamente quando da execução de uma consulta, para isto basta utilizar o comando ORDER BY. Pode-se ordenar na ascendente (ASC) ou na Descendente (DESC). A sintaxe é a seguinte:
Set MinhaTabela = MeuBD.OpenRecordset("SELECT * FROM [dados$] ORDER BY nome DESC;")
Cláusula WHERE: Tem alguns casos que precisamos filtrar algum registro em algum parametro específico. Por exemplo, precisamos filtrar todos nomes "José", neste caso utilizamos a cláusula WHERE. A cláusula WHERE aceita operadores OR (ou) e AND (e) para trabalho com expressões.
Estrutura JOIN...ON: Podemos utilizar mais de uma tabela para efetuar uma consulta complexa. No nosso caso prático temos duas tabelas com um campo em comum, "nº" ; Numa tabela consta o nome, cargo e bairro; e na outra consta o superior, salário e dataadmissão. Desejamos então saber quais os nomes da tabela 1 tem como superior imediato o sr. João. Devemos então fazer uma associação das duas tabelas com a estrutura JOIN...ON. As tabelas são incluidas na Cláusula JOIN e os
critérios de associação são colocados na cláusula ON. A três tipos de associações: INNER (Equivalência), LEFT (externa à esquerda) e RIGHT( Externa à direita). As associações externas são as que retornam todos os valores de uma tabela e apenas os correspondentes de outra.
Palavra Chave DISTINCT: Esta palavra chave faz com que sejam eliminadas linhas repetidas com base nos valores das linhas da consulta. Se utiliza esta palavra chave para sabermos quantos nomes direntes exisem em uma determinada tabela.
Modificadores TOP e PERCENT: Ambos limitam o conjunto de resultados de uma consulta. Utiliza-se para conhecer-se como por exemplo os maiores salários de uma empresa, os maiores clientes etc.
Utilizarmos a consulta para conhecer os 03 maiores. Obs: Para que a consulta seja verdadeira é necessário ordernarmos a coluna que servirá de resposta, no caso salario.
Cláusula GROUP BY: Serve agrupar dados.
Sheets expiration date
Have you thought sometimes pass their sheet to a friend, colleague or a third party and not knowing how they will use them, or worse appropriating their ideas? I put this down to a code where your spreadsheet will expire when the user closes it.
Private Sub Workbook_BeforeClose (Cancel As Boolean)
As Date Dim dtexp
'Select the date which will expire
dtexp = ("29/04/2011") 'here inhibit'
If Date> = # 1/11/2010 # Then 'turn this'
If Date> = dtexp Then 'inhibiting here'
ThisWorkbook.Saved = True
'If you want to send message only remove the single quote of the bottom line or customize
'MsgBox "This file is expired, if auto-delete!"
ThisWorkbook.ChangeFileAccess xlReadOnly
Kill ThisWorkbook.FullName
end If
end If
end Sub
** Note will not even to trash
Private Sub Workbook_BeforeClose (Cancel As Boolean)
As Date Dim dtexp
'Select the date which will expire
dtexp = ("29/04/2011") 'here inhibit'
If Date> = # 1/11/2010 # Then 'turn this'
If Date> = dtexp Then 'inhibiting here'
ThisWorkbook.Saved = True
'If you want to send message only remove the single quote of the bottom line or customize
'MsgBox "This file is expired, if auto-delete!"
ThisWorkbook.ChangeFileAccess xlReadOnly
Kill ThisWorkbook.FullName
end If
end If
end Sub
** Note will not even to trash
Unprotected multiple sheets at once
Below we reported a very simple way to unprotect multiple sheets at once in excel. It is a code in VBA where you only need to copy and paste our readers.
Note this tip we can use this code for several funionabilidades Excel such as: unprotect worksheets, protect worksheets, spreadsheets, hide, unhide worksheets, etc..
I hope you enjoyed it more this super tip Excel.
Sub unprotect_worksheets()
Dim i As Integer
'Loops in the standard of excel spreadsheets
'If more than 03 worksheets to unprotected change the number 3 to the desired amount
For i = 1 To 3
Sheets (i). Unprotect Password: = "123" 'where 123 is the password you
Next i
MsgBox "Worksheets unprotected successfully!" 'Optional message
end Sub
Note this tip we can use this code for several funionabilidades Excel such as: unprotect worksheets, protect worksheets, spreadsheets, hide, unhide worksheets, etc..
I hope you enjoyed it more this super tip Excel.
Sub unprotect_worksheets()
Dim i As Integer
'Loops in the standard of excel spreadsheets
'If more than 03 worksheets to unprotected change the number 3 to the desired amount
For i = 1 To 3
Sheets (i). Unprotect Password: = "123" 'where 123 is the password you
Next i
MsgBox "Worksheets unprotected successfully!" 'Optional message
end Sub
Fórmulas Matriciais - Outra visão do Excel
Fórmulas Matriciais são de vital importancia, visto que possibilitam inumeras possibilidades, desde fórmulas simples a fórmulas como se fossem banco de dados no Excel.
1 - INTRODUÇÃO
O excel, a princípio, foi criado para resolver o problema de muitos, que com suas cálculadoras efetuavam enormes cálculos e traduziam os complexos resultados para planilhas manuais.Estes cálculos eram tão importantes que várias tomadas de decisões eram neles baseados. Agora, imagine você se alguns destes cálculos estivessem errados ! Muitos negócios poderiam ser prejudicados e quantos prejuízos poderiam ser gerados nas empresas.
E realmente foi isso que o excel fez, minimizou o problema de muitos com a inserção de funções para a criação de fórmulas, e o que é melhor , não prender o usuário a um padrão, ou seja, no excel cada um cria fórmulas com a função que desejar, desde que o resultado seja correto. A Microsoft percebendo o sucesso de seu aplicativo, e percebendo que algumas fórmulas criadas estavam tornando-se complexas demais, resolveu simplificar tudo isso, e aí nasceu as fómulas matriciais.
Podemos dizer então que fórmulas matriciais é o que mais avançado existe de no tocante a fórmulas, e você que estudará este tutorial se destacará em qualquer meio que suas fórmulas forem apresentadas.
2 - DEFININDO FÓRMULA E FUNÇÕES
2.1 - Fórmulas
Fórmulas são equações que executam cálculos sobre valores na planilha. Uma fórmula também pode conter quaisquer dos seguintes itens: funções, referências, operadores e constantes.
2.2 - Funções
Funções são fórmulas predefinidas que efetuam cálculos usando valores específicos, denominados argumentos, em uma determinada ordem ou estrutura. As funções podem ser usadas para executar cálculos simples ou Complexos.
Vamos citar como exemplo a função Arred( ):
=ARRED(A10;2)
Estrutura de uma função:
Estrutura. A estrutura de uma função começa com um sinal de igual (=), seguido do nome da função, um parêntese aberto, os argumentos da função separados por vírgulas e um parêntese de fechamento.
Nome da função. Para obter uma lista das funções disponíveis, clique em uma célula e pressione SHIFT+F3.
Argumentos. Os argumentos podem ser números, texto, valores lógicos, como VERDADEIRO ou FALSO, matrizes , valores de erro como #N/D ou referências de célula.O argumento que você atribuir deve produzir um valor válido para esse argumento. Os argumentos também podem ser constantes, fórmulas ou outras funções.
Dica de ferramenta Argumentos. Uma dica de ferramenta com a sintaxe e argumentos é exibida à medida que você digita a função. Por exemplo, digite =ARRED( e a dica de ferramenta aparecerá. As dicas de ferramenta são exibidas somente para funções internas.
Inserir fórmulas:
Quando você cria uma fórmula que contém uma função, a caixa de diálogo Inserir função ajuda você a inserir funções de planilha. Enquanto você digita uma função na fórmula, a caixa de diálogo Inserir função exibe seu nome, cada um de seus argumentos, as descrições, seu resultado atual e o resultado atual da fórmula inteira.
Funções Aninhadas:
Em determinados casos, é possível você precise usar uma função como um dos argumentos de outra
função. Por exemplo, a fórmula a seguir usa uma função aninhada MÉDIA e compara o resultado com
o valor 50.
=SE(MÉDIA(F1:F5)>18;SOMA((G1:G5);0) - Já Criamos um tópico sobre o assunto.
Quando uma função aninhada é usada como argumento,ela deve retornar o mesmo tipo de valor utilizado pelo argumento. Por exemplo, se o argumento retornar um valor VERDADEIRO ou FALSO, a função aninhada deverá retornar VERDADEIRO ou FALSO. Se não retornar, o Microsoft Excel exibirá um valor de erro #VALOR!
Uma fórmula pode conter até sete níveis de funções aninhadas. Quando a Função B for usada como argumento na Função A, a Função B será de segundo nível. Por exemplo, as funções MÉDIA e SOMA são de segundo nível, pois são argumentos da função SE. Uma função aninhada na função MÉDIA seria de terceiro nível, e assim por diante.
Referências em Fórmulas:
Uma referência identifica uma célula ou um intervalo de células em uma planilha e informa ao Microsoft Excel onde procurar pelos valores ou dados a serem usados em uma fórmula. Com referências, você pode usar dados contidos em partes diferentes de uma planilha em uma fórmula ou usar o valor de uma célula em várias fórmulas. Você também pode se referir a células de outras planilhas na mesma pasta de trabalho e a outras pastas de trabalho. Referências às células de outras pastas de trabalho são chamadas vínculos.
Referências Relativas e Referências Absolutas:
Uma referência relativa em uma fórmula, como A1, é baseada na posição relativa da célula que contém a fórmula e da célula à qual a referência se refere. Se a posição da célula que contém a fórmula se alterar, a referência será alterada.Se você copiar a fórmula ao longo de linhas ou colunas, a referência se ajustará automaticamente. Por padrão, novas fórmulas usam referências relativas.
Por exemplo, se você copiar uma referência relativa que está na célula B2 para a célula B3, a referência será automaticamente ajustada de =A1 para =A2.
Uma referência absoluta de célula em uma fórmula, como $A$1, sempre se refere a uma célula em um local específico. Se a posição da célula que contém a fórmula se alterar, a referência absoluta permanecerá a mesma. Se você copiar a fórmula ao longo de linhas ou colunas, a referência absoluta não se ajustará. Por padrão, novas fórmulas usam referências relativas e você precisa trocá-las para referências absolutas. Por exemplo, se você copiar uma referência absoluta na célula B2 para a célula B3, ela permanecerá a mesma em ambas as células =$A$1.
Uma referência mista tem uma coluna absoluta e linha relativa, ou linha absoluta e coluna relativa. Uma referência de coluna absoluta tem o formato $A1, $B1 e assim por diante.Uma referência de linha absoluta tem o formato A$1, B$1 e assim por diante. Se a posição da célula que contém a fórmula se alterar, a referência relativa será alterada e a referência absoluta não se alterará. Se você co-
piar a fórmula ao longo de linhas ou colunas, a referência relativa se ajustará automaticamente e a referência absoluta não se ajustará. Por exemplo, se você copiar uma referência mista da célula A2 para B3, ela se ajustará de =A$1 para =B$1.
Utilizando Nomes Em Células:
Um nome definido em uma fórmula pode facilitar a compreensão do objetivo da fórmula. Por exemplo,a fórmula =SOMA(PrimeiroTrimestreVendas) talvez seja mais fácil de identificar do que =SOMA(C20:C30).
Os nomes estão disponíveis em qualquer planilha. Por exemplo, se o nome VendasProjetadas referir - se ao intervalo A20:A30 na primeira planilha de uma pasta de trabalho, você poderá usar o nome VendasProjetadas em qualquer outra planilha da mesma pasta de trabalho para referir-ao intervalo A20:A30 na primeira planilha.
Os nomes também podem ser usados para representar fórmulas ou valores que não se alteram (constantes). Por exemplo, você pode usar o nome ImpostoVendas para representar o valor do imposto sobre vendas (como 6,2 por cento) aplicado às transações de vendas.
Você também pode vincular a um nome definido em outra pasta de trabalho ou definir um nome que se refira a células em outra pasta de trabalho.
Por exemplo, a fórmula =SOMA(Vendas.xls!VendasProjetadas)refere-se ao intervalo nomeado VendasProjetadas na pasta de trabalho chamada Vendas.
Diretrizes para nomes:
Quais são os caracteres permitidos?O primeiro caractere de um nome deve ser uma letra ou um sublinhado. Os demais caracteres no nome podem ser letras, números, pontos e sublinhado.
Nomes podem ser referências de células? Os nomes não podem ser iguais a uma referência de célula, como Z$100 ou L1C1.
É possível usar mais de uma palavra? Sim, mas espaços não são permitidos. Os caracteres desublinhado e os pontos podem ser usados como separadores de palavras — por exemplo,
Imposto_Vendas ou Primeiro.Trimestre.
Quantos caracteres podem ser usados? Os nomes podem conter até 255 caracteres.Os nomes diferenciam maiúsculas de minúsculas? Os nomes podem conter letras maiúsculas e minúsculas. O Microsoft Excel não faz distinção entre caracteres maiúsculos e minúsculos em nomes
Por exemplo, se você tinha criado o nome Vendas e, em seguida, criou outro nome chamado VENDAS na mesma pasta de trabalho, o segundo nome substituirá o primeiro.
3 - DEFININDO FÓRMULA MATRICIAIS
Uma fórmula que executa vários cálculos em um ou mais conjuntos de valores e retorna um único resultado ou vários resultados.As fórmulas de matriz ficam entre chaves { } e são inseridas pressionando CTRL+SHIFT+ENTER.).
Fórmulas matriciais agem sobre um ou mais conjuntos de valores, que são conhecidos como argumentos de matriz. Cada argumento de matriz deve ser retangular e cada argumento precisa ter o mesmo número de linhas e/ou o mesmo número de colunas que os outros argumentos.
Além de pouco utilizado, por parecer muito complexo, é um recurso que quase ninguém conhece, mas a partir de agora você que está estudando este tutorial se tornará um expert e sempre recorrerá a elas em seus trabalhos, destacando-se dentre muitos.
Muitos, por preferência, não utilizam o VBA para automatizar suas planilhas, o que acho um erro, então as fórmulas matriciais é a melhor maneira para suprir algumas deficiências das fórmulas tradicionais.
4 - CRIANDO FÓRMULA MATRICIAIS
Aprender a criar fórmulas no Excel é igual a resolver equações de matemática, nada como muitos exercicíos para se tornar um expert.
Vamos dividir as fórmulas por categoria para facilitar o entendimento:
CRIANDO EXPRESSÕES
CRIANDO FÓRMULAS MATRICIAIS COM CONSTANTES
CRIANDO FÓRMULAS MATRICIAIS PARA ANÁLISE DE DADOS
TRABALHANDO COM DATAS E FÓRMULAS MATRICIAIS
OUTRAS UTILIZAÇÕES DAS FÓRMULA MATRICIAIS
4.1 - CRIANDO EXPRESSÕES
Criaremos a seguir uma série de fórmulas ideal para quem trabalho em depto.pessoal e precisa administrar seus dados no Excel
Vamos primeiramente criar uma tabela com os seguintes dados: Nome, Depto. Qualificação e Salário
Criaremos duas consultas: a 1ª verificará quais os funcionários estão alocados no depto de Compras, e a 2ª verificará quais são qualificados na categoria "Q1".
A utilização de expressões Matriciais agilizam muito a construção de fórmulas idênticas para diversas linhas. Na 1ªlinha da coluna que receberá as fórmulas digite a expressão, no nosso caso:
"=B2:B10="Compras"", esta expressão fará uma análise no intervalo de 2 a 10 para verificar se o texto digitado é "Compras". Após a digitação selecione esta linha até a última linha que receberá a expressão, nosso exemplo 10. Com a região selecionada vá até a barra de fórmulas , selecione a fórmula e pressione simultaneamente as teclas Ctrl + Shit + Enter e pronto nossa expressão matricial será criada automaticamente. Repita a operação para a 2ª e 3ª consultas, você irá se surpreender com o resultado!
Na primeira e segunda consulta se os critérios satisfazem a expressão o termo "Verdadeiro" é retornado, senão "Falso". Já na 3ª consulta se as duas colunas satisfizerem os critérios o valor 1 será retornado senão zero.
Todo o segredo das fórmulas matriciais estão no pressionamento simultâneo das teclas Ctrl+Shift+Enter da expressão digitada!
2º Exemplo
Para incrementar mais um pouco a fórmula utilizaremos agora 2 critérios de consulta, o depto. e a Qualificação.
Escolha o Depto. Compras
Escolha a Qualificação Q2
NºDepto. em Qual. 2 =SOMARPRODUTOS((B2:B10=H1)*(C2:C10=H2))
Soma Depto. Em Q1 4.000,00 =SOMARPRODUTOS((B2:B10=H1)*(C2:C10=H2)*D2:D10)
3º Exemplo
Vamos tornar nossa consulta um pouco mais complexa, incrementando com a data de nascimento dos funcionários:
Nome Depto. Qualif Salário Nascimento
Carlos Compras Q1 2.000,00 13/12/50
Romeu Estoque Q2 4.000,00 14/12/50
Martin Fabric Q3 2.000,00 15/12/60
Alberto Compras Q2 2.000,00 16/12/60
Doremi Compras Q1 2.000,00 17/12/60
Mermoz Estoque Q1 3.000,00 18/12/50
Balu Compras Q2 2.000,00 19/12/50
Boresco Fabric Q3 2.000,00 20/12/50
Delpont Compras Q4 2.000,00 21/12/50
Utilizaremos agora fórmulas para pesquisarmos nomes e funcionários que começar com uma determinada letra e também que nasceram num determinado ano, tudo graças às formulas matriciais.
Soma dos salários das Pessoas que começam com a letra D
{=SOMA((ESQUERDA(E275:E283)="D")*H275:H283)} Para validar Tecle Cotrl+Shift+Enter
ou
{=SOMA(SE(ESQUERDA(E275:E283;1)="D";H275:H283;0))} Para validar Tecle Cotrl+Shift+Enter
Nº de pessoas que começas com letra D
{=SOMA((ESQUERDA(E275:E283)="D")*1)} Para validar Tecle Cotrl+Shift+Enter
ou
{=SOMA(SE(ESQUERDA(E275:E283;1)="D";1;""))}
Nº de pessoas que nasceram em 1950
{=SOMA((ANO(I275:I283)=1950)*1)}
ou
{=SOMA(SE(ANO(I275:I283)=1950;1;0))}
{=MÉDIA(SE(H275:H283>2000;H275:H283;""))} Para validar Tecle
Podemos utilizar a mesma tabela para somar os salários de funcionários de um ou mais departamentos.
=SOMA(((Depto="Compras")+(Depto="Estoque"))*Salário
Validar Ctrl+Shift+Enter
A seguir vamos verificar se um mais funcionário pertece à lista de funcionários:
=SE(SOMA((nome="martin")*(Qualif="q3")*1)>0;"Sim";"Não")
Validar Ctrl+Shift+Enter
4º Exemplo
Nosso próximo exemplo é uma amostra de valores com previsão de recebimento e datas de efetivo recebimento. Vamos então criar fórmulas para verificar quanto foram recebidos no devido vencimento e a soma desses valores.
Fatura Previsão Real Valores
1 01/06/06 01/06/06 1.000,00
2 02/06/06 02/06/06 1.000,00 3 03/06/06 03/06/06 1.000,00 4 04/06/06 04/06/06 1.000,00
5 05/06/06 05/06/06 1.000,00
6 06/06/06 08/06/06 1.000,00
7 07/06/06 07/06/06 1.000,00
8 08/06/06 10/06/06 1.000,00
2 - {=SOMARPRODUTO((E413:E420>D413:D420)*1)} Duas faturas foram pagas no vecto.
2.000,00 - {=SOMARPRODUTO((E413:E420>D413:D420)*F413:F420)} Soma das duas faturas
Nb de pagtos real>pagtos previstos
=SOMARPRODUTO((Real>Previsão)*1)
Valores
=SOMARPRODUTO((Real>Previsão)*Valores)
A fórmula acima é ideal para o depto. financeiro
Totaliza-se as quantidades por produto
{=SOMARPRODUTO((C339:G346=J339)*(N(DESLOC(C339:G346;;1))))}
Esta fórmula é ótima, pois economiza muitas funções como "Cont.Se", "Somase" e até mesmo "Se"
que teríamos que utilizar para conseguir os mesmos resultados.
1 - INTRODUÇÃO
O excel, a princípio, foi criado para resolver o problema de muitos, que com suas cálculadoras efetuavam enormes cálculos e traduziam os complexos resultados para planilhas manuais.Estes cálculos eram tão importantes que várias tomadas de decisões eram neles baseados. Agora, imagine você se alguns destes cálculos estivessem errados ! Muitos negócios poderiam ser prejudicados e quantos prejuízos poderiam ser gerados nas empresas.
E realmente foi isso que o excel fez, minimizou o problema de muitos com a inserção de funções para a criação de fórmulas, e o que é melhor , não prender o usuário a um padrão, ou seja, no excel cada um cria fórmulas com a função que desejar, desde que o resultado seja correto. A Microsoft percebendo o sucesso de seu aplicativo, e percebendo que algumas fórmulas criadas estavam tornando-se complexas demais, resolveu simplificar tudo isso, e aí nasceu as fómulas matriciais.
Podemos dizer então que fórmulas matriciais é o que mais avançado existe de no tocante a fórmulas, e você que estudará este tutorial se destacará em qualquer meio que suas fórmulas forem apresentadas.
2 - DEFININDO FÓRMULA E FUNÇÕES
2.1 - Fórmulas
Fórmulas são equações que executam cálculos sobre valores na planilha. Uma fórmula também pode conter quaisquer dos seguintes itens: funções, referências, operadores e constantes.
2.2 - Funções
Funções são fórmulas predefinidas que efetuam cálculos usando valores específicos, denominados argumentos, em uma determinada ordem ou estrutura. As funções podem ser usadas para executar cálculos simples ou Complexos.
Vamos citar como exemplo a função Arred( ):
=ARRED(A10;2)
Estrutura de uma função:
Estrutura. A estrutura de uma função começa com um sinal de igual (=), seguido do nome da função, um parêntese aberto, os argumentos da função separados por vírgulas e um parêntese de fechamento.
Nome da função. Para obter uma lista das funções disponíveis, clique em uma célula e pressione SHIFT+F3.
Argumentos. Os argumentos podem ser números, texto, valores lógicos, como VERDADEIRO ou FALSO, matrizes , valores de erro como #N/D ou referências de célula.O argumento que você atribuir deve produzir um valor válido para esse argumento. Os argumentos também podem ser constantes, fórmulas ou outras funções.
Dica de ferramenta Argumentos. Uma dica de ferramenta com a sintaxe e argumentos é exibida à medida que você digita a função. Por exemplo, digite =ARRED( e a dica de ferramenta aparecerá. As dicas de ferramenta são exibidas somente para funções internas.
Inserir fórmulas:
Quando você cria uma fórmula que contém uma função, a caixa de diálogo Inserir função ajuda você a inserir funções de planilha. Enquanto você digita uma função na fórmula, a caixa de diálogo Inserir função exibe seu nome, cada um de seus argumentos, as descrições, seu resultado atual e o resultado atual da fórmula inteira.
Funções Aninhadas:
Em determinados casos, é possível você precise usar uma função como um dos argumentos de outra
função. Por exemplo, a fórmula a seguir usa uma função aninhada MÉDIA e compara o resultado com
o valor 50.
=SE(MÉDIA(F1:F5)>18;SOMA((G1:G5);0) - Já Criamos um tópico sobre o assunto.
Quando uma função aninhada é usada como argumento,ela deve retornar o mesmo tipo de valor utilizado pelo argumento. Por exemplo, se o argumento retornar um valor VERDADEIRO ou FALSO, a função aninhada deverá retornar VERDADEIRO ou FALSO. Se não retornar, o Microsoft Excel exibirá um valor de erro #VALOR!
Uma fórmula pode conter até sete níveis de funções aninhadas. Quando a Função B for usada como argumento na Função A, a Função B será de segundo nível. Por exemplo, as funções MÉDIA e SOMA são de segundo nível, pois são argumentos da função SE. Uma função aninhada na função MÉDIA seria de terceiro nível, e assim por diante.
Referências em Fórmulas:
Uma referência identifica uma célula ou um intervalo de células em uma planilha e informa ao Microsoft Excel onde procurar pelos valores ou dados a serem usados em uma fórmula. Com referências, você pode usar dados contidos em partes diferentes de uma planilha em uma fórmula ou usar o valor de uma célula em várias fórmulas. Você também pode se referir a células de outras planilhas na mesma pasta de trabalho e a outras pastas de trabalho. Referências às células de outras pastas de trabalho são chamadas vínculos.
Referências Relativas e Referências Absolutas:
Uma referência relativa em uma fórmula, como A1, é baseada na posição relativa da célula que contém a fórmula e da célula à qual a referência se refere. Se a posição da célula que contém a fórmula se alterar, a referência será alterada.Se você copiar a fórmula ao longo de linhas ou colunas, a referência se ajustará automaticamente. Por padrão, novas fórmulas usam referências relativas.
Por exemplo, se você copiar uma referência relativa que está na célula B2 para a célula B3, a referência será automaticamente ajustada de =A1 para =A2.
Uma referência absoluta de célula em uma fórmula, como $A$1, sempre se refere a uma célula em um local específico. Se a posição da célula que contém a fórmula se alterar, a referência absoluta permanecerá a mesma. Se você copiar a fórmula ao longo de linhas ou colunas, a referência absoluta não se ajustará. Por padrão, novas fórmulas usam referências relativas e você precisa trocá-las para referências absolutas. Por exemplo, se você copiar uma referência absoluta na célula B2 para a célula B3, ela permanecerá a mesma em ambas as células =$A$1.
Uma referência mista tem uma coluna absoluta e linha relativa, ou linha absoluta e coluna relativa. Uma referência de coluna absoluta tem o formato $A1, $B1 e assim por diante.Uma referência de linha absoluta tem o formato A$1, B$1 e assim por diante. Se a posição da célula que contém a fórmula se alterar, a referência relativa será alterada e a referência absoluta não se alterará. Se você co-
piar a fórmula ao longo de linhas ou colunas, a referência relativa se ajustará automaticamente e a referência absoluta não se ajustará. Por exemplo, se você copiar uma referência mista da célula A2 para B3, ela se ajustará de =A$1 para =B$1.
Utilizando Nomes Em Células:
Um nome definido em uma fórmula pode facilitar a compreensão do objetivo da fórmula. Por exemplo,a fórmula =SOMA(PrimeiroTrimestreVendas) talvez seja mais fácil de identificar do que =SOMA(C20:C30).
Os nomes estão disponíveis em qualquer planilha. Por exemplo, se o nome VendasProjetadas referir - se ao intervalo A20:A30 na primeira planilha de uma pasta de trabalho, você poderá usar o nome VendasProjetadas em qualquer outra planilha da mesma pasta de trabalho para referir-ao intervalo A20:A30 na primeira planilha.
Os nomes também podem ser usados para representar fórmulas ou valores que não se alteram (constantes). Por exemplo, você pode usar o nome ImpostoVendas para representar o valor do imposto sobre vendas (como 6,2 por cento) aplicado às transações de vendas.
Você também pode vincular a um nome definido em outra pasta de trabalho ou definir um nome que se refira a células em outra pasta de trabalho.
Por exemplo, a fórmula =SOMA(Vendas.xls!VendasProjetadas)refere-se ao intervalo nomeado VendasProjetadas na pasta de trabalho chamada Vendas.
Diretrizes para nomes:
Quais são os caracteres permitidos?O primeiro caractere de um nome deve ser uma letra ou um sublinhado. Os demais caracteres no nome podem ser letras, números, pontos e sublinhado.
Nomes podem ser referências de células? Os nomes não podem ser iguais a uma referência de célula, como Z$100 ou L1C1.
É possível usar mais de uma palavra? Sim, mas espaços não são permitidos. Os caracteres desublinhado e os pontos podem ser usados como separadores de palavras — por exemplo,
Imposto_Vendas ou Primeiro.Trimestre.
Quantos caracteres podem ser usados? Os nomes podem conter até 255 caracteres.Os nomes diferenciam maiúsculas de minúsculas? Os nomes podem conter letras maiúsculas e minúsculas. O Microsoft Excel não faz distinção entre caracteres maiúsculos e minúsculos em nomes
Por exemplo, se você tinha criado o nome Vendas e, em seguida, criou outro nome chamado VENDAS na mesma pasta de trabalho, o segundo nome substituirá o primeiro.
3 - DEFININDO FÓRMULA MATRICIAIS
Uma fórmula que executa vários cálculos em um ou mais conjuntos de valores e retorna um único resultado ou vários resultados.As fórmulas de matriz ficam entre chaves { } e são inseridas pressionando CTRL+SHIFT+ENTER.).
Fórmulas matriciais agem sobre um ou mais conjuntos de valores, que são conhecidos como argumentos de matriz. Cada argumento de matriz deve ser retangular e cada argumento precisa ter o mesmo número de linhas e/ou o mesmo número de colunas que os outros argumentos.
Além de pouco utilizado, por parecer muito complexo, é um recurso que quase ninguém conhece, mas a partir de agora você que está estudando este tutorial se tornará um expert e sempre recorrerá a elas em seus trabalhos, destacando-se dentre muitos.
Muitos, por preferência, não utilizam o VBA para automatizar suas planilhas, o que acho um erro, então as fórmulas matriciais é a melhor maneira para suprir algumas deficiências das fórmulas tradicionais.
4 - CRIANDO FÓRMULA MATRICIAIS
Aprender a criar fórmulas no Excel é igual a resolver equações de matemática, nada como muitos exercicíos para se tornar um expert.
Vamos dividir as fórmulas por categoria para facilitar o entendimento:
CRIANDO EXPRESSÕES
CRIANDO FÓRMULAS MATRICIAIS COM CONSTANTES
CRIANDO FÓRMULAS MATRICIAIS PARA ANÁLISE DE DADOS
TRABALHANDO COM DATAS E FÓRMULAS MATRICIAIS
OUTRAS UTILIZAÇÕES DAS FÓRMULA MATRICIAIS
4.1 - CRIANDO EXPRESSÕES
Criaremos a seguir uma série de fórmulas ideal para quem trabalho em depto.pessoal e precisa administrar seus dados no Excel
Vamos primeiramente criar uma tabela com os seguintes dados: Nome, Depto. Qualificação e Salário
Criaremos duas consultas: a 1ª verificará quais os funcionários estão alocados no depto de Compras, e a 2ª verificará quais são qualificados na categoria "Q1".
A utilização de expressões Matriciais agilizam muito a construção de fórmulas idênticas para diversas linhas. Na 1ªlinha da coluna que receberá as fórmulas digite a expressão, no nosso caso:
"=B2:B10="Compras"", esta expressão fará uma análise no intervalo de 2 a 10 para verificar se o texto digitado é "Compras". Após a digitação selecione esta linha até a última linha que receberá a expressão, nosso exemplo 10. Com a região selecionada vá até a barra de fórmulas , selecione a fórmula e pressione simultaneamente as teclas Ctrl + Shit + Enter e pronto nossa expressão matricial será criada automaticamente. Repita a operação para a 2ª e 3ª consultas, você irá se surpreender com o resultado!
Na primeira e segunda consulta se os critérios satisfazem a expressão o termo "Verdadeiro" é retornado, senão "Falso". Já na 3ª consulta se as duas colunas satisfizerem os critérios o valor 1 será retornado senão zero.
Todo o segredo das fórmulas matriciais estão no pressionamento simultâneo das teclas Ctrl+Shift+Enter da expressão digitada!
2º Exemplo
Para incrementar mais um pouco a fórmula utilizaremos agora 2 critérios de consulta, o depto. e a Qualificação.
Escolha o Depto. Compras
Escolha a Qualificação Q2
NºDepto. em Qual. 2 =SOMARPRODUTOS((B2:B10=H1)*(C2:C10=H2))
Soma Depto. Em Q1 4.000,00 =SOMARPRODUTOS((B2:B10=H1)*(C2:C10=H2)*D2:D10)
3º Exemplo
Vamos tornar nossa consulta um pouco mais complexa, incrementando com a data de nascimento dos funcionários:
Nome Depto. Qualif Salário Nascimento
Carlos Compras Q1 2.000,00 13/12/50
Romeu Estoque Q2 4.000,00 14/12/50
Martin Fabric Q3 2.000,00 15/12/60
Alberto Compras Q2 2.000,00 16/12/60
Doremi Compras Q1 2.000,00 17/12/60
Mermoz Estoque Q1 3.000,00 18/12/50
Balu Compras Q2 2.000,00 19/12/50
Boresco Fabric Q3 2.000,00 20/12/50
Delpont Compras Q4 2.000,00 21/12/50
Utilizaremos agora fórmulas para pesquisarmos nomes e funcionários que começar com uma determinada letra e também que nasceram num determinado ano, tudo graças às formulas matriciais.
Soma dos salários das Pessoas que começam com a letra D
{=SOMA((ESQUERDA(E275:E283)="D")*H275:H283)} Para validar Tecle Cotrl+Shift+Enter
ou
{=SOMA(SE(ESQUERDA(E275:E283;1)="D";H275:H283;0))} Para validar Tecle Cotrl+Shift+Enter
Nº de pessoas que começas com letra D
{=SOMA((ESQUERDA(E275:E283)="D")*1)} Para validar Tecle Cotrl+Shift+Enter
ou
{=SOMA(SE(ESQUERDA(E275:E283;1)="D";1;""))}
Nº de pessoas que nasceram em 1950
{=SOMA((ANO(I275:I283)=1950)*1)}
ou
{=SOMA(SE(ANO(I275:I283)=1950;1;0))}
{=MÉDIA(SE(H275:H283>2000;H275:H283;""))} Para validar Tecle
Podemos utilizar a mesma tabela para somar os salários de funcionários de um ou mais departamentos.
=SOMA(((Depto="Compras")+(Depto="Estoque"))*Salário
Validar Ctrl+Shift+Enter
A seguir vamos verificar se um mais funcionário pertece à lista de funcionários:
=SE(SOMA((nome="martin")*(Qualif="q3")*1)>0;"Sim";"Não")
Validar Ctrl+Shift+Enter
4º Exemplo
Nosso próximo exemplo é uma amostra de valores com previsão de recebimento e datas de efetivo recebimento. Vamos então criar fórmulas para verificar quanto foram recebidos no devido vencimento e a soma desses valores.
Fatura Previsão Real Valores
1 01/06/06 01/06/06 1.000,00
2 02/06/06 02/06/06 1.000,00 3 03/06/06 03/06/06 1.000,00 4 04/06/06 04/06/06 1.000,00
5 05/06/06 05/06/06 1.000,00
6 06/06/06 08/06/06 1.000,00
7 07/06/06 07/06/06 1.000,00
8 08/06/06 10/06/06 1.000,00
2 - {=SOMARPRODUTO((E413:E420>D413:D420)*1)} Duas faturas foram pagas no vecto.
2.000,00 - {=SOMARPRODUTO((E413:E420>D413:D420)*F413:F420)} Soma das duas faturas
Nb de pagtos real>pagtos previstos
=SOMARPRODUTO((Real>Previsão)*1)
Valores
=SOMARPRODUTO((Real>Previsão)*Valores)
A fórmula acima é ideal para o depto. financeiro
Totaliza-se as quantidades por produto
{=SOMARPRODUTO((C339:G346=J339)*(N(DESLOC(C339:G346;;1))))}
Esta fórmula é ótima, pois economiza muitas funções como "Cont.Se", "Somase" e até mesmo "Se"
que teríamos que utilizar para conseguir os mesmos resultados.
Suplementos em Excel - XLA
DEFINIÇÃO DA MICROSOFT
Os suplementos são programas que adicionam comandos e recursos opcionais ao Microsoft Excel.
Antes de usar um suplemento, você precisa instalá-lo no computador e, em seguida, carregá-lo
no Microsoft Excel. Por padrão, os suplementos (arquivos *.xla) são instalados na pasta Biblioteca
da pasta do Microsoft Excel. O carregamento de um suplemento disponibiliza o recurso no
Microsoft Excel e adiciona todos os comandos associados aos menus adequados. Os programas
suplementares listados na tabela a seguir são instalados, por padrão, na pasta Biblioteca, ou em
uma de suas subpastas, na pasta do Microsoft Excel. Se você não conseguir localizar determinado
suplemento no disco rígido ou em uma unidade da rede, poderá instalá-lo. Após instalar um
suplemento, será necessário usar o comando Suplementos (menu Ferramentas) para carregá-lo no
Microsoft Excel.
A partir dessa breve explicação vamos desenvolver nossa aplicação uma Agenda simples, porem muito funcional.
As Ferramentas necessárias
Para a criação de nossa Agenda de Tarefas precisaremos de um formulário para a inclusão e
consulta das tarefas agendadas , de uma planilha que servirá para armazenar as informações e ou-
tra planilha que servirá como relatório caso se deseje imprimir as anotações do dia.
O Formulário
Crie o formulário Agenda utilizando as especificações que fazem parte da Tabela a seguir:
Objeto Propriedade Ajuste
Formulário Name frmAgenda
Caption Anote Seus Afazeres e Lembretes para o ano de 2011
TextBox1 Name BoxDia
Font Takoma 10
TextAlign 2 - Center
TextBox2 Name BoxAnotações
Font Takoma 8
TextAlign 1 - Left
EnterKeyBehavior True
MultiLine True
TextBox3 Name BoxResumo
Font Takoma 8
TextAlign 1 - Left
EnterKeyBehavior True
MultiLine True
ScroollBars 3 - FmScrollBarsBoth
CommandButton1 Name CmdSair
Caption Incluir/Alterar
CommandButton2 Name CmdImpressão
Caption Imprimir
Label1 Name Label1
Caption Dia/Mês
Label2 Name Label2
Caption Hora
Label3 Name Label3
Caption Hora
Label4 Name Label4
Caption Anotações
Label5 Name Label5
Caption Anotação
A Tabela
Crie um planilha que servirá de tabela para armazenar os dados diários de sua agenda.
Está tabela terá 367 linhas que serão os dias do ano e 25 colunas que serão as horas do dia em que serão anotados os afazeres. Como os campos da tabela são fixos 367 linhas por 24 colunas, utilizaremos as funções internas do Excel para trabalhar os dados com a mesma eficiência.
A Agenda
Crie uma planilha para que você possa ter suas informações diárias em mãos através de um formulário, onde você poderá imprimi-la e levar com você para obde você quiser. Nem sempre as informações somente virtuais são necessárias, tem ocasiões que necessitamos de um relatório para trabalharmos.
O Programa Agenda
Como funcionará o Programa Agenda:
Com o formulário ativado você deverá digitar um dia do ano de 2011 no BoxDia e automaticamente o sistema responderá fazendo uma varreadura na tabela "datas" para encontrar o dia digitado e preencherá o ComboHora com a 1ª Hora do dia, no caso 1:00, e o BoxResumo com as anotações horárias. Para digitar a tarefa ou afazer de uma determinada hora basta preencher o BoxAnotação e clicar no botão Incluir/Alterar.
Codificação do Programa Agenda
Inclua o seguinte código no procedimento UserForm_Activate( ) do formulário:
Private Sub UserForm_Activate()
Dim Cont
Me.ComboHora.Clear
For Cont = 1 To 24
Me.ComboHora.AddItem Format(Cont & ":00", "h:mm")
Next
Me.BoxDia = Format(Date, "dd/mm")
End Sub
Como uma agenda diária serve para anotações de seus afazeres em determinadas horas,
precisamos então de um objeto em que possamos selecionar determinada hora. Esse objeto em nosso aplicativo é o ComboHora.
Para se preencher um ComboBox existem duas maneiras:
1º Utilizando a propriedade RowSource do ComboBox, mencionado o intervalo de células que se deseja preencher o combo;
2º Preenchendo o ComboBox em tempo de execução, ou seja, preencher o ComboBox toda vez que o Userform for carregado.
Para se preencher um ComboBox em tempo de execução devemos utilizar a propriedade AddItem
Ex.: ComboExemplo.AddItem "Laranja"
ComboExemplo.AddItem "Banana"
No exemplo acima teremos um ComboBox com uma lista preenchida com os itens Laranja e Banana.
No nosso programa precisaremos preencher uma Combo com o intervalo de horas 1:00 e 24:00.Poderíamos preencher essa lista um a um como no exemplo anterior, mas é nesta hora que a lógica de programação toma conta. utilizaremos a instrução For... Next... , que significa percorrer um certo intervalo, e em cima deste intervalo poderemos ir preenchendo o ComboBox.
Private Sub boxdia_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Me.BoxDia = "" Then
Else
If IsDate(Me.BoxDia) Then
Me.ComboHora.ListIndex = -1
Me.BoxDia = Format(Me.BoxDia, "dd/mm")
Me.ComboHora.ListIndex = 0
Else
MsgBox "Data inválida...", vbCritical, "Minhas tarefas e lembretes.."
Cancel = True
End If
End If
End Sub
Detalhamento do código no procedimento boxdia_Exit( ) do formulário:
Como o BoxDia é a principal interface do aplicativo, é importantíssimo que mesmo seja preenchido corretamente para o perfeito funcionamento do aplicativo. Para que isso ocorra utilizamos uma função interna no Excel chamada IsDate. A função IsDate tem como objetivo checar se no objeto TextBox foi digitada uma data válida. Se sim o BoxDia é validado, senão o cursor permanecerá no TextBox até a correta digitação. Isto é feito graças ao ByVal da evento Exit. onde Cancel = true permi-
te que só se siga adiante se a informação for correta.
Outra Função utilizada é a Format, que permite deixar o TextBox do jeito que se quer. No código acima no BoxDia deve ser digitado uma data. Quando esta data for validada o a função Format transforma esta data em dia e mês já que o ano não é necessário ano pois a agenda é do ano de 2011.
No caso do BoxDia se for digitado 01/01/2011 a função Format retornará o BoxDia em 01/01.
Inclua o seguinte código no procedimento ComboHora_Click( ) do formulário:
Dê dois cliques sobre o ComboHora e o evento ComboHora_Click( ) é ativado. Dentro do evento digite o seguinte código:
Private Sub combohora_Click()
Me.PesquisarData
End Sub
Detalhamento do código no procedimento ComboHora_Click( ) do formulário:
Dentro do evento digitamos a palavra reservada "Me", que tem como função substituir o nome do formulário. Se digitarmos "FrmAgenda.PesquisarData" também está correto, e PesquisarData simplesmente também, porém o ideal é que se digite o endereço onde o código está alocado para que o sistema saiba qual código você está se referindo, pois pode ocorrer de ter dois códigos com o mesmo nome em módulos de programas diferentes, o que é permitido.
Já o termo "PesquisarData" é um código de programação que você verá abaixo. Com isso você acaba de aprender que podemos chamar um código de programação dentro de outro código, basta referenciar corretamente. Qual é a vantagem de se chamar um código dentro de outro código ?
Simples, para que um código não se torne muito longo.
Inclua o seguinte código no procedimento PesquisarData( ) dentro do módulo do formulário:
Sub PesquisarData()
Dim Célula As Excel.Range
Dim StrData, i, nLinha, Cont
i = 1
Me.BoxAnotação = ""
Me.BoxResumo = ""
For Each Célula In ThisWorkbook.Sheets("datas").Range("nDatas").Cells
StrData = Célula.Value
i = i + 1
If CDate(Me.BoxDia) = CDate(StrData) Then
nLinha = i
Me.BoxAnotação = Plan2.Cells(i, Me.ComboHora.ListIndex + 2)
For Cont = 1 To 24
Me.BoxResumo = Me.BoxResumo & Chr(10) & Plan2.Cells(1, Cont + 1) & _
":00 - " & Plan2.Cells(i, Cont + 1)
Next
Exit For
End If
Next
End Sub
Detalhamento do código PesquisarData:
Com a planilha "datas" criada devemos primeiramente saber que quando folheamos uma agenda a principal parâmetro é a data. A Data é a base de toda consulta em nossa agenda. Aqui no nosso programa também, as datas são o centro de todas as atenções, e em cima disto vamos selecionar todas as células que fazem parte das datas de nossa agenda, no nosso caso é o intervalo compreendido "A2:A367" e clicando sobre a caixa de nomes vamos renomear este intervalo para "nDatas".
Como o Código PesquisarData funciona:
O sistema irá percorrer todo intervalo nDatas que você nomeou e localizando a data que você digitar no BoxDia irá automaticamente preencher o BoxAnotação com a anotação da 1ª hora, e irá preencher o BoxResumo com todas anotações do dia em ordem de hora.
Utilizamos a instrução For Each in para percorrer todo intervalo nDatas para descobrir qual célula tem a data igual ao BoxDia.
Inclua o seguinte código no procedimento CmdIncluir_Click( ) do formulário:
Private Sub CmdIncluir_Click()
Me.Incluir_Alterar
Me.PesquisarData
End Sub
Detalhamento do código no procedimento ComboHora_Click( ) do formulário:
Como no ComboHora dentro o procedimento CndIncluir_Click( ) foi digitado o nome de outro procedimento, o Incluir_alterar. A Função deste botão é de Incluir uma nova anotação ou alterar alguma anotação existente.
Criação do procedimento incluir_Alterar:
Sub Incluir_Alterar()
Dim Célula As Excel.Range
Dim StrData, i, nLinha
i = 1
For Each Célula In ThisWorkbook.Sheets("datas").Range("nDatas").Cells
StrData = Célula.Value
i = i + 1
If CDate(Me.BoxDia) = CDate(StrData) Then
nLinha = i
Plan2.Cells(i, Me.ComboHora.ListIndex + 2) = Me.BoxAnotação
Exit For
End If
Next
End Sub
Neste procedimento utilizamos praticamente a mesma rotina do procedimento PesquisarData, pois já que a tabela é fixa (366 linhas x 24 colunas ) a única função deste procedimento é localizar um dia e alterar a anotação existente ou incluir uma anotação caso a célula esteja vazia.
Basicamente fica fácil demonstrar que com poucas linhas de comando e poucos objetos pode-se fazer um pequeno programa e muito eficiente.
Inclua o seguinte código no procedimento CmdImpressão_Click( ) do formulário:
Private Sub CmdImpressão_Click()
On Error GoTo aviso
Dim Célula As Excel.Range
Dim StrData, i, nLinha, Col
If Me.BoxDia = "" Then
MsgBox "Digite um dia para impressão", vbInformation, "Agenda"
Else
AGENDA.Range("A1") = Day(Me.BoxDia)
AGENDA.Range("B2") = UCase(Format(Me.BoxDia, "MMMM"))
AGENDA.Range("D2") = UCase(Dia_Semana(Me.BoxDia))
i = 1
For Each Célula In ThisWorkbook.Sheets("datas").Range("nDatas").Cells
StrData = Célula.Value
i = i + 1
If CDate(Me.BoxDia) = CDate(StrData) Then
nLinha = i
For Col = 1 To 24
AGENDA.Range("B" & Col + 4) = Plan2.Cells(i, Col + 1)
Next Col
Exit For
End If
Next
AGENDA.Copy
End If
Exit Sub
aviso:
If Err.Number = 18 Then
Else
MsgBox Err.Number & "-" & Err.Description
End If
End Sub
Detalhamento do código no procedimento CmdImpressão_Click( ) do formulário:
Como nos procedimentos Incluir_Alterar_Click( ) e PesquisarData utilizamos aqui a instrução For Each Next para percorrer a tabela de datas e encontrando a data digitada no BoxDia o sistema preencherá a planilha Agenda e fará uma cópia da mesma para que usuário possa vizualiza-la e se desejar até imprimir o relatório. Dentro do procedimento CmdImpressão_Click( ) incluímos uma novi-
dade: a função Dia_Semana.
Esta função examina o dia da semana (WeekDay) do BoxDia e converte para extenso.
Como Ativar um Suplemento ?
Quando se converte um arquivo ".xls" para suplemento ".xla" temos que ter algum meio de ativar o aplicativo, pois como já esclarecemos, um suplemento do Excel se torna invisível ao nossos olhos, apesar de estar ativado. Existem duas maneiras de faze-lo, ou criando um botão na barra de ferramentas ou um itém de menu na barra de menus. No aplicativo agenda vamos inserir um itém de menu para poder ativar-lo e podemos opera-lo.
Inserindo um Item de Menu
No Editor de VBA, no menu inserir escolha Módulo. Temos que criar dois códigos, um para criar um item de menu e outro para excluir este mesmo item, ou seja quando se ativa um suplemento o item de menu será criado e quando se desativa um suplemento exclui-se este item de menu.
Para se incluir um item de menu digite o seguinte procedimento no Módulo 1 que você acabou se inserir:
Sub CriarItemMenu()
Dim ctlMenuItem As CommandBarControl
Dim intCount As Integer
Dim cBut As CommandBarButton
Dim strBarName As String
Dim lngID As Long
Call ExcluirItemMenu
strBarName = QUAL_MENU
Do
Select Case intCount
Case 0
lngID = 846
Case 1
lngID = 3823
Case 2
lngID = 748
Case 3
lngID = 3
End Select
Set ctlMenuItem = Application.CommandBars(strBarName). _
FindControl(Id:=lngID, recursive:=True)
Loop Until (Not ctlMenuItem Is Nothing) Or intCount = 3
If Not ctlMenuItem Is Nothing Then
Set cBut = ctlMenuItem.Parent.Controls.Add(before:=ctlMenuItem.Index + 1, _
temporary:=True)
With cBut
.FaceId = 125
.Caption = TÍTULO_ITEM_MENU
.OnAction = ThisWorkbook.Name & MACRO_ITEM_MENU
.Tag = TAG_ITEM_MENU
End With
End If
End Sub
Para que um item de menu seja corretamente alocado em um menu é necessário que o código avalie o menu verificando se já não existe um item de menu com as mesmas características, para se evitar tal falha dentro do código CriarItemMenu ( ) inseri o código ExcluiItemMenu ( ), ou seja o sistema primeiro excluirá um item de menu chamado "Minha Agenda Pessoal" para depois inclui-lo.
Segue abaixo código do procedimento ExcluirItemMenu:
Sub ExcluirItemMenu()
Dim ctlMenu As CommandBarControl
Dim ctlMenuItem As CommandBarControl
Dim strBarName As String
strBarName = QUAL_MENU
Set ctlMenuItem = Application.CommandBars(strBarName). _
FindControl(Tag:=TAG_ITEM_MENU, recursive:=True)
If Not ctlMenuItem Is Nothing Then ctlMenuItem.Delete
End Sub
Com o código para criação do item de menu pronto, como fazer que o sistema o leia automaticamente ? simples, vamos utilizar o evento de pasta Workbook_Open( ), ou seja todos procedimentos digitados no Workbook_Open são reconhecidos toda vez que o suplemento é ativado.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Módulo1.ExcluirItemMenu
End Sub
Private Sub Workbook_Open()
Módulo1.CriarItemMenu
End Sub
Convertendo um Arquivo XLS em Suplemento(XLA)
Esta é a parte mais simples, converter um arquivo XLS em XLA. Basta ir no Menu Arquivo(F12)item de menu Salvar Como , e no DropDown Salvar Tipo Como escolha Suplemento do Microsoft Excel.
Você pode salvar seu suplemento em quanquer diretório, mas se você quizer que seu arquivo fique visivel em na caixa de dialogo padrão do office chamada "suplementos" salve seu arquivo no diretorio "Bibliote" localizado dentro o SubDiretório Office,. Microsoft Office em Arquivos de Programas.
Depois de salva seu 1ºsuplemento, basta ativar a caixa de dialogo "suplementos".
Abaixo coloco todo o codigo da nossa agenda.
Modulo 1
Public Const QUAL_MENU As String = "Worksheet Menu Bar"
Public Const TÍTULO_ITEM_MENU As String = "&Minha Agenda Pessoal"
Public Const MACRO_ITEM_MENU As String = "!ExibirFormulário"
Public Const TAG_ITEM_MENU As String = "AGENDA"
Sub CriarItemMenu()
Dim ctlMenuItem As CommandBarControl
Dim intCount As Integer
Dim cBut As CommandBarButton
Dim strBarName As String
Dim lngID As Long
Call ExcluirItemMenu
strBarName = QUAL_MENU
Do
Select Case intCount
Case 0
lngID = 846
Case 1
lngID = 3823
Case 2
lngID = 748
Case 3
lngID = 3
End Select
Set ctlMenuItem = Application.CommandBars(strBarName). _
FindControl(Id:=lngID, recursive:=True)
Loop Until (Not ctlMenuItem Is Nothing) Or intCount = 3
If Not ctlMenuItem Is Nothing Then
Set cBut = ctlMenuItem.Parent.Controls.Add(before:=ctlMenuItem.Index + 1, _
temporary:=True)
With cBut
.FaceId = 125
.Caption = TÍTULO_ITEM_MENU
.OnAction = ThisWorkbook.Name & MACRO_ITEM_MENU
.Tag = TAG_ITEM_MENU
End With
End If
End Sub
Sub ExcluirItemMenu()
Dim ctlMenu As CommandBarControl
Dim ctlMenuItem As CommandBarControl
Dim strBarName As String
strBarName = QUAL_MENU
Set ctlMenuItem = Application.CommandBars(strBarName). _
FindControl(Tag:=TAG_ITEM_MENU, recursive:=True)
If Not ctlMenuItem Is Nothing Then ctlMenuItem.Delete
End Sub
Sub ExibirFormulário()
FrmAgenda.Show
End Sub
No Formulário
Private Function Dia_Semana(nDia As Date)
If WeekDay(nDia) = 1 Then
Dia_Semana = "Domingo"
ElseIf WeekDay(nDia) = 2 Then
Dia_Semana = "Segunda"
ElseIf WeekDay(nDia) = 3 Then
Dia_Semana = "Terça"
ElseIf WeekDay(nDia) = 4 Then
Dia_Semana = "Quarta"
ElseIf WeekDay(nDia) = 5 Then
Dia_Semana = "Quinta"
ElseIf WeekDay(nDia) = 6 Then
Dia_Semana = "Sexta"
ElseIf WeekDay(nDia) = 7 Then
Dia_Semana = "Sábado"
Else
Dia_Semana = "Desconhecido"
End If
End Function
Private Sub CmdImpressão_Click()
On Error GoTo aviso
Dim Célula As Excel.Range
Dim StrData, i, nLinha, Col
If Me.BoxDia = "" Then
MsgBox "Digite um dia para impressão", vbInformation, "Agenda"
Else
AGENDA.Range("A1") = Day(Me.BoxDia)
AGENDA.Range("B2") = UCase(Format(Me.BoxDia, "MMMM"))
AGENDA.Range("D2") = UCase(Dia_Semana(Me.BoxDia))
i = 1
For Each Célula In ThisWorkbook.Sheets("datas").Range("nDatas").Cells
StrData = Célula.Value
i = i + 1
If CDate(Me.BoxDia) = CDate(StrData) Then
nLinha = i
For Col = 1 To 24
AGENDA.Range("B" & Col + 4) = Plan2.Cells(i, Col + 1)
Next Col
Exit For
End If
Next
AGENDA.Copy
End If
Exit Sub
aviso:
If Err.Number = 18 Then
Else
MsgBox Err.Number & "-" & Err.Description
End If
End Sub
Private Sub CmdIncluir_Click()
Me.Incluir_Alterar
Me.PesquisarData
End Sub
Private Sub CmdSair_Click()
End
End Sub
Private Sub combohora_Click()
Me.PesquisarData
End Sub
Private Sub boxdia_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Me.BoxDia = "" Then
Else
If IsDate(Me.BoxDia) Then
Me.ComboHora.ListIndex = -1
Me.BoxDia = Format(Me.BoxDia, "dd/mm")
Me.ComboHora.ListIndex = 0
Else
MsgBox "Data inválida...", vbCritical, "Minhas tarefas e lembretes.."
Cancel = True
End If
End If
End Sub
Private Sub UserForm_Activate()
Dim Cont
Me.ComboHora.Clear
For Cont = 1 To 24
Me.ComboHora.AddItem Format(Cont & ":00", "h:mm")
Next
Me.BoxDia = Format(Date, "dd/mm")
End Sub
Sub PesquisarData()
Dim Célula As Excel.Range
Dim StrData, i, nLinha, Cont
i = 1
Me.BoxAnotação = ""
Me.BoxResumo = ""
For Each Célula In ThisWorkbook.Sheets("datas").Range("nDatas").Cells
StrData = Célula.Value
i = i + 1
If CDate(Me.BoxDia) = CDate(StrData) Then
nLinha = i
Me.BoxAnotação = Plan2.Cells(i, Me.ComboHora.ListIndex + 2)
For Cont = 1 To 24
Me.BoxResumo = Me.BoxResumo & Chr(10) & Plan2.Cells(1, Cont + 1) & _
":00 - " & Plan2.Cells(i, Cont + 1)
Next
Exit For
End If
Next
End Sub
Sub Incluir_Alterar()
Dim Célula As Excel.Range
Dim StrData, i, nLinha
i = 1
For Each Célula In ThisWorkbook.Sheets("datas").Range("nDatas").Cells
StrData = Célula.Value
i = i + 1
If CDate(Me.BoxDia) = CDate(StrData) Then
nLinha = i
Plan2.Cells(i, Me.ComboHora.ListIndex + 2) = Me.BoxAnotação
Exit For
End If
Next
End Sub
E em Esta_Pasta_de_Trabalho
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Módulo1.ExcluirItemMenu
End Sub
Private Sub Workbook_Open()
Módulo1.CriarItemMenu
End Sub
Os suplementos são programas que adicionam comandos e recursos opcionais ao Microsoft Excel.
Antes de usar um suplemento, você precisa instalá-lo no computador e, em seguida, carregá-lo
no Microsoft Excel. Por padrão, os suplementos (arquivos *.xla) são instalados na pasta Biblioteca
da pasta do Microsoft Excel. O carregamento de um suplemento disponibiliza o recurso no
Microsoft Excel e adiciona todos os comandos associados aos menus adequados. Os programas
suplementares listados na tabela a seguir são instalados, por padrão, na pasta Biblioteca, ou em
uma de suas subpastas, na pasta do Microsoft Excel. Se você não conseguir localizar determinado
suplemento no disco rígido ou em uma unidade da rede, poderá instalá-lo. Após instalar um
suplemento, será necessário usar o comando Suplementos (menu Ferramentas) para carregá-lo no
Microsoft Excel.
A partir dessa breve explicação vamos desenvolver nossa aplicação uma Agenda simples, porem muito funcional.
As Ferramentas necessárias
Para a criação de nossa Agenda de Tarefas precisaremos de um formulário para a inclusão e
consulta das tarefas agendadas , de uma planilha que servirá para armazenar as informações e ou-
tra planilha que servirá como relatório caso se deseje imprimir as anotações do dia.
O Formulário
Crie o formulário Agenda utilizando as especificações que fazem parte da Tabela a seguir:
Objeto Propriedade Ajuste
Formulário Name frmAgenda
Caption Anote Seus Afazeres e Lembretes para o ano de 2011
TextBox1 Name BoxDia
Font Takoma 10
TextAlign 2 - Center
TextBox2 Name BoxAnotações
Font Takoma 8
TextAlign 1 - Left
EnterKeyBehavior True
MultiLine True
TextBox3 Name BoxResumo
Font Takoma 8
TextAlign 1 - Left
EnterKeyBehavior True
MultiLine True
ScroollBars 3 - FmScrollBarsBoth
CommandButton1 Name CmdSair
Caption Incluir/Alterar
CommandButton2 Name CmdImpressão
Caption Imprimir
Label1 Name Label1
Caption Dia/Mês
Label2 Name Label2
Caption Hora
Label3 Name Label3
Caption Hora
Label4 Name Label4
Caption Anotações
Label5 Name Label5
Caption Anotação
A Tabela
Crie um planilha que servirá de tabela para armazenar os dados diários de sua agenda.
Está tabela terá 367 linhas que serão os dias do ano e 25 colunas que serão as horas do dia em que serão anotados os afazeres. Como os campos da tabela são fixos 367 linhas por 24 colunas, utilizaremos as funções internas do Excel para trabalhar os dados com a mesma eficiência.
A Agenda
Crie uma planilha para que você possa ter suas informações diárias em mãos através de um formulário, onde você poderá imprimi-la e levar com você para obde você quiser. Nem sempre as informações somente virtuais são necessárias, tem ocasiões que necessitamos de um relatório para trabalharmos.
O Programa Agenda
Como funcionará o Programa Agenda:
Com o formulário ativado você deverá digitar um dia do ano de 2011 no BoxDia e automaticamente o sistema responderá fazendo uma varreadura na tabela "datas" para encontrar o dia digitado e preencherá o ComboHora com a 1ª Hora do dia, no caso 1:00, e o BoxResumo com as anotações horárias. Para digitar a tarefa ou afazer de uma determinada hora basta preencher o BoxAnotação e clicar no botão Incluir/Alterar.
Codificação do Programa Agenda
Inclua o seguinte código no procedimento UserForm_Activate( ) do formulário:
Private Sub UserForm_Activate()
Dim Cont
Me.ComboHora.Clear
For Cont = 1 To 24
Me.ComboHora.AddItem Format(Cont & ":00", "h:mm")
Next
Me.BoxDia = Format(Date, "dd/mm")
End Sub
Como uma agenda diária serve para anotações de seus afazeres em determinadas horas,
precisamos então de um objeto em que possamos selecionar determinada hora. Esse objeto em nosso aplicativo é o ComboHora.
Para se preencher um ComboBox existem duas maneiras:
1º Utilizando a propriedade RowSource do ComboBox, mencionado o intervalo de células que se deseja preencher o combo;
2º Preenchendo o ComboBox em tempo de execução, ou seja, preencher o ComboBox toda vez que o Userform for carregado.
Para se preencher um ComboBox em tempo de execução devemos utilizar a propriedade AddItem
Ex.: ComboExemplo.AddItem "Laranja"
ComboExemplo.AddItem "Banana"
No exemplo acima teremos um ComboBox com uma lista preenchida com os itens Laranja e Banana.
No nosso programa precisaremos preencher uma Combo com o intervalo de horas 1:00 e 24:00.Poderíamos preencher essa lista um a um como no exemplo anterior, mas é nesta hora que a lógica de programação toma conta. utilizaremos a instrução For... Next... , que significa percorrer um certo intervalo, e em cima deste intervalo poderemos ir preenchendo o ComboBox.
Private Sub boxdia_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Me.BoxDia = "" Then
Else
If IsDate(Me.BoxDia) Then
Me.ComboHora.ListIndex = -1
Me.BoxDia = Format(Me.BoxDia, "dd/mm")
Me.ComboHora.ListIndex = 0
Else
MsgBox "Data inválida...", vbCritical, "Minhas tarefas e lembretes.."
Cancel = True
End If
End If
End Sub
Detalhamento do código no procedimento boxdia_Exit( ) do formulário:
Como o BoxDia é a principal interface do aplicativo, é importantíssimo que mesmo seja preenchido corretamente para o perfeito funcionamento do aplicativo. Para que isso ocorra utilizamos uma função interna no Excel chamada IsDate. A função IsDate tem como objetivo checar se no objeto TextBox foi digitada uma data válida. Se sim o BoxDia é validado, senão o cursor permanecerá no TextBox até a correta digitação. Isto é feito graças ao ByVal da evento Exit. onde Cancel = true permi-
te que só se siga adiante se a informação for correta.
Outra Função utilizada é a Format, que permite deixar o TextBox do jeito que se quer. No código acima no BoxDia deve ser digitado uma data. Quando esta data for validada o a função Format transforma esta data em dia e mês já que o ano não é necessário ano pois a agenda é do ano de 2011.
No caso do BoxDia se for digitado 01/01/2011 a função Format retornará o BoxDia em 01/01.
Inclua o seguinte código no procedimento ComboHora_Click( ) do formulário:
Dê dois cliques sobre o ComboHora e o evento ComboHora_Click( ) é ativado. Dentro do evento digite o seguinte código:
Private Sub combohora_Click()
Me.PesquisarData
End Sub
Detalhamento do código no procedimento ComboHora_Click( ) do formulário:
Dentro do evento digitamos a palavra reservada "Me", que tem como função substituir o nome do formulário. Se digitarmos "FrmAgenda.PesquisarData" também está correto, e PesquisarData simplesmente também, porém o ideal é que se digite o endereço onde o código está alocado para que o sistema saiba qual código você está se referindo, pois pode ocorrer de ter dois códigos com o mesmo nome em módulos de programas diferentes, o que é permitido.
Já o termo "PesquisarData" é um código de programação que você verá abaixo. Com isso você acaba de aprender que podemos chamar um código de programação dentro de outro código, basta referenciar corretamente. Qual é a vantagem de se chamar um código dentro de outro código ?
Simples, para que um código não se torne muito longo.
Inclua o seguinte código no procedimento PesquisarData( ) dentro do módulo do formulário:
Sub PesquisarData()
Dim Célula As Excel.Range
Dim StrData, i, nLinha, Cont
i = 1
Me.BoxAnotação = ""
Me.BoxResumo = ""
For Each Célula In ThisWorkbook.Sheets("datas").Range("nDatas").Cells
StrData = Célula.Value
i = i + 1
If CDate(Me.BoxDia) = CDate(StrData) Then
nLinha = i
Me.BoxAnotação = Plan2.Cells(i, Me.ComboHora.ListIndex + 2)
For Cont = 1 To 24
Me.BoxResumo = Me.BoxResumo & Chr(10) & Plan2.Cells(1, Cont + 1) & _
":00 - " & Plan2.Cells(i, Cont + 1)
Next
Exit For
End If
Next
End Sub
Detalhamento do código PesquisarData:
Com a planilha "datas" criada devemos primeiramente saber que quando folheamos uma agenda a principal parâmetro é a data. A Data é a base de toda consulta em nossa agenda. Aqui no nosso programa também, as datas são o centro de todas as atenções, e em cima disto vamos selecionar todas as células que fazem parte das datas de nossa agenda, no nosso caso é o intervalo compreendido "A2:A367" e clicando sobre a caixa de nomes vamos renomear este intervalo para "nDatas".
Como o Código PesquisarData funciona:
O sistema irá percorrer todo intervalo nDatas que você nomeou e localizando a data que você digitar no BoxDia irá automaticamente preencher o BoxAnotação com a anotação da 1ª hora, e irá preencher o BoxResumo com todas anotações do dia em ordem de hora.
Utilizamos a instrução For Each in para percorrer todo intervalo nDatas para descobrir qual célula tem a data igual ao BoxDia.
Inclua o seguinte código no procedimento CmdIncluir_Click( ) do formulário:
Private Sub CmdIncluir_Click()
Me.Incluir_Alterar
Me.PesquisarData
End Sub
Detalhamento do código no procedimento ComboHora_Click( ) do formulário:
Como no ComboHora dentro o procedimento CndIncluir_Click( ) foi digitado o nome de outro procedimento, o Incluir_alterar. A Função deste botão é de Incluir uma nova anotação ou alterar alguma anotação existente.
Criação do procedimento incluir_Alterar:
Sub Incluir_Alterar()
Dim Célula As Excel.Range
Dim StrData, i, nLinha
i = 1
For Each Célula In ThisWorkbook.Sheets("datas").Range("nDatas").Cells
StrData = Célula.Value
i = i + 1
If CDate(Me.BoxDia) = CDate(StrData) Then
nLinha = i
Plan2.Cells(i, Me.ComboHora.ListIndex + 2) = Me.BoxAnotação
Exit For
End If
Next
End Sub
Neste procedimento utilizamos praticamente a mesma rotina do procedimento PesquisarData, pois já que a tabela é fixa (366 linhas x 24 colunas ) a única função deste procedimento é localizar um dia e alterar a anotação existente ou incluir uma anotação caso a célula esteja vazia.
Basicamente fica fácil demonstrar que com poucas linhas de comando e poucos objetos pode-se fazer um pequeno programa e muito eficiente.
Inclua o seguinte código no procedimento CmdImpressão_Click( ) do formulário:
Private Sub CmdImpressão_Click()
On Error GoTo aviso
Dim Célula As Excel.Range
Dim StrData, i, nLinha, Col
If Me.BoxDia = "" Then
MsgBox "Digite um dia para impressão", vbInformation, "Agenda"
Else
AGENDA.Range("A1") = Day(Me.BoxDia)
AGENDA.Range("B2") = UCase(Format(Me.BoxDia, "MMMM"))
AGENDA.Range("D2") = UCase(Dia_Semana(Me.BoxDia))
i = 1
For Each Célula In ThisWorkbook.Sheets("datas").Range("nDatas").Cells
StrData = Célula.Value
i = i + 1
If CDate(Me.BoxDia) = CDate(StrData) Then
nLinha = i
For Col = 1 To 24
AGENDA.Range("B" & Col + 4) = Plan2.Cells(i, Col + 1)
Next Col
Exit For
End If
Next
AGENDA.Copy
End If
Exit Sub
aviso:
If Err.Number = 18 Then
Else
MsgBox Err.Number & "-" & Err.Description
End If
End Sub
Detalhamento do código no procedimento CmdImpressão_Click( ) do formulário:
Como nos procedimentos Incluir_Alterar_Click( ) e PesquisarData utilizamos aqui a instrução For Each Next para percorrer a tabela de datas e encontrando a data digitada no BoxDia o sistema preencherá a planilha Agenda e fará uma cópia da mesma para que usuário possa vizualiza-la e se desejar até imprimir o relatório. Dentro do procedimento CmdImpressão_Click( ) incluímos uma novi-
dade: a função Dia_Semana.
Esta função examina o dia da semana (WeekDay) do BoxDia e converte para extenso.
Como Ativar um Suplemento ?
Quando se converte um arquivo ".xls" para suplemento ".xla" temos que ter algum meio de ativar o aplicativo, pois como já esclarecemos, um suplemento do Excel se torna invisível ao nossos olhos, apesar de estar ativado. Existem duas maneiras de faze-lo, ou criando um botão na barra de ferramentas ou um itém de menu na barra de menus. No aplicativo agenda vamos inserir um itém de menu para poder ativar-lo e podemos opera-lo.
Inserindo um Item de Menu
No Editor de VBA, no menu inserir escolha Módulo. Temos que criar dois códigos, um para criar um item de menu e outro para excluir este mesmo item, ou seja quando se ativa um suplemento o item de menu será criado e quando se desativa um suplemento exclui-se este item de menu.
Para se incluir um item de menu digite o seguinte procedimento no Módulo 1 que você acabou se inserir:
Sub CriarItemMenu()
Dim ctlMenuItem As CommandBarControl
Dim intCount As Integer
Dim cBut As CommandBarButton
Dim strBarName As String
Dim lngID As Long
Call ExcluirItemMenu
strBarName = QUAL_MENU
Do
Select Case intCount
Case 0
lngID = 846
Case 1
lngID = 3823
Case 2
lngID = 748
Case 3
lngID = 3
End Select
Set ctlMenuItem = Application.CommandBars(strBarName). _
FindControl(Id:=lngID, recursive:=True)
Loop Until (Not ctlMenuItem Is Nothing) Or intCount = 3
If Not ctlMenuItem Is Nothing Then
Set cBut = ctlMenuItem.Parent.Controls.Add(before:=ctlMenuItem.Index + 1, _
temporary:=True)
With cBut
.FaceId = 125
.Caption = TÍTULO_ITEM_MENU
.OnAction = ThisWorkbook.Name & MACRO_ITEM_MENU
.Tag = TAG_ITEM_MENU
End With
End If
End Sub
Para que um item de menu seja corretamente alocado em um menu é necessário que o código avalie o menu verificando se já não existe um item de menu com as mesmas características, para se evitar tal falha dentro do código CriarItemMenu ( ) inseri o código ExcluiItemMenu ( ), ou seja o sistema primeiro excluirá um item de menu chamado "Minha Agenda Pessoal" para depois inclui-lo.
Segue abaixo código do procedimento ExcluirItemMenu:
Sub ExcluirItemMenu()
Dim ctlMenu As CommandBarControl
Dim ctlMenuItem As CommandBarControl
Dim strBarName As String
strBarName = QUAL_MENU
Set ctlMenuItem = Application.CommandBars(strBarName). _
FindControl(Tag:=TAG_ITEM_MENU, recursive:=True)
If Not ctlMenuItem Is Nothing Then ctlMenuItem.Delete
End Sub
Com o código para criação do item de menu pronto, como fazer que o sistema o leia automaticamente ? simples, vamos utilizar o evento de pasta Workbook_Open( ), ou seja todos procedimentos digitados no Workbook_Open são reconhecidos toda vez que o suplemento é ativado.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Módulo1.ExcluirItemMenu
End Sub
Private Sub Workbook_Open()
Módulo1.CriarItemMenu
End Sub
Convertendo um Arquivo XLS em Suplemento(XLA)
Esta é a parte mais simples, converter um arquivo XLS em XLA. Basta ir no Menu Arquivo(F12)item de menu Salvar Como , e no DropDown Salvar Tipo Como escolha Suplemento do Microsoft Excel.
Você pode salvar seu suplemento em quanquer diretório, mas se você quizer que seu arquivo fique visivel em na caixa de dialogo padrão do office chamada "suplementos" salve seu arquivo no diretorio "Bibliote" localizado dentro o SubDiretório Office,. Microsoft Office em Arquivos de Programas.
Depois de salva seu 1ºsuplemento, basta ativar a caixa de dialogo "suplementos".
Abaixo coloco todo o codigo da nossa agenda.
Modulo 1
Public Const QUAL_MENU As String = "Worksheet Menu Bar"
Public Const TÍTULO_ITEM_MENU As String = "&Minha Agenda Pessoal"
Public Const MACRO_ITEM_MENU As String = "!ExibirFormulário"
Public Const TAG_ITEM_MENU As String = "AGENDA"
Sub CriarItemMenu()
Dim ctlMenuItem As CommandBarControl
Dim intCount As Integer
Dim cBut As CommandBarButton
Dim strBarName As String
Dim lngID As Long
Call ExcluirItemMenu
strBarName = QUAL_MENU
Do
Select Case intCount
Case 0
lngID = 846
Case 1
lngID = 3823
Case 2
lngID = 748
Case 3
lngID = 3
End Select
Set ctlMenuItem = Application.CommandBars(strBarName). _
FindControl(Id:=lngID, recursive:=True)
Loop Until (Not ctlMenuItem Is Nothing) Or intCount = 3
If Not ctlMenuItem Is Nothing Then
Set cBut = ctlMenuItem.Parent.Controls.Add(before:=ctlMenuItem.Index + 1, _
temporary:=True)
With cBut
.FaceId = 125
.Caption = TÍTULO_ITEM_MENU
.OnAction = ThisWorkbook.Name & MACRO_ITEM_MENU
.Tag = TAG_ITEM_MENU
End With
End If
End Sub
Sub ExcluirItemMenu()
Dim ctlMenu As CommandBarControl
Dim ctlMenuItem As CommandBarControl
Dim strBarName As String
strBarName = QUAL_MENU
Set ctlMenuItem = Application.CommandBars(strBarName). _
FindControl(Tag:=TAG_ITEM_MENU, recursive:=True)
If Not ctlMenuItem Is Nothing Then ctlMenuItem.Delete
End Sub
Sub ExibirFormulário()
FrmAgenda.Show
End Sub
No Formulário
Private Function Dia_Semana(nDia As Date)
If WeekDay(nDia) = 1 Then
Dia_Semana = "Domingo"
ElseIf WeekDay(nDia) = 2 Then
Dia_Semana = "Segunda"
ElseIf WeekDay(nDia) = 3 Then
Dia_Semana = "Terça"
ElseIf WeekDay(nDia) = 4 Then
Dia_Semana = "Quarta"
ElseIf WeekDay(nDia) = 5 Then
Dia_Semana = "Quinta"
ElseIf WeekDay(nDia) = 6 Then
Dia_Semana = "Sexta"
ElseIf WeekDay(nDia) = 7 Then
Dia_Semana = "Sábado"
Else
Dia_Semana = "Desconhecido"
End If
End Function
Private Sub CmdImpressão_Click()
On Error GoTo aviso
Dim Célula As Excel.Range
Dim StrData, i, nLinha, Col
If Me.BoxDia = "" Then
MsgBox "Digite um dia para impressão", vbInformation, "Agenda"
Else
AGENDA.Range("A1") = Day(Me.BoxDia)
AGENDA.Range("B2") = UCase(Format(Me.BoxDia, "MMMM"))
AGENDA.Range("D2") = UCase(Dia_Semana(Me.BoxDia))
i = 1
For Each Célula In ThisWorkbook.Sheets("datas").Range("nDatas").Cells
StrData = Célula.Value
i = i + 1
If CDate(Me.BoxDia) = CDate(StrData) Then
nLinha = i
For Col = 1 To 24
AGENDA.Range("B" & Col + 4) = Plan2.Cells(i, Col + 1)
Next Col
Exit For
End If
Next
AGENDA.Copy
End If
Exit Sub
aviso:
If Err.Number = 18 Then
Else
MsgBox Err.Number & "-" & Err.Description
End If
End Sub
Private Sub CmdIncluir_Click()
Me.Incluir_Alterar
Me.PesquisarData
End Sub
Private Sub CmdSair_Click()
End
End Sub
Private Sub combohora_Click()
Me.PesquisarData
End Sub
Private Sub boxdia_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Me.BoxDia = "" Then
Else
If IsDate(Me.BoxDia) Then
Me.ComboHora.ListIndex = -1
Me.BoxDia = Format(Me.BoxDia, "dd/mm")
Me.ComboHora.ListIndex = 0
Else
MsgBox "Data inválida...", vbCritical, "Minhas tarefas e lembretes.."
Cancel = True
End If
End If
End Sub
Private Sub UserForm_Activate()
Dim Cont
Me.ComboHora.Clear
For Cont = 1 To 24
Me.ComboHora.AddItem Format(Cont & ":00", "h:mm")
Next
Me.BoxDia = Format(Date, "dd/mm")
End Sub
Sub PesquisarData()
Dim Célula As Excel.Range
Dim StrData, i, nLinha, Cont
i = 1
Me.BoxAnotação = ""
Me.BoxResumo = ""
For Each Célula In ThisWorkbook.Sheets("datas").Range("nDatas").Cells
StrData = Célula.Value
i = i + 1
If CDate(Me.BoxDia) = CDate(StrData) Then
nLinha = i
Me.BoxAnotação = Plan2.Cells(i, Me.ComboHora.ListIndex + 2)
For Cont = 1 To 24
Me.BoxResumo = Me.BoxResumo & Chr(10) & Plan2.Cells(1, Cont + 1) & _
":00 - " & Plan2.Cells(i, Cont + 1)
Next
Exit For
End If
Next
End Sub
Sub Incluir_Alterar()
Dim Célula As Excel.Range
Dim StrData, i, nLinha
i = 1
For Each Célula In ThisWorkbook.Sheets("datas").Range("nDatas").Cells
StrData = Célula.Value
i = i + 1
If CDate(Me.BoxDia) = CDate(StrData) Then
nLinha = i
Plan2.Cells(i, Me.ComboHora.ListIndex + 2) = Me.BoxAnotação
Exit For
End If
Next
End Sub
E em Esta_Pasta_de_Trabalho
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Módulo1.ExcluirItemMenu
End Sub
Private Sub Workbook_Open()
Módulo1.CriarItemMenu
End Sub
Criando Gráficos em Excel
Com a utilização do Excel podemos criar gráficos de maneira simples e rápida a partir da seleção de dados, o Excel é capaz de gerar gráficos sem a necessidade de definir parâmetros adicionais.
Exemplo
Na coluna A colocaremos os produdos e da coluna B até a G colocaremos algumas datas sequenciais, nas linha abaixo colocaremos o tipo de produto e as quantidades.
Produtos 01/01/2011 02/01/2011 03/01/2011 04/01/2011 05/01/2011 06/01/2011
sapato 2 5 7 9 0 1
tinta 5 4 5 7 8 4
caneta 8 9 10 3 2 6
Terminado isso faremos a seleção dos dados e em Inserir - Gráficos, clicar em Colunas e escolher o tipo de gráfico, neste momento você já pode clicar em concluir e o gráfico será inserido em sua planilha.
Clicando na opção avançar você tem outras opções.
Exemplo
Na coluna A colocaremos os produdos e da coluna B até a G colocaremos algumas datas sequenciais, nas linha abaixo colocaremos o tipo de produto e as quantidades.
Produtos 01/01/2011 02/01/2011 03/01/2011 04/01/2011 05/01/2011 06/01/2011
sapato 2 5 7 9 0 1
tinta 5 4 5 7 8 4
caneta 8 9 10 3 2 6
Terminado isso faremos a seleção dos dados e em Inserir - Gráficos, clicar em Colunas e escolher o tipo de gráfico, neste momento você já pode clicar em concluir e o gráfico será inserido em sua planilha.
Clicando na opção avançar você tem outras opções.
Função PROCV
A função PROCV faz parte da categoria Procura e Referência. É utilizada quando existe a necessidade de localizar valores referentes a um determinado item de uma lista, considerando a coicidência de determinados valores ou uma faixa de incidência de valores.
PROCV(valor_procurado;matriz_tabela;núm_índice_coluna;procurar_intervalo)
Valor_procurado O valor a ser localizado na primeira coluna da matriz (matriz: usada para criar fórmulas únicas que produzem vários resultados ou que operam em um grupo de argumentos organizados em linhas e colunas. Um intervalo de matrizes compartilha uma fórmula comum; uma constante de matriz é um grupo de constantes usado como um argumento.) da tabela. Valor_procurado pode ser um valor ou uma referência. Se valor_procurado for menor do que o menor valor na primeira coluna de matriz_tabela, PROCV fornecerá o valor de erro #N/D.
Matriz_tabela Duas ou mais colunas de dados. Use uma referência a um intervalo ou nome de intervalo. Os valores na primeira coluna de matriz_tabela são aqueles procurados por valor_procurado. Esses valores podem ser texto, números ou valores lógicos. Textos em maiúsculas e minúsculas são equivalentes.
núm_índice_coluna É o número da coluna em matriz_tabela a partir do qual o valor correspondente deve ser retornado. Um núm_índice_coluna de 1 retornará o valor na primeira coluna em matriz_tabela; um núm_índice_coluna de 2 retornará o valor na segunda coluna em matriz_tabela, e assim por diante. Se núm_índice_coluna for:
Procurar_intervalo Um valor lógico que especifica se você deseja que PROCV localize uma correspondência exata ou aproximada.
Exemplo
=PROCV(B11;A1:C10;2;FALSO)
Neste exemplo colocamos em B11 o valor a ser procurado na seleção de células A1 a C10 este valor dever ser procurado na coluna B representado pelo numero 2 e caso não encontre retornará Falso.
Ai você me pergunta sempre devo colocar FALSO?
respondo Não!
existem alguns casos que podemos colocar VERDADEIRO e qual a diferença?
o VERDADEIRO da função PROCV retorna o valor mais próximo do valor especificado em ordem decrescente.
Exemplo
Vamos supor que você esteja trabalhando com datas e a partir de 24/06/2011 seja acrescido 7 dias em cada procura caso o Excel não localize a data especifica ele retornará a mais próxima.
Datas Retorno Data Especifica
24/06/2011 01/07/2011 07/07/2011
01/07/2011
08/07/2011
15/07/2011
=PROCV(C1;A1:A4;1;VERDADEIRO)
PROCV(valor_procurado;matriz_tabela;núm_índice_coluna;procurar_intervalo)
Valor_procurado O valor a ser localizado na primeira coluna da matriz (matriz: usada para criar fórmulas únicas que produzem vários resultados ou que operam em um grupo de argumentos organizados em linhas e colunas. Um intervalo de matrizes compartilha uma fórmula comum; uma constante de matriz é um grupo de constantes usado como um argumento.) da tabela. Valor_procurado pode ser um valor ou uma referência. Se valor_procurado for menor do que o menor valor na primeira coluna de matriz_tabela, PROCV fornecerá o valor de erro #N/D.
Matriz_tabela Duas ou mais colunas de dados. Use uma referência a um intervalo ou nome de intervalo. Os valores na primeira coluna de matriz_tabela são aqueles procurados por valor_procurado. Esses valores podem ser texto, números ou valores lógicos. Textos em maiúsculas e minúsculas são equivalentes.
núm_índice_coluna É o número da coluna em matriz_tabela a partir do qual o valor correspondente deve ser retornado. Um núm_índice_coluna de 1 retornará o valor na primeira coluna em matriz_tabela; um núm_índice_coluna de 2 retornará o valor na segunda coluna em matriz_tabela, e assim por diante. Se núm_índice_coluna for:
Procurar_intervalo Um valor lógico que especifica se você deseja que PROCV localize uma correspondência exata ou aproximada.
Exemplo
=PROCV(B11;A1:C10;2;FALSO)
Neste exemplo colocamos em B11 o valor a ser procurado na seleção de células A1 a C10 este valor dever ser procurado na coluna B representado pelo numero 2 e caso não encontre retornará Falso.
Ai você me pergunta sempre devo colocar FALSO?
respondo Não!
existem alguns casos que podemos colocar VERDADEIRO e qual a diferença?
o VERDADEIRO da função PROCV retorna o valor mais próximo do valor especificado em ordem decrescente.
Exemplo
Vamos supor que você esteja trabalhando com datas e a partir de 24/06/2011 seja acrescido 7 dias em cada procura caso o Excel não localize a data especifica ele retornará a mais próxima.
Datas Retorno Data Especifica
24/06/2011 01/07/2011 07/07/2011
01/07/2011
08/07/2011
15/07/2011
=PROCV(C1;A1:A4;1;VERDADEIRO)
Fixar células em fórmulas
Vamos supor que você esteja fazendo um calculo onde varias outras células referenciam a mesma, para que você não precise digitar sempre o mesmo endereço de célula o Excel nos proporciona um "atalho" para isso
Exemplo
Temos na célula A1 o percentual de 10% na célula B1 100, B2 200 e B3 300 e queremos que as células C1 até C3 referenciem a célula A1 utilizamos a tecla F4 para criar assim uma fixação na referência, então faremos na célula C1=B1*$A$1, isto significa que a célula A1 é fixa, agora é só arrastar para baixo com o mouse e pronto.
Resultado
10% 200 20
100 10
300 30
Exemplo
Temos na célula A1 o percentual de 10% na célula B1 100, B2 200 e B3 300 e queremos que as células C1 até C3 referenciem a célula A1 utilizamos a tecla F4 para criar assim uma fixação na referência, então faremos na célula C1=B1*$A$1, isto significa que a célula A1 é fixa, agora é só arrastar para baixo com o mouse e pronto.
Resultado
10% 200 20
100 10
300 30
Calcular Raiz Cúbica em Excel
Para calcularmos a raiz cúbica precisamos partir do principio dos inversos, assim como o inverso de multiplicação é a divisão o inverso da raiz é a exponenciação(^), vejamos a seguir um exemplo.
Sintaxe
=X^(1/3)
Lembrando que é necessário colocar entre parenteses o 1/3 para que o calculo efetue primeiro a divisão e após isso a exponenciação.
=64^(1/3)
resultado = 4
Sintaxe
=X^(1/3)
Lembrando que é necessário colocar entre parenteses o 1/3 para que o calculo efetue primeiro a divisão e após isso a exponenciação.
=64^(1/3)
resultado = 4
Função Raiz
Você sabe calcular raiz quadrada em Excel?
Se não sabe vou mostrar aqui como é simples, a sintaxe da função é =RAIZ(), sendo assim é fácil calcularmos a raiz quadrada de 9 não?
=RAIZ(9)
Se não sabe vou mostrar aqui como é simples, a sintaxe da função é =RAIZ(), sendo assim é fácil calcularmos a raiz quadrada de 9 não?
=RAIZ(9)
Funções Aninhadas em Excel
Muitas vezes você já deve ter se perguntado como juntar funções no Excel por exemplo =SE(E(... essas funções são chamadas de funções aninhadas.
O aninhamento de funções ocorre quando inserimos uma função com argumento de outra função, criando assim um ninho.Vejamos abaixo um exemplo completo desta função, juntando a função máximo com a função soma.
=MÁXIMO(SOMA(A1:A30);SOMA(B1:B20);SOMA(G1:G45))
Lembrando que ao abrirmos um parentese devemos fecha-lo, este exemplo verifica o valor máximo em três colunas (A,B e G).
Outro Exemplo
=SE(E(A1>=10%;A2>=200);"Correto";"Incorreto")
O Excel permite o aninhamento de até 64 funções para cada argumento.
O aninhamento de funções ocorre quando inserimos uma função com argumento de outra função, criando assim um ninho.Vejamos abaixo um exemplo completo desta função, juntando a função máximo com a função soma.
=MÁXIMO(SOMA(A1:A30);SOMA(B1:B20);SOMA(G1:G45))
Lembrando que ao abrirmos um parentese devemos fecha-lo, este exemplo verifica o valor máximo em três colunas (A,B e G).
Outro Exemplo
=SE(E(A1>=10%;A2>=200);"Correto";"Incorreto")
O Excel permite o aninhamento de até 64 funções para cada argumento.
Função Cont.Valores
O Excel possui diversas funções para contagem. Uma delas é a função CONT.VALORES, que é muito utilizada nos casos em que há necessidade de contar quantidade de itens de uma lista.
A função CONT.VALORES faz a contagem das células que não estão vazias em um intervalo independente do tipo de dado inserido na célula.
Exemplo
=CONT.VALORES(A1:A255)
Se todas as células estiverem preenchidas o valor retornado deve ser 255, caso alguma célula esteja vazia será subtraído.
A função CONT.VALORES faz a contagem das células que não estão vazias em um intervalo independente do tipo de dado inserido na célula.
Exemplo
=CONT.VALORES(A1:A255)
Se todas as células estiverem preenchidas o valor retornado deve ser 255, caso alguma célula esteja vazia será subtraído.
Função Hoje
Muitas vezes fazemos relatórios com datas e essas datas são sempre a data do dia, para isso o Excel nos fornece a função =HOJE(), a função =HOJE também pode receber variáveis como +1, -1, etc retornando assim as datas que necessitamos
Função Mínimo / Máximo e Média
Como o nome já diz estas funções servem para calcular o menor valor em um intervalo, o maior valor em um intervalo e a média dos valores selecionados.
Por ser bem simples segue abaixo exemplos de como estas fórmulas funcionam.
Mínimo
=mínimo(1;3;5;0) - retorna 0
Máximo
=máximo(1;3;5;0) - retorna 5
Média
=média(1;3;5;0) - retorna 2,2
Para determinar a separação dos valores é necessário inserir o ponto e virgula para reconhecimento pelo Excel, estes exemplos foram feitos digitando os números, porem você pode utilizar estas fórmulas utilizando intervalo de células.
=MÉDIA(A1:A5)
**Obs.: o Excel reconhece maiúscula, minuscula e até mesmo sem acento.
Por ser bem simples segue abaixo exemplos de como estas fórmulas funcionam.
Mínimo
=mínimo(1;3;5;0) - retorna 0
Máximo
=máximo(1;3;5;0) - retorna 5
Média
=média(1;3;5;0) - retorna 2,2
Para determinar a separação dos valores é necessário inserir o ponto e virgula para reconhecimento pelo Excel, estes exemplos foram feitos digitando os números, porem você pode utilizar estas fórmulas utilizando intervalo de células.
=MÉDIA(A1:A5)
**Obs.: o Excel reconhece maiúscula, minuscula e até mesmo sem acento.
Conceito de criação de fórmulas em Excel
Quando digitamos na célula um dado que não seja uma fórmula, este dado torna-se uma constante.Isto significa que ele não se altera mais.
Fórmula é um tipo de dado que resulta em um valor. A fórmula sempre se inicia com um sinal de (=) e o seu resultado pode ser alterado sem a necessidade de editar a célula.
Dados aceitos em uma fórmula
números, textos, datas, horas, matrizes e valores lógicos, referências de outras células, planilhas ou pasta de trabalho.
Valor é o resultado da fórmula.
Exemplo
Somar = 1+1
Valor após o enter = 2
Este exemplo aplica-se também para outras operações, abaixo operadores aceitos pelo Excel.
+ Realiza adição (mais).
- Realiza subtração (menos).
* Realiza multiplicação (vezes).
/ Realiza divisão (dividir).
^ Realiza exponenciação (valor elevado).
% Realiza a porcentagem (porcento).
Quando utilizamos expressões, o Excel utiliza a precedência matemática dos operadores para a solução da expressão. Sendo assim, ele calcula nesta exponenciação, multiplicação ou divisão e por ultimo soma e subtração (da esquerda para direita), também é interessante ressaltar que primeiro é calculado o que estiver entre parênteses.
Exitem também Chaves {} e Colchetes[] que explicaremos mais adiante.
Fórmula é um tipo de dado que resulta em um valor. A fórmula sempre se inicia com um sinal de (=) e o seu resultado pode ser alterado sem a necessidade de editar a célula.
Dados aceitos em uma fórmula
números, textos, datas, horas, matrizes e valores lógicos, referências de outras células, planilhas ou pasta de trabalho.
Valor é o resultado da fórmula.
Exemplo
Somar = 1+1
Valor após o enter = 2
Este exemplo aplica-se também para outras operações, abaixo operadores aceitos pelo Excel.
+ Realiza adição (mais).
- Realiza subtração (menos).
* Realiza multiplicação (vezes).
/ Realiza divisão (dividir).
^ Realiza exponenciação (valor elevado).
% Realiza a porcentagem (porcento).
Quando utilizamos expressões, o Excel utiliza a precedência matemática dos operadores para a solução da expressão. Sendo assim, ele calcula nesta exponenciação, multiplicação ou divisão e por ultimo soma e subtração (da esquerda para direita), também é interessante ressaltar que primeiro é calculado o que estiver entre parênteses.
Exitem também Chaves {} e Colchetes[] que explicaremos mais adiante.
Utilizando a ajuda do Excel
Por meio da ajuda do Excel, temos acesso a modelos, dicas e suporte aos diversos comandos.A ajuda do Excel pode ser acessada a partir do botão ajuda, localizado no canto superior direito da tela ou através da tecla de atalho F!.
Caso esteja conectado a internet quando acionamos a ajuda do Excel , este pode se conectar ao site da microsoft para incrementar as opções e os artigos da ajuda.Se não houver uma conexão com a internet, a ajuda utiliza apenas arquivos que fora instalados.
Podemos utilizar o recurso de ajuda de 2 maneiras
1-Digitando a palavra chave na caixa de Pesquisar
2-Navegando através dos tópicos de menu.
Em muitas janelas do Excel o botão de ajuda pode estar localizado ao lado do botão fechar com um sinal de (?).
Caso esteja conectado a internet quando acionamos a ajuda do Excel , este pode se conectar ao site da microsoft para incrementar as opções e os artigos da ajuda.Se não houver uma conexão com a internet, a ajuda utiliza apenas arquivos que fora instalados.
Podemos utilizar o recurso de ajuda de 2 maneiras
1-Digitando a palavra chave na caixa de Pesquisar
2-Navegando através dos tópicos de menu.
Em muitas janelas do Excel o botão de ajuda pode estar localizado ao lado do botão fechar com um sinal de (?).
pers.vsi
Sei que foge do contexto do blog mas vou deixar uma dica aqui para quem usa Visual Studio e quer instalar o Template do PERSONAL SITE STARTER KIT
Caso de esta mensagem de erro:
Installation stopped because the directory for the ProjectType value did not exist. The project type is invalid for your installation of Visual Studio.
vá em C:\Documents\Visual Studio 2008\Templates\ProjectTemplates e crie uma pasta chamada Visual Web Developer
feito isso tente instalar novamente.
Caso de esta mensagem de erro:
Installation stopped because the directory for the ProjectType value did not exist. The project type is invalid for your installation of Visual Studio.
vá em C:\Documents\Visual Studio 2008\Templates\ProjectTemplates e crie uma pasta chamada Visual Web Developer
feito isso tente instalar novamente.
Banco de dados com Excel
O primeiro passo é criar a conexão, segue abaixo.
Sub AbrindoUmaTabela()
Dim MeuBD As Database
Dim MinhaTabela As Recordset
Set MeuBD = OpenDatabase(ThisWorkbook.Path & "/" & ThisWorkbook.Name, False, False, "Excel 8.0")
Set MinhaTabela = MeuBD.OpenRecordset("$")
MsgBox MinhaTabela(0)
MeuBD.Close
End Sub
após isso feito, você pode utilizar esta conexão para para criar filtros como o Select abaixo.
Sub Gol()'nome da macro
Dim MeuBD As Database
Dim MinhaTabela As Recordset
Set MeuBD = OpenDatabase(ThisWorkbook.Path & "/" & ThisWorkbook.Name, False, False, "Excel 8.0")
Set MinhaTabela = MeuBD.OpenRecordset("SELECT numero,nome, gol FROM [jogadores$] ORDER BY gol DESC;")'fazendo select na planilha jogadores e colocando em ordem decrescente
'Plan6.Cells.ClearContents
Plan6.Range("a2").CopyFromRecordset MinhaTabela
MeuBD.Close
End Sub
Sub AbrindoUmaTabela()
Dim MeuBD As Database
Dim MinhaTabela As Recordset
Set MeuBD = OpenDatabase(ThisWorkbook.Path & "/" & ThisWorkbook.Name, False, False, "Excel 8.0")
Set MinhaTabela = MeuBD.OpenRecordset("$")
MsgBox MinhaTabela(0)
MeuBD.Close
End Sub
após isso feito, você pode utilizar esta conexão para para criar filtros como o Select abaixo.
Sub Gol()'nome da macro
Dim MeuBD As Database
Dim MinhaTabela As Recordset
Set MeuBD = OpenDatabase(ThisWorkbook.Path & "/" & ThisWorkbook.Name, False, False, "Excel 8.0")
Set MinhaTabela = MeuBD.OpenRecordset("SELECT numero,nome, gol FROM [jogadores$] ORDER BY gol DESC;")'fazendo select na planilha jogadores e colocando em ordem decrescente
'Plan6.Cells.ClearContents
Plan6.Range("a2").CopyFromRecordset MinhaTabela
MeuBD.Close
End Sub
Planilha com data de expiração
Já pensou algumas vezes passar sua planilha para um amigo, colega ou terceiros e não saber como estes irão usa-las, ou ainda pior se apropriarem de suas ideias? para isso coloco abaixo um código onde sua planilha irá expirar no momento que o usuário fechar a mesma.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim dtexp As Date
'Escolha a data que deverá expirar
dtexp = ("29/04/2011") 'inibir aqui'
If Date >= #1/11/2010# Then 'ativar esta'
If Date >= dtexp Then 'inibir aqui'
ThisWorkbook.Saved = True
'Se quiser enviar mensagem apenas retire a aspa simples da linha de baixo ou personalize
'MsgBox "Este arquivo está expirado, se auto-excluirá!"
ThisWorkbook.ChangeFileAccess xlReadOnly
Kill ThisWorkbook.FullName
End If
End If
End Sub
**Obs. não irá nem para lixeira
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim dtexp As Date
'Escolha a data que deverá expirar
dtexp = ("29/04/2011") 'inibir aqui'
If Date >= #1/11/2010# Then 'ativar esta'
If Date >= dtexp Then 'inibir aqui'
ThisWorkbook.Saved = True
'Se quiser enviar mensagem apenas retire a aspa simples da linha de baixo ou personalize
'MsgBox "Este arquivo está expirado, se auto-excluirá!"
ThisWorkbook.ChangeFileAccess xlReadOnly
Kill ThisWorkbook.FullName
End If
End If
End Sub
**Obs. não irá nem para lixeira
Funções Inglês para Portugues
Muitas vezes você já deve ter visto funções no Excel em Inglês e teve enorme dificuldade para compreender o que elas realmente fazem, então, segue abaixo uma lista com algumas delas.
Categoria Inglês Português Comentário
Banco de Dados DCOUNT BDCONTAR Conta as células que contêm números em um banco de dados
Banco de Dados DCOUNTA BDCONTARA Conta células não vazias em um banco de dados
Banco de Dados DSTDEVP BDDESVPA Calcula o desvio padrão com base na população inteira de entradas selecionadas de um banco de dados
Banco de Dados DSTDEV BDEST Estima o desvio padrão com base em uma amostra de entradas selecionadas de um banco de dados
Banco de Dados DGET BDEXTRAIR Extrai de um banco de dados um único registro que corresponde a um critério específico
Banco de Dados DMAX BDMÁX Retorna o valor máximo de entradas selecionadas de um banco de dados
Banco de Dados DAVERAGE BDMÉDIA Retorna a média de entradas selecionadas de um banco de dados
Banco de Dados DMIN BDMÍN Retorna o valor mínimo de entradas selecionadas de um banco de dados
Banco de Dados DPRODUCT BDMULTIPL Multiplica os valores em um campo específico de registros que correspondem ao critério em um banco de dados
Banco de Dados DSUM BDSOMA Adiciona os números na coluna de campos de registros do banco de dados que correspondem ao critério
Banco de Dados DVAR BDVAREST Estima a variância com base em uma amostra de entradas selecionadas de um banco de dados
Banco de Dados DVARP BDVARP Calcula a variância com base na população inteira de entradas selecionadas de um banco de dados
Banco de Dados GETPIVOTDATA INFODADOSTABELADINÂMICA Retorna os dados armazenados em uma tabela dinâmica
Data e hora NOW AGORA Retorna o número de série da data e da hora atuais
Data e hora YEAR ANO Converte um número de série em um ano
Data e hora DATE DATA Retorna o número de série de uma data específica
Data e hora DATEVALUE DATA.VALOR Converte uma data na forma de texto para um número de série
Data e hora DAY DIA Converte um número de série em um dia do mês
Data e hora WEEKDAY DIA.DA.SEMANA Converte um número de série em um dia da semana
Data e hora DAYS360 DIAS360 Calcula o número de dias entre duas datas com base em um ano de 360 dias
Data e hora EDATE EDATE Retorna o número de série da data que é o número indicado de meses antes ou depois da data inicial
Data e hora EOMONTH EOMONTH Retorna o número de série do último dia do mês antes ou depois de um número especificado de meses
Data e hora YEARFRAC FRAÇÃOANO Retorna a fração do ano que representa o número de dias entre data_inicial e data_final
Data e hora TODAY HOJE Retorna o número de série da data de hoje
Data e hora HOUR HORA Converte um número de série em uma hora
Data e hora MONTH MÊS Converte um número de série em um mês
Data e hora MINUTE MINUTO Converte um número de série em um minuto
Data e hora WORKDAY DIATRABALHO Retorna o número de dias úteis inteiros entre duas datas
Data e hora SECOND SEGUNDO Converte um número de série em um segundo
Data e hora TIME TEMPO Retorna o número de série de um horário específico
Data e hora TIMEVALUE VALOR.TEMPO Converte um horário na forma de texto para um número de série
Data e hora NETWORKDAYS DIATRABALHOTOTAL Converte um número de série em um número representando onde a semana cai numericamente em um ano
Engenharia BESSELI BESSELI Retorna a função de Bessel In(x) modificada
Engenharia BESSELJ BESSELJ Retorna a função de Bessel Jn(x)
Engenharia BESSELK BESSELK Retorna a função de Bessel Kn(x) modificada
Engenharia BESSELY BESSELY Retorna a função de Bessel Yn(x)
Engenharia BIN2DEC BIN2DEC Converte um número binário em um decimal
Engenharia BIN2HEX BIN2HEX Converte um número binário em um hexadecimal
Engenharia BIN2OCT BIN2OCT Converte um número binário em um octal
Engenharia COMPLEX COMPLEX Converte coeficientes reais e imaginários e um número complexo
Engenharia CONVERT CONVERT Converte um número de um sistema de medida para outro
Engenharia DEC2BIN DEC2BIN Converte um número decimal em um binário
Engenharia DEC2HEX DEC2HEX Converte um número decimal em um hexadecimal
Engenharia DEC2OCT DEC2OCT Converte um número decimal em um octal
Engenharia DELTA DELTA Testa se dois valores são iguais
Engenharia ERF ERF Retorna a função de erro
Engenharia ERFC ERFC Retorna a função de erro complementar
Engenharia GESTEP GESTEP Testa se um número é maior do que um valor limite
Engenharia HEX2BIN HEX2BIN Converte um número hexadecimal em um binário
Engenharia HEX2DEC HEX2DEC Converte um número hexadecimal em um decimal
Engenharia HEX2OCT HEX2OCT Converte um número hexadecimal em um octal
Engenharia IMABS IMABS Retorna o valor absoluto (módulo) de um número complexo
Engenharia IMAGINARY IMAGINARY Retorna o coeficiente imaginário de um número complexo
Engenharia IMARGUMENT IMARGUMENT Retorna o argumento theta, um ângulo expresso em radianos
Engenharia IMCONJUGATE IMCONJUGATE Retorna o conjugado complexo de um número complexo
Engenharia IMCOS IMCOS Retorna o cosseno de um número complexo
Engenharia IMDIV IMDIV Retorna o quociente de dois números complexos
Engenharia IMEXP IMEXP Retorna o exponencial de um número complexo
Engenharia IMLN IMLN Retorna o logaritmo natural de um número complexo
Engenharia IMLOG10 IMLOG10 Retorna o logaritmo de base 10 de um número complexo
Engenharia IMLOG2 IMLOG2 Retorna o logaritmo de base 2 de um número complexo
Engenharia IMPOWER IMPOWER Retorna um número complexo elevado a uma potência inteira
Engenharia IMPRODUCT IMPRODUCT Retorna o produto de dois números complexos
Engenharia IMREAL IMREAL Retorna o coeficiente real de um número complexo
Engenharia IMSIN IMSIN Retorna o seno de um número complexo
Engenharia IMSQRT IMSQRT Retorna a raiz quadrada de um número complexo
Engenharia IMSUB IMSUB Retorna a diferença entre dois números complexos
Engenharia IMSUM IMSUM Retorna a soma de números complexos
Engenharia OCT2BIN OCT2BIN Converte um número octal em um binário
Engenharia OCT2DEC OCT2DEC Converte um número octal em um decimal
Engenharia OCT2HEX OCT2HEX Converte um número octal em um hexadecimal
Estatística BETAINV BETA.ACUM.INV Retorna o inverso da função de densidade da probabilidade beta cumulativa
Estatística COUNT CONT.NÚM Calcula quantos números há na lista de argumentos
Estatística COUNTA CONT.VALORES Calcula quantos valores há na lista de argumentos
Estatística CORREL CORREL Retorna o coeficiente de correlação entre dois conjuntos de dados
Estatística COVAR COVAR Retorna a covariância, a média dos produtos dos desvios pares
Estatística GROWTH CRESCIMENTO Retorna valores ao longo de uma tendência exponencial
Estatística CRITBINOM CRIT.BINOM Retorna o menor valor para o qual a distribuição binomial cumulativa é menor ou igual a um valor padrão
Estatística KURT CURT Retorna a curtose de um conjunto de dados
Estatística AVEDEV DESV.MÉDIO Retorna a média dos desvios absolutos dos pontos de dados a partir de sua média
Estatística STDEV DESVPAD Estima o desvio padrão com base em uma amostra
Estatística STDEVA DESVPADA Estima o desvio padrão com base em uma amostra, inclusive números, texto e valores lógicos
Estatística STDEVP DESVPADP Calcula o desvio padrão com base na população total
Estatística STDEVPA DESVPADPA Calcula o desvio padrão com base na população total, inclusive números, texto e valores lógicos
Estatística DEVSQ DESVQ Retorna a soma dos quadrados dos desvios
Estatística NEGBINOMDIST DIST.BIN.NEG Retorna a distribuição binomial negativa
Estatística HYPGEOMDIST DIST.HIPERGEOM Retorna a distribuição hipergeométrica
Estatística LOGNORMDIST DIST.LOGNORMAL Retorna a distribuição lognormal cumulativa
Estatística NORMDIST DIST.NORM Retorna a distribuição cumulativa normal
Estatística NORMSDIST DIST.NORMP Retorna a distribuição cumulativa normal padrão
Estatística CHIDIST DIST.QUI Retorna a probabilidade unicaudal da distribuição qui-quadrada
Estatística BETADIST DISTBETA Retorna a função de densidade da probabilidade beta cumulativa
Estatística EXPONDIST DISTEXPON Retorna a distribuição exponencial
Estatística FDIST DISTF Retorna a distribuição de probabilidade F
Estatística GAMMADIST DISTGAMA Retorna a distribuição gama
Estatística SKEW DISTORÇÃO Retorna a distorção de uma distribuição
Estatística BINOMDIST DISTRBINOM Retorna a probabilidade de distribuição binomial do termo individual
Estatística TDIST DISTT Retorna a distribuição t de Student
Estatística STEYX EPADYX Retorna o erro padrão do valor y previsto para cada x da regressão
Estatística FISHER FISHER Retorna a transformação Fisher
Estatística FISHERINV FISHERINV Retorna o inverso da transformação Fisher
Estatística FREQUENCY FREQÜÊNCIA Retorna uma distribuição de freqüência como uma matriz vertical
Estatística SLOPE INCLINAÇÃO Retorna a inclinação da linha de regressão linear
Estatística CONFIDENCE INT.CONFIANÇA Retorna o intervalo de confiança para uma média da população
Estatística INTERCEPT INTERCEPÇÃO Retorna a intercepção da linha de regressão linear
Estatística NORMINV INV.NORM Retorna o inverso da distribuição cumulativa normal
Estatística NORMSINV INV.NORMP Retorna o inverso da distribuição cumulativa normal padrão
Estatística CHIINV INV.QUI Retorna o inverso da probabilidade unicaudal da distribuição qui-quadrada
Estatística FINV INVF Retorna o inverso da distribuição de probabilidade F
Estatística GAMMAINV INVGAMA Retorna o inverso da distribuição cumulativa gama
Estatística LOGINV INVLOG Retorna o inverso da distribuição lognormal
Estatística TINV INVT Retorna o inverso da distribuição t de Student
Estatística GAMMALN LNGAMA Retorna o logaritmo natural da função gama, G(x)
Estatística LARGE MAIOR Retorna o maior valor k-ésimo de um conjunto de dados
Estatística MAX MÁXIMO Retorna o valor máximo em uma lista de argumentos
Estatística MAXA MÁXIMOA Retorna o maior valor em uma lista de argumentos, inclusive números, texto e valores lógicos
Estatística MEDIAN MED Retorna a mediana dos números indicados
Estatística AVERAGE MÉDIA Retorna a média dos argumentos
Estatística GEOMEAN MÉDIA.GEOMÉTRICA Retorna a média geométrica
Estatística HARMEAN MÉDIA.HARMÔNICA Retorna a média harmônica
Estatística TRIMMEAN MÉDIA.INTERNA Retorna a média do interior de um conjunto de dados
Estatística AVERAGEA MÉDIAA Retorna a média dos argumentos, inclusive números, texto e valores lógicos
Estatística SMALL MENOR Retorna o menor valor k-ésimo em um conjunto de dados
Estatística MIN MÍNIMO Retorna o valor mínimo na lista de argumentos
Estatística MINA MÍNIMOA Retorna o menor valor na lista de argumentos, inclusive números, texto e valores lógicos
Estatística MODE MODO Retorna o valor mais comum em um conjunto de dados
Estatística RANK ORDEM Retorna a posição de um número em uma lista de números
Estatística PERCENTRANK ORDEM.PORCENTUAL Retorna a ordem percentual de um valor em um conjunto de dados
Estatística STANDARDIZE PADRONIZAR Retorna um valor normalizado
Estatística PEARSON PEARSON Retorna o coeficiente de correlação do momento do produto Pearson
Estatística PERMUT PERMUT Retorna o número de permutações para um dado número de objetos
Estatística POISSON POISSON Retorna a distribuição Poisson
Estatística FORECAST PREVISÃO Retorna um valor ao longo de uma linha reta
Estatística PROB PROB Retorna a probabilidade de valores em um intervalo estarem entre dois limites
Estatística LINEST PROJ.LIN Retorna os parâmetros de uma tendência linear
Estatística LOGEST PROJ.LOG Retorna os parâmetros de uma tendência exponencial
Estatística QUARTILE QUARTIL Retorna o quartil de um conjunto de dados
Estatística RSQ RQUAD Retorna o quadrado do coeficiente de correlação do momento do produto de Pearson
Estatística TREND TENDÊNCIA Retorna valores ao longo de uma tendência linear
Estatística CHITEST TEST.QUI Retorna o teste para independência
Estatística FTEST TESTEF Retorna o resultado de um teste F
Estatística TTEST TESTET Retorna a probabilidade associada ao teste t de Student
Estatística ZTEST TESTEZ Retorna o valor-P bicaudal do teste-z
Estatística VAR VAR Estima a variância com base em uma amostra
Estatística VARA VARA Estima a variância com base em uma amostra, inclusive números, texto e valores lógicos
Estatística VARP VARP Calcula a variância com base na população total
Estatística VARPA VARPA Calcula a variância com base na população total, inclusive números, texto e valores lógicos
Estatística WEIBULL WEIBULL Retorna a distribuição Weibull
Estatística PERCENTILE PERCENTIL Retorna o k-ésimo percentil de valores em um intervalo
Financeira ACCRINT ACCRINT Retorna os juros acumulados de um título que paga uma taxa periódica de juros
Financeira ACCRINTM ACCRINTM Retorna a taxa de juros acumulados de um título que paga juros no vencimento
Financeira AMORDEGRC AMORDEGRC Retorna a depreciação para cada período contábil usando o coeficiente de depreciação
Financeira AMORLINC AMORLINC Retorna a depreciação para cada período contábil
Financeira DB BD Retorna a depreciação de um ativo para um período especificado, usando o método de balanço de declínio fixo
Financeira DDB BDD Retorna a depreciação de um ativo para um período especificado usando o método de balanço de declínio duplo ou algum outro método especificado
Financeira VDB BDV Retorna a depreciação de um ativo para um período especificado ou parcial usando um método de balanço declinante
Financeira COUPDAYBS COUPDAYBS Retorna o número de dias do início do período de cupom até a data de liquidação
Financeira COUPDAYS COUPDAYS Retorna o número de dias no período de cupom que contém a data de quitação
Financeira COUPDAYSNC COUPDAYSNC Retorna o número de dias da data de quitação até a data do próximo cupom
Financeira COUPNCD COUPNCD Retorna a próxima data de cupom após a data de quitação
Financeira COUPNUM COUPNUM Retorna o número de cupons pagáveis entre as datas de quitação e vencimento
Financeira COUPPCD COUPPCD Retorna a data de cupom anterior à data de quitação
Financeira CUMIPMT CUMIPMT Retorna os juros acumulados pagos entre dois períodos
Financeira CUMPRINC CUMPRINC Retorna o capital acumulado pago sobre um empréstimo entre dois períodos
Financeira DOLLARDE DOLLARDE Converte um preço em formato de moeda, na forma fracionária, em um preço na forma decimal
Financeira DOLLARFR DOLLARFR Converte um preço, apresentado na forma decimal, em um preço apresentado na forma fracionária
Financeira SLN DPD Retorna a depreciação em linha reta de um ativo durante um período
Financeira DURATION DURAÇÃO Retorna a duração anual de um título com pagamentos de juros periódicos
Financeira EFFECT EFFECT Retorna a taxa de juros anual efetiva
Financeira FVSCHEDULE FVSCHEDULE Retorna o valor futuro de um capital inicial após a aplicação de uma série de taxas de juros compostas
Financeira INTRATE INTRATE Retorna a taxa de juros de um título totalmente investido
Financeira IPMT IPGTO Retorna o pagamento de juros para um investimento em um determinado período
Financeira MDURATION MDURATION Retorna a duração de Macauley modificada para um título com um valor de paridade equivalente a R$ 100
Financeira MIRR MTIR Calcula a taxa interna de retorno em que fluxos de caixa positivos e negativos são financiados com diferentes taxas
Financeira NOMINAL NOMINAL Retorna a taxa de juros nominal anual
Financeira NPER NPER Retorna o número de períodos de um investimento
Financeira ODDFPRICE ODDFPRICE Retorna o preço por R$ 100 de valor nominal de um título com um primeiro período indefinido
Financeira ODDFYIELD ODDFYIELD Retorna o rendimento de um título com um primeiro período indefinido
Financeira ODDLPRICE ODDLPRICE Retorna o preço por R$ 100 de valor nominal de um título com um último período de cupom indefinido
Financeira ODDLYIELD ODDLYIELD Retorna o rendimento de um título com um último período indefinido
Financeira PMT PGTO Retorna o pagamento periódico de uma anuidade
Financeira PPMT PPGTO Retorna o pagamento de capital para determinado período de investimento
Financeira PRICE PRICE Retorna a preço por R$ 100 de valor nominal de um título que paga juros periódicos
Financeira PRICEDISC PRICEDISC Retorna o preço por R$ 100 de valor nominal de um título descontado
Financeira PRICEMAT PRICEMAT Retorna o preço por R$ 100 de valor nominal de um título que paga juros no vencimento
Financeira RECEIVED RECEIVED Retorna a quantia recebida no vencimento de um título totalmente investido
Financeira SYD SDA Retorna a depreciação dos dígitos da soma dos anos de um ativo para um período especificado
Financeira RATE TAXA Retorna a taxa de juros por período de uma anuidade
Financeira TBILLEQ TBILLEQ Retorna o rendimento de um título equivalente a uma obrigação do Tesouro
Financeira TBILLPRICE TBILLPRICE Retorna o preço por R$ 100 de valor nominal de uma obrigação do Tesouro
Financeira TBILLYIELD TBILLYIELD Retorna o rendimento de uma obrigação do Tesouro
Financeira IRR TIR Retorna a taxa interna de retorno de uma série de fluxos de caixa
Financeira FV VF Retorna o valor futuro de um investimento
Financeira PV VP Retorna o valor presente de um investimento
Financeira NPV VPL Retorna o valor líquido atual de um investimento com base em uma série de fluxos de caixa periódicos e em uma taxa de desconto
Financeira XIRR XIRR Fornece a taxa interna de retorno de um programa de fluxos de caixa não necessariamente periódico
Financeira XNPV XNPV Retorna o valor presente líquido de um programa de fluxos de caixa não necessariamente periódico
Financeira YIELD YIELD Retorna o rendimento de um título que paga juros periódicos
Financeira YIELDDISC YIELDDISC Retorna o rendimento anual de um título descontado. Por exemplo, uma obrigação do Tesouro
Financeira YIELDMAT YIELDMAT Retorna o rendimento anual de um título que paga juros no vencimento
Informações CELL CÉL Retorna informações sobre formatação, localização ou conteúdo de uma célula
Informações ISNA É.NÃO.DISP Retorna VERDADEIRO se o valor for o valor de erro #N/D
Informações ISNONTEXT É.NÃO.TEXTO Retorna VERDADEIRO se o valor for diferente de texto
Informações ISBLANK ÉCÉL.VAZIA Retorna VERDADEIRO se o valor for vazio
Informações ISERR ÉERRO Retorna VERDADEIRO se o valor for um valor de erro diferente de #N/D
Informações ISERROR ÉERROS Retorna VERDADEIRO se o valor for um valor de erro
Informações ISODD ÉIMPAR Retorna VERDADEIRO se o número for ímpar
Informações ISLOGICAL ÉLÓGICO Retorna VERDADEIRO se o valor for um valor lógico
Informações ISNUMBER ÉNÚM Retorna VERDADEIRO se o valor for um número
Informações ISEVEN ÉPAR Retorna VERDADEIRO se o número for par
Informações ISREF ÉREF Retorna VERDADEIRO se o valor for uma referência
Informações ISTEXT ÉTEXTO Retorna VERDADEIRO se o valor for texto
Informações COUNTBLANK CONTAR.VAZIO Conta o número de células vazias no intervalo especificado
Informações INFO INFORMAÇÃO Retorna informações sobre o ambiente operacional atual
Informações N N Retorna o valor convertido em um número
Informações NA NÃO.DISP Retorna o valor de erro #N/D
Informações TYPE TIPO Retorna um número indicando o tipo de dados de um valor
Informações ERROR.TYPE TIPO.ERRO Retorna um número correspondente a um tipo de erro
Lógica AND E Retorna VERDADEIRO se todos os argumentos forem VERDADEIRO
Lógica OR OU Retorna VERDADEIRO se um dos argumentos for VERDADEIRO
Lógica IF SE Especifica um teste lógico a ser executado
Lógica FALSE FALSO Retorna o valor lógico FALSO
Lógica TRUE VERDADEIRO Retorna o valor lógico VERDADEIRO
Lógica NOT NÃO Inverte o valor lógico do argumento
Matemática e trigonométrica ABS ABS Retorna o valor absoluto de um número
Matemática e trigonométrica ACOS ACOS Retorna o arco cosseno de um número
Matemática e trigonométrica ACOSH ACOSH Retorna o cosseno hiperbólico inverso de um número
Matemática e trigonométrica RAND ALEATÓRIO Retorna um número aleatório entre 0 e 1
Matemática e trigonométrica ROUND ARRED Arredonda um número até uma quantidade especificada de dígitos
Matemática e trigonométrica FLOOR ARREDMULTB Arredonda um número para baixo, aproximando-o de zero
Matemática e trigonométrica ROUNDDOWN ARREDONDAR.PARA.BAIXO Arredonda um número para baixo até zero
Matemática e trigonométrica ROUNDUP ARREDONDAR.PARA.CIMA Arredonda um número para cima, afastando-o de zero
Matemática e trigonométrica ASIN ASEN Retorna o arco seno de um número
Matemática e trigonométrica ASINH ASENH Retorna o seno hiperbólico inverso de um número
Matemática e trigonométrica ATAN ATAN Retorna o arco tangente de um número
Matemática e trigonométrica ATAN2 ATAN2 Retorna o arco tangente das coordenadas x e y especificadas
Matemática e trigonométrica ATANH ATANH Retorna a tangente hiperbólica inversa de um número
Matemática e trigonométrica COMBIN COMBIN Retorna o número de combinações de um determinado número de objetos
Matemática e trigonométrica COUNTIF CONT.SE Calcula o número de células não vazias em um intervalo que correspondem ao critério especificado
Matemática e trigonométrica COS COS Retorna o cosseno de um número
Matemática e trigonométrica COSH COSH Retorna o cosseno hiperbólico de um número
Matemática e trigonométrica EXP EXP Retorna e elevado à potência de um número especificado
Matemática e trigonométrica FACTDOUBLE FACTDOUBLE Retorna o fatorial duplo de um número
Matemática e trigonométrica FACT FATORIAL Retorna o fatorial de um número
Matemática e trigonométrica GCD GCD Retorna o máximo divisor comum
Matemática e trigonométrica DEGREES GRAUS Converte radianos em graus
Matemática e trigonométrica ODD ÍMPAR Retorna o número arredondado para cima até o inteiro ímpar mais próximo
Matemática e trigonométrica INT INT Arredonda um número para baixo até o inteiro mais próximo
Matemática e trigonométrica LCM LCM Retorna o mínimo múltiplo comum
Matemática e trigonométrica LN LN Retorna o logaritmo natural de um número
Matemática e trigonométrica LOG LOG Retorna o logaritmo de um número de uma base especificada
Matemática e trigonométrica LOG10 LOG10 Retorna o logaritmo de base 10 de um número
Matemática e trigonométrica MDETERM MATRIZ.DETERM Retorna o determinante de uma matriz
Matemática e trigonométrica MINVERSE MATRIZ.INVERSO Retorna a matriz inversa de uma matriz
Matemática e trigonométrica MMULT MATRIZ.MULT Retorna o produto matricial de duas matrizes
Matemática e trigonométrica MROUND MROUND Retorna um número arredondado ao múltiplo desejado
Matemática e trigonométrica PRODUCT MULT Multiplica os argumentos
Matemática e trigonométrica MULTINOMIAL MULTINOMIAL Retorna o multinomial de um conjunto de números
Matemática e trigonométrica EVEN PAR Arredonda um número para cima até o inteiro par mais próximo
Matemática e trigonométrica PI PI Retorna o valor de Pi
Matemática e trigonométrica POWER POTÊNCIA Retorna o resultado de um número elevado a uma potência
Matemática e trigonométrica QUOTIENT QUOTIENT Retorna a parte inteira de uma divisão
Matemática e trigonométrica RADIANS RADIANOS Converte graus em radianos
Matemática e trigonométrica SQRT RAIZ Retorna uma raiz quadrada positiva
Matemática e trigonométrica RANDBETWEEN RANDBETWEEN Retorna um número aleatório entre os números especificados
Matemática e trigonométrica ROMAN ROMANO Converte um numeral arábico em romanos, como texto
Matemática e trigonométrica SIN SEM Retorna o seno de um ângulo dado
Matemática e trigonométrica SINH SENH Retorna o seno hiperbólico de um número
Matemática e trigonométrica SERIESSUM SERIESSUM Retorna a soma de uma série polinomial com base em uma fórmula
Matemática e trigonométrica SIGN SINAL Retorna o sinal de um número
Matemática e trigonométrica SUM SOMA Adiciona os argumentos
Matemática e trigonométrica SUMSQ SOMAQUAD Retorna a soma dos quadrados dos argumentos
Matemática e trigonométrica SUMPRODUCT SOMARPRODUTO Retorna a soma dos produtos de componentes correspondentes de matrizes
Matemática e trigonométrica SUMIF SOMASE Adiciona as células especificadas por um determinado critério
Matemática e trigonométrica SUMX2MY2 SOMAX2DY2 Retorna a soma da diferença dos quadrados dos valores correspondentes em duas matrizes
Matemática e trigonométrica SUMX2PY2 SOMAX2SY2 Retorna a soma da soma dos quadrados dos valores correspondentes em duas matrizes
Matemática e trigonométrica SUMXMY2 SOMAXMY2 Retorna a soma dos quadrados das diferenças dos valores correspondentes em duas matrizes
Matemática e trigonométrica SQRTPI SQRTPI Retorna a raiz quadrada de (número * Pi)
Matemática e trigonométrica SUBTOTAL SUBTOTAL Retorna um subtotal em uma lista ou em um banco de dados
Matemática e trigonométrica TAN TAN Retorna a tangente de um número
Matemática e trigonométrica TANH TANH Retorna a tangente hiperbólica de um número
Matemática e trigonométrica CEILING TETO Arredonda um número para o inteiro mais próximo ou para o múltiplo mais próximo de significância
Matemática e trigonométrica TRUNC TRUNCAR Trunca um número para um inteiro
Procura e referência AREAS ÁREAS Retorna o número de áreas em uma referência
Procura e referência COLUMN COL Retorna o número da coluna de uma referência
Procura e referência COLUMNS COLS Retorna o número de colunas em uma referência
Procura e referência MATCH CORRESP Procura valores em uma referência ou matriz
Procura e referência OFFSET DESLOC Retorna um deslocamento de referência com base em uma determinada referência
Procura e referência ADDRESS ENDEREÇO Retorna uma referência como texto para uma única célula em uma planilha
Procura e referência CHOOSE ESCOLHER Escolhe um valor a partir de uma lista de valores
Procura e referência HYPERLINK HYPERLINK Cria um atalho ou um salto que abre um documento armazenado em um servidor de rede, em uma intranet ou na Internet
Procura e referência INDEX ÍNDICE Usa um índice para escolher um valor de uma referência ou matriz
Procura e referência INDIRECT INDIRETO Retorna uma referência indicada por um valor de texto
Procura e referência ROW LIN Retorna o número da linha de uma referência
Procura e referência ROWS LINS Retorna o número de linhas em uma referência
Procura e referência LOOKUP PROC Procura valores em um vetor ou em uma matriz
Procura e referência HLOOKUP PROCH Procura na linha superior de uma matriz e retorna o valor da célula especificada
Procura e referência VLOOKUP PROCV Procura na primeira coluna de uma matriz e move ao longo da linha para retornar o valor de uma célula
Procura e referência TRANSPOSE TRANSPOR Retorna a tranposição de uma matriz
Texto TRIM ARRUMAR Remove espaços do texto
Texto CHAR CARACT Retorna o caractere especificado pelo número de código
Texto CODE CÓDIGO Retorna um código numérico para o primeiro caractere em uma seqüência de texto
Texto CONCATENATE CONCATENAR Agrupa vários itens de texto em um item de texto
Texto FIXED DEF.NÚM.DEC Formata um número como texto com um número fixo de decimais
Texto RIGHT DIREITA Retorna os caracteres mais à direita de um valor de texto
Texto LEFT ESQUERDA Retorna os caracteres mais à esquerda de um valor de texto
Texto EXACT EXATO Verifica se dois valores de texto são idênticos
Texto MID EXT.TEXTO Retorna um número específico de caracteres de uma seqüência de texto começando na posição especificada
Texto SEARCH LOCALIZAR Localiza um valor de texto dentro de outro (não diferencia maiúsculas de minúsculas)
Texto UPPER MAIÚSCULA Converte o texto em maiúsculas
Texto LOWER MINÚSCULA Converte texto para minúsculas
Texto REPLACE MUDAR Muda os caracteres dentro do texto
Texto LEN NÚM.CARACT Retorna o número de caracteres em uma seqüência de texto
Texto PROPER PHONETIC Extrai os caracteres fonéticos (furigana) de uma seqüência de texto.
Texto FIND PROCURAR Procura um valor de texto dentro de outro (diferencia maiúsculas de minúsculas)
Texto REPT REPT Repete um texto um determinado número de vezes
Texto SUBSTITUTE SUBSTITUIR Substituir um novo texto por um texto antigo em uma seqüência de texto
Texto T T Converte os argumentos em texto
Texto TEXT TEXTO Formata um número e o converte em texto
Texto CLEAN TIRAR Remove todos os caracteres do texto que não podem ser impressos
Texto VALUE VALOR Converte um argumento de texto em um número
Categoria Inglês Português Comentário
Banco de Dados DCOUNT BDCONTAR Conta as células que contêm números em um banco de dados
Banco de Dados DCOUNTA BDCONTARA Conta células não vazias em um banco de dados
Banco de Dados DSTDEVP BDDESVPA Calcula o desvio padrão com base na população inteira de entradas selecionadas de um banco de dados
Banco de Dados DSTDEV BDEST Estima o desvio padrão com base em uma amostra de entradas selecionadas de um banco de dados
Banco de Dados DGET BDEXTRAIR Extrai de um banco de dados um único registro que corresponde a um critério específico
Banco de Dados DMAX BDMÁX Retorna o valor máximo de entradas selecionadas de um banco de dados
Banco de Dados DAVERAGE BDMÉDIA Retorna a média de entradas selecionadas de um banco de dados
Banco de Dados DMIN BDMÍN Retorna o valor mínimo de entradas selecionadas de um banco de dados
Banco de Dados DPRODUCT BDMULTIPL Multiplica os valores em um campo específico de registros que correspondem ao critério em um banco de dados
Banco de Dados DSUM BDSOMA Adiciona os números na coluna de campos de registros do banco de dados que correspondem ao critério
Banco de Dados DVAR BDVAREST Estima a variância com base em uma amostra de entradas selecionadas de um banco de dados
Banco de Dados DVARP BDVARP Calcula a variância com base na população inteira de entradas selecionadas de um banco de dados
Banco de Dados GETPIVOTDATA INFODADOSTABELADINÂMICA Retorna os dados armazenados em uma tabela dinâmica
Data e hora NOW AGORA Retorna o número de série da data e da hora atuais
Data e hora YEAR ANO Converte um número de série em um ano
Data e hora DATE DATA Retorna o número de série de uma data específica
Data e hora DATEVALUE DATA.VALOR Converte uma data na forma de texto para um número de série
Data e hora DAY DIA Converte um número de série em um dia do mês
Data e hora WEEKDAY DIA.DA.SEMANA Converte um número de série em um dia da semana
Data e hora DAYS360 DIAS360 Calcula o número de dias entre duas datas com base em um ano de 360 dias
Data e hora EDATE EDATE Retorna o número de série da data que é o número indicado de meses antes ou depois da data inicial
Data e hora EOMONTH EOMONTH Retorna o número de série do último dia do mês antes ou depois de um número especificado de meses
Data e hora YEARFRAC FRAÇÃOANO Retorna a fração do ano que representa o número de dias entre data_inicial e data_final
Data e hora TODAY HOJE Retorna o número de série da data de hoje
Data e hora HOUR HORA Converte um número de série em uma hora
Data e hora MONTH MÊS Converte um número de série em um mês
Data e hora MINUTE MINUTO Converte um número de série em um minuto
Data e hora WORKDAY DIATRABALHO Retorna o número de dias úteis inteiros entre duas datas
Data e hora SECOND SEGUNDO Converte um número de série em um segundo
Data e hora TIME TEMPO Retorna o número de série de um horário específico
Data e hora TIMEVALUE VALOR.TEMPO Converte um horário na forma de texto para um número de série
Data e hora NETWORKDAYS DIATRABALHOTOTAL Converte um número de série em um número representando onde a semana cai numericamente em um ano
Engenharia BESSELI BESSELI Retorna a função de Bessel In(x) modificada
Engenharia BESSELJ BESSELJ Retorna a função de Bessel Jn(x)
Engenharia BESSELK BESSELK Retorna a função de Bessel Kn(x) modificada
Engenharia BESSELY BESSELY Retorna a função de Bessel Yn(x)
Engenharia BIN2DEC BIN2DEC Converte um número binário em um decimal
Engenharia BIN2HEX BIN2HEX Converte um número binário em um hexadecimal
Engenharia BIN2OCT BIN2OCT Converte um número binário em um octal
Engenharia COMPLEX COMPLEX Converte coeficientes reais e imaginários e um número complexo
Engenharia CONVERT CONVERT Converte um número de um sistema de medida para outro
Engenharia DEC2BIN DEC2BIN Converte um número decimal em um binário
Engenharia DEC2HEX DEC2HEX Converte um número decimal em um hexadecimal
Engenharia DEC2OCT DEC2OCT Converte um número decimal em um octal
Engenharia DELTA DELTA Testa se dois valores são iguais
Engenharia ERF ERF Retorna a função de erro
Engenharia ERFC ERFC Retorna a função de erro complementar
Engenharia GESTEP GESTEP Testa se um número é maior do que um valor limite
Engenharia HEX2BIN HEX2BIN Converte um número hexadecimal em um binário
Engenharia HEX2DEC HEX2DEC Converte um número hexadecimal em um decimal
Engenharia HEX2OCT HEX2OCT Converte um número hexadecimal em um octal
Engenharia IMABS IMABS Retorna o valor absoluto (módulo) de um número complexo
Engenharia IMAGINARY IMAGINARY Retorna o coeficiente imaginário de um número complexo
Engenharia IMARGUMENT IMARGUMENT Retorna o argumento theta, um ângulo expresso em radianos
Engenharia IMCONJUGATE IMCONJUGATE Retorna o conjugado complexo de um número complexo
Engenharia IMCOS IMCOS Retorna o cosseno de um número complexo
Engenharia IMDIV IMDIV Retorna o quociente de dois números complexos
Engenharia IMEXP IMEXP Retorna o exponencial de um número complexo
Engenharia IMLN IMLN Retorna o logaritmo natural de um número complexo
Engenharia IMLOG10 IMLOG10 Retorna o logaritmo de base 10 de um número complexo
Engenharia IMLOG2 IMLOG2 Retorna o logaritmo de base 2 de um número complexo
Engenharia IMPOWER IMPOWER Retorna um número complexo elevado a uma potência inteira
Engenharia IMPRODUCT IMPRODUCT Retorna o produto de dois números complexos
Engenharia IMREAL IMREAL Retorna o coeficiente real de um número complexo
Engenharia IMSIN IMSIN Retorna o seno de um número complexo
Engenharia IMSQRT IMSQRT Retorna a raiz quadrada de um número complexo
Engenharia IMSUB IMSUB Retorna a diferença entre dois números complexos
Engenharia IMSUM IMSUM Retorna a soma de números complexos
Engenharia OCT2BIN OCT2BIN Converte um número octal em um binário
Engenharia OCT2DEC OCT2DEC Converte um número octal em um decimal
Engenharia OCT2HEX OCT2HEX Converte um número octal em um hexadecimal
Estatística BETAINV BETA.ACUM.INV Retorna o inverso da função de densidade da probabilidade beta cumulativa
Estatística COUNT CONT.NÚM Calcula quantos números há na lista de argumentos
Estatística COUNTA CONT.VALORES Calcula quantos valores há na lista de argumentos
Estatística CORREL CORREL Retorna o coeficiente de correlação entre dois conjuntos de dados
Estatística COVAR COVAR Retorna a covariância, a média dos produtos dos desvios pares
Estatística GROWTH CRESCIMENTO Retorna valores ao longo de uma tendência exponencial
Estatística CRITBINOM CRIT.BINOM Retorna o menor valor para o qual a distribuição binomial cumulativa é menor ou igual a um valor padrão
Estatística KURT CURT Retorna a curtose de um conjunto de dados
Estatística AVEDEV DESV.MÉDIO Retorna a média dos desvios absolutos dos pontos de dados a partir de sua média
Estatística STDEV DESVPAD Estima o desvio padrão com base em uma amostra
Estatística STDEVA DESVPADA Estima o desvio padrão com base em uma amostra, inclusive números, texto e valores lógicos
Estatística STDEVP DESVPADP Calcula o desvio padrão com base na população total
Estatística STDEVPA DESVPADPA Calcula o desvio padrão com base na população total, inclusive números, texto e valores lógicos
Estatística DEVSQ DESVQ Retorna a soma dos quadrados dos desvios
Estatística NEGBINOMDIST DIST.BIN.NEG Retorna a distribuição binomial negativa
Estatística HYPGEOMDIST DIST.HIPERGEOM Retorna a distribuição hipergeométrica
Estatística LOGNORMDIST DIST.LOGNORMAL Retorna a distribuição lognormal cumulativa
Estatística NORMDIST DIST.NORM Retorna a distribuição cumulativa normal
Estatística NORMSDIST DIST.NORMP Retorna a distribuição cumulativa normal padrão
Estatística CHIDIST DIST.QUI Retorna a probabilidade unicaudal da distribuição qui-quadrada
Estatística BETADIST DISTBETA Retorna a função de densidade da probabilidade beta cumulativa
Estatística EXPONDIST DISTEXPON Retorna a distribuição exponencial
Estatística FDIST DISTF Retorna a distribuição de probabilidade F
Estatística GAMMADIST DISTGAMA Retorna a distribuição gama
Estatística SKEW DISTORÇÃO Retorna a distorção de uma distribuição
Estatística BINOMDIST DISTRBINOM Retorna a probabilidade de distribuição binomial do termo individual
Estatística TDIST DISTT Retorna a distribuição t de Student
Estatística STEYX EPADYX Retorna o erro padrão do valor y previsto para cada x da regressão
Estatística FISHER FISHER Retorna a transformação Fisher
Estatística FISHERINV FISHERINV Retorna o inverso da transformação Fisher
Estatística FREQUENCY FREQÜÊNCIA Retorna uma distribuição de freqüência como uma matriz vertical
Estatística SLOPE INCLINAÇÃO Retorna a inclinação da linha de regressão linear
Estatística CONFIDENCE INT.CONFIANÇA Retorna o intervalo de confiança para uma média da população
Estatística INTERCEPT INTERCEPÇÃO Retorna a intercepção da linha de regressão linear
Estatística NORMINV INV.NORM Retorna o inverso da distribuição cumulativa normal
Estatística NORMSINV INV.NORMP Retorna o inverso da distribuição cumulativa normal padrão
Estatística CHIINV INV.QUI Retorna o inverso da probabilidade unicaudal da distribuição qui-quadrada
Estatística FINV INVF Retorna o inverso da distribuição de probabilidade F
Estatística GAMMAINV INVGAMA Retorna o inverso da distribuição cumulativa gama
Estatística LOGINV INVLOG Retorna o inverso da distribuição lognormal
Estatística TINV INVT Retorna o inverso da distribuição t de Student
Estatística GAMMALN LNGAMA Retorna o logaritmo natural da função gama, G(x)
Estatística LARGE MAIOR Retorna o maior valor k-ésimo de um conjunto de dados
Estatística MAX MÁXIMO Retorna o valor máximo em uma lista de argumentos
Estatística MAXA MÁXIMOA Retorna o maior valor em uma lista de argumentos, inclusive números, texto e valores lógicos
Estatística MEDIAN MED Retorna a mediana dos números indicados
Estatística AVERAGE MÉDIA Retorna a média dos argumentos
Estatística GEOMEAN MÉDIA.GEOMÉTRICA Retorna a média geométrica
Estatística HARMEAN MÉDIA.HARMÔNICA Retorna a média harmônica
Estatística TRIMMEAN MÉDIA.INTERNA Retorna a média do interior de um conjunto de dados
Estatística AVERAGEA MÉDIAA Retorna a média dos argumentos, inclusive números, texto e valores lógicos
Estatística SMALL MENOR Retorna o menor valor k-ésimo em um conjunto de dados
Estatística MIN MÍNIMO Retorna o valor mínimo na lista de argumentos
Estatística MINA MÍNIMOA Retorna o menor valor na lista de argumentos, inclusive números, texto e valores lógicos
Estatística MODE MODO Retorna o valor mais comum em um conjunto de dados
Estatística RANK ORDEM Retorna a posição de um número em uma lista de números
Estatística PERCENTRANK ORDEM.PORCENTUAL Retorna a ordem percentual de um valor em um conjunto de dados
Estatística STANDARDIZE PADRONIZAR Retorna um valor normalizado
Estatística PEARSON PEARSON Retorna o coeficiente de correlação do momento do produto Pearson
Estatística PERMUT PERMUT Retorna o número de permutações para um dado número de objetos
Estatística POISSON POISSON Retorna a distribuição Poisson
Estatística FORECAST PREVISÃO Retorna um valor ao longo de uma linha reta
Estatística PROB PROB Retorna a probabilidade de valores em um intervalo estarem entre dois limites
Estatística LINEST PROJ.LIN Retorna os parâmetros de uma tendência linear
Estatística LOGEST PROJ.LOG Retorna os parâmetros de uma tendência exponencial
Estatística QUARTILE QUARTIL Retorna o quartil de um conjunto de dados
Estatística RSQ RQUAD Retorna o quadrado do coeficiente de correlação do momento do produto de Pearson
Estatística TREND TENDÊNCIA Retorna valores ao longo de uma tendência linear
Estatística CHITEST TEST.QUI Retorna o teste para independência
Estatística FTEST TESTEF Retorna o resultado de um teste F
Estatística TTEST TESTET Retorna a probabilidade associada ao teste t de Student
Estatística ZTEST TESTEZ Retorna o valor-P bicaudal do teste-z
Estatística VAR VAR Estima a variância com base em uma amostra
Estatística VARA VARA Estima a variância com base em uma amostra, inclusive números, texto e valores lógicos
Estatística VARP VARP Calcula a variância com base na população total
Estatística VARPA VARPA Calcula a variância com base na população total, inclusive números, texto e valores lógicos
Estatística WEIBULL WEIBULL Retorna a distribuição Weibull
Estatística PERCENTILE PERCENTIL Retorna o k-ésimo percentil de valores em um intervalo
Financeira ACCRINT ACCRINT Retorna os juros acumulados de um título que paga uma taxa periódica de juros
Financeira ACCRINTM ACCRINTM Retorna a taxa de juros acumulados de um título que paga juros no vencimento
Financeira AMORDEGRC AMORDEGRC Retorna a depreciação para cada período contábil usando o coeficiente de depreciação
Financeira AMORLINC AMORLINC Retorna a depreciação para cada período contábil
Financeira DB BD Retorna a depreciação de um ativo para um período especificado, usando o método de balanço de declínio fixo
Financeira DDB BDD Retorna a depreciação de um ativo para um período especificado usando o método de balanço de declínio duplo ou algum outro método especificado
Financeira VDB BDV Retorna a depreciação de um ativo para um período especificado ou parcial usando um método de balanço declinante
Financeira COUPDAYBS COUPDAYBS Retorna o número de dias do início do período de cupom até a data de liquidação
Financeira COUPDAYS COUPDAYS Retorna o número de dias no período de cupom que contém a data de quitação
Financeira COUPDAYSNC COUPDAYSNC Retorna o número de dias da data de quitação até a data do próximo cupom
Financeira COUPNCD COUPNCD Retorna a próxima data de cupom após a data de quitação
Financeira COUPNUM COUPNUM Retorna o número de cupons pagáveis entre as datas de quitação e vencimento
Financeira COUPPCD COUPPCD Retorna a data de cupom anterior à data de quitação
Financeira CUMIPMT CUMIPMT Retorna os juros acumulados pagos entre dois períodos
Financeira CUMPRINC CUMPRINC Retorna o capital acumulado pago sobre um empréstimo entre dois períodos
Financeira DOLLARDE DOLLARDE Converte um preço em formato de moeda, na forma fracionária, em um preço na forma decimal
Financeira DOLLARFR DOLLARFR Converte um preço, apresentado na forma decimal, em um preço apresentado na forma fracionária
Financeira SLN DPD Retorna a depreciação em linha reta de um ativo durante um período
Financeira DURATION DURAÇÃO Retorna a duração anual de um título com pagamentos de juros periódicos
Financeira EFFECT EFFECT Retorna a taxa de juros anual efetiva
Financeira FVSCHEDULE FVSCHEDULE Retorna o valor futuro de um capital inicial após a aplicação de uma série de taxas de juros compostas
Financeira INTRATE INTRATE Retorna a taxa de juros de um título totalmente investido
Financeira IPMT IPGTO Retorna o pagamento de juros para um investimento em um determinado período
Financeira MDURATION MDURATION Retorna a duração de Macauley modificada para um título com um valor de paridade equivalente a R$ 100
Financeira MIRR MTIR Calcula a taxa interna de retorno em que fluxos de caixa positivos e negativos são financiados com diferentes taxas
Financeira NOMINAL NOMINAL Retorna a taxa de juros nominal anual
Financeira NPER NPER Retorna o número de períodos de um investimento
Financeira ODDFPRICE ODDFPRICE Retorna o preço por R$ 100 de valor nominal de um título com um primeiro período indefinido
Financeira ODDFYIELD ODDFYIELD Retorna o rendimento de um título com um primeiro período indefinido
Financeira ODDLPRICE ODDLPRICE Retorna o preço por R$ 100 de valor nominal de um título com um último período de cupom indefinido
Financeira ODDLYIELD ODDLYIELD Retorna o rendimento de um título com um último período indefinido
Financeira PMT PGTO Retorna o pagamento periódico de uma anuidade
Financeira PPMT PPGTO Retorna o pagamento de capital para determinado período de investimento
Financeira PRICE PRICE Retorna a preço por R$ 100 de valor nominal de um título que paga juros periódicos
Financeira PRICEDISC PRICEDISC Retorna o preço por R$ 100 de valor nominal de um título descontado
Financeira PRICEMAT PRICEMAT Retorna o preço por R$ 100 de valor nominal de um título que paga juros no vencimento
Financeira RECEIVED RECEIVED Retorna a quantia recebida no vencimento de um título totalmente investido
Financeira SYD SDA Retorna a depreciação dos dígitos da soma dos anos de um ativo para um período especificado
Financeira RATE TAXA Retorna a taxa de juros por período de uma anuidade
Financeira TBILLEQ TBILLEQ Retorna o rendimento de um título equivalente a uma obrigação do Tesouro
Financeira TBILLPRICE TBILLPRICE Retorna o preço por R$ 100 de valor nominal de uma obrigação do Tesouro
Financeira TBILLYIELD TBILLYIELD Retorna o rendimento de uma obrigação do Tesouro
Financeira IRR TIR Retorna a taxa interna de retorno de uma série de fluxos de caixa
Financeira FV VF Retorna o valor futuro de um investimento
Financeira PV VP Retorna o valor presente de um investimento
Financeira NPV VPL Retorna o valor líquido atual de um investimento com base em uma série de fluxos de caixa periódicos e em uma taxa de desconto
Financeira XIRR XIRR Fornece a taxa interna de retorno de um programa de fluxos de caixa não necessariamente periódico
Financeira XNPV XNPV Retorna o valor presente líquido de um programa de fluxos de caixa não necessariamente periódico
Financeira YIELD YIELD Retorna o rendimento de um título que paga juros periódicos
Financeira YIELDDISC YIELDDISC Retorna o rendimento anual de um título descontado. Por exemplo, uma obrigação do Tesouro
Financeira YIELDMAT YIELDMAT Retorna o rendimento anual de um título que paga juros no vencimento
Informações CELL CÉL Retorna informações sobre formatação, localização ou conteúdo de uma célula
Informações ISNA É.NÃO.DISP Retorna VERDADEIRO se o valor for o valor de erro #N/D
Informações ISNONTEXT É.NÃO.TEXTO Retorna VERDADEIRO se o valor for diferente de texto
Informações ISBLANK ÉCÉL.VAZIA Retorna VERDADEIRO se o valor for vazio
Informações ISERR ÉERRO Retorna VERDADEIRO se o valor for um valor de erro diferente de #N/D
Informações ISERROR ÉERROS Retorna VERDADEIRO se o valor for um valor de erro
Informações ISODD ÉIMPAR Retorna VERDADEIRO se o número for ímpar
Informações ISLOGICAL ÉLÓGICO Retorna VERDADEIRO se o valor for um valor lógico
Informações ISNUMBER ÉNÚM Retorna VERDADEIRO se o valor for um número
Informações ISEVEN ÉPAR Retorna VERDADEIRO se o número for par
Informações ISREF ÉREF Retorna VERDADEIRO se o valor for uma referência
Informações ISTEXT ÉTEXTO Retorna VERDADEIRO se o valor for texto
Informações COUNTBLANK CONTAR.VAZIO Conta o número de células vazias no intervalo especificado
Informações INFO INFORMAÇÃO Retorna informações sobre o ambiente operacional atual
Informações N N Retorna o valor convertido em um número
Informações NA NÃO.DISP Retorna o valor de erro #N/D
Informações TYPE TIPO Retorna um número indicando o tipo de dados de um valor
Informações ERROR.TYPE TIPO.ERRO Retorna um número correspondente a um tipo de erro
Lógica AND E Retorna VERDADEIRO se todos os argumentos forem VERDADEIRO
Lógica OR OU Retorna VERDADEIRO se um dos argumentos for VERDADEIRO
Lógica IF SE Especifica um teste lógico a ser executado
Lógica FALSE FALSO Retorna o valor lógico FALSO
Lógica TRUE VERDADEIRO Retorna o valor lógico VERDADEIRO
Lógica NOT NÃO Inverte o valor lógico do argumento
Matemática e trigonométrica ABS ABS Retorna o valor absoluto de um número
Matemática e trigonométrica ACOS ACOS Retorna o arco cosseno de um número
Matemática e trigonométrica ACOSH ACOSH Retorna o cosseno hiperbólico inverso de um número
Matemática e trigonométrica RAND ALEATÓRIO Retorna um número aleatório entre 0 e 1
Matemática e trigonométrica ROUND ARRED Arredonda um número até uma quantidade especificada de dígitos
Matemática e trigonométrica FLOOR ARREDMULTB Arredonda um número para baixo, aproximando-o de zero
Matemática e trigonométrica ROUNDDOWN ARREDONDAR.PARA.BAIXO Arredonda um número para baixo até zero
Matemática e trigonométrica ROUNDUP ARREDONDAR.PARA.CIMA Arredonda um número para cima, afastando-o de zero
Matemática e trigonométrica ASIN ASEN Retorna o arco seno de um número
Matemática e trigonométrica ASINH ASENH Retorna o seno hiperbólico inverso de um número
Matemática e trigonométrica ATAN ATAN Retorna o arco tangente de um número
Matemática e trigonométrica ATAN2 ATAN2 Retorna o arco tangente das coordenadas x e y especificadas
Matemática e trigonométrica ATANH ATANH Retorna a tangente hiperbólica inversa de um número
Matemática e trigonométrica COMBIN COMBIN Retorna o número de combinações de um determinado número de objetos
Matemática e trigonométrica COUNTIF CONT.SE Calcula o número de células não vazias em um intervalo que correspondem ao critério especificado
Matemática e trigonométrica COS COS Retorna o cosseno de um número
Matemática e trigonométrica COSH COSH Retorna o cosseno hiperbólico de um número
Matemática e trigonométrica EXP EXP Retorna e elevado à potência de um número especificado
Matemática e trigonométrica FACTDOUBLE FACTDOUBLE Retorna o fatorial duplo de um número
Matemática e trigonométrica FACT FATORIAL Retorna o fatorial de um número
Matemática e trigonométrica GCD GCD Retorna o máximo divisor comum
Matemática e trigonométrica DEGREES GRAUS Converte radianos em graus
Matemática e trigonométrica ODD ÍMPAR Retorna o número arredondado para cima até o inteiro ímpar mais próximo
Matemática e trigonométrica INT INT Arredonda um número para baixo até o inteiro mais próximo
Matemática e trigonométrica LCM LCM Retorna o mínimo múltiplo comum
Matemática e trigonométrica LN LN Retorna o logaritmo natural de um número
Matemática e trigonométrica LOG LOG Retorna o logaritmo de um número de uma base especificada
Matemática e trigonométrica LOG10 LOG10 Retorna o logaritmo de base 10 de um número
Matemática e trigonométrica MDETERM MATRIZ.DETERM Retorna o determinante de uma matriz
Matemática e trigonométrica MINVERSE MATRIZ.INVERSO Retorna a matriz inversa de uma matriz
Matemática e trigonométrica MMULT MATRIZ.MULT Retorna o produto matricial de duas matrizes
Matemática e trigonométrica MROUND MROUND Retorna um número arredondado ao múltiplo desejado
Matemática e trigonométrica PRODUCT MULT Multiplica os argumentos
Matemática e trigonométrica MULTINOMIAL MULTINOMIAL Retorna o multinomial de um conjunto de números
Matemática e trigonométrica EVEN PAR Arredonda um número para cima até o inteiro par mais próximo
Matemática e trigonométrica PI PI Retorna o valor de Pi
Matemática e trigonométrica POWER POTÊNCIA Retorna o resultado de um número elevado a uma potência
Matemática e trigonométrica QUOTIENT QUOTIENT Retorna a parte inteira de uma divisão
Matemática e trigonométrica RADIANS RADIANOS Converte graus em radianos
Matemática e trigonométrica SQRT RAIZ Retorna uma raiz quadrada positiva
Matemática e trigonométrica RANDBETWEEN RANDBETWEEN Retorna um número aleatório entre os números especificados
Matemática e trigonométrica ROMAN ROMANO Converte um numeral arábico em romanos, como texto
Matemática e trigonométrica SIN SEM Retorna o seno de um ângulo dado
Matemática e trigonométrica SINH SENH Retorna o seno hiperbólico de um número
Matemática e trigonométrica SERIESSUM SERIESSUM Retorna a soma de uma série polinomial com base em uma fórmula
Matemática e trigonométrica SIGN SINAL Retorna o sinal de um número
Matemática e trigonométrica SUM SOMA Adiciona os argumentos
Matemática e trigonométrica SUMSQ SOMAQUAD Retorna a soma dos quadrados dos argumentos
Matemática e trigonométrica SUMPRODUCT SOMARPRODUTO Retorna a soma dos produtos de componentes correspondentes de matrizes
Matemática e trigonométrica SUMIF SOMASE Adiciona as células especificadas por um determinado critério
Matemática e trigonométrica SUMX2MY2 SOMAX2DY2 Retorna a soma da diferença dos quadrados dos valores correspondentes em duas matrizes
Matemática e trigonométrica SUMX2PY2 SOMAX2SY2 Retorna a soma da soma dos quadrados dos valores correspondentes em duas matrizes
Matemática e trigonométrica SUMXMY2 SOMAXMY2 Retorna a soma dos quadrados das diferenças dos valores correspondentes em duas matrizes
Matemática e trigonométrica SQRTPI SQRTPI Retorna a raiz quadrada de (número * Pi)
Matemática e trigonométrica SUBTOTAL SUBTOTAL Retorna um subtotal em uma lista ou em um banco de dados
Matemática e trigonométrica TAN TAN Retorna a tangente de um número
Matemática e trigonométrica TANH TANH Retorna a tangente hiperbólica de um número
Matemática e trigonométrica CEILING TETO Arredonda um número para o inteiro mais próximo ou para o múltiplo mais próximo de significância
Matemática e trigonométrica TRUNC TRUNCAR Trunca um número para um inteiro
Procura e referência AREAS ÁREAS Retorna o número de áreas em uma referência
Procura e referência COLUMN COL Retorna o número da coluna de uma referência
Procura e referência COLUMNS COLS Retorna o número de colunas em uma referência
Procura e referência MATCH CORRESP Procura valores em uma referência ou matriz
Procura e referência OFFSET DESLOC Retorna um deslocamento de referência com base em uma determinada referência
Procura e referência ADDRESS ENDEREÇO Retorna uma referência como texto para uma única célula em uma planilha
Procura e referência CHOOSE ESCOLHER Escolhe um valor a partir de uma lista de valores
Procura e referência HYPERLINK HYPERLINK Cria um atalho ou um salto que abre um documento armazenado em um servidor de rede, em uma intranet ou na Internet
Procura e referência INDEX ÍNDICE Usa um índice para escolher um valor de uma referência ou matriz
Procura e referência INDIRECT INDIRETO Retorna uma referência indicada por um valor de texto
Procura e referência ROW LIN Retorna o número da linha de uma referência
Procura e referência ROWS LINS Retorna o número de linhas em uma referência
Procura e referência LOOKUP PROC Procura valores em um vetor ou em uma matriz
Procura e referência HLOOKUP PROCH Procura na linha superior de uma matriz e retorna o valor da célula especificada
Procura e referência VLOOKUP PROCV Procura na primeira coluna de uma matriz e move ao longo da linha para retornar o valor de uma célula
Procura e referência TRANSPOSE TRANSPOR Retorna a tranposição de uma matriz
Texto TRIM ARRUMAR Remove espaços do texto
Texto CHAR CARACT Retorna o caractere especificado pelo número de código
Texto CODE CÓDIGO Retorna um código numérico para o primeiro caractere em uma seqüência de texto
Texto CONCATENATE CONCATENAR Agrupa vários itens de texto em um item de texto
Texto FIXED DEF.NÚM.DEC Formata um número como texto com um número fixo de decimais
Texto RIGHT DIREITA Retorna os caracteres mais à direita de um valor de texto
Texto LEFT ESQUERDA Retorna os caracteres mais à esquerda de um valor de texto
Texto EXACT EXATO Verifica se dois valores de texto são idênticos
Texto MID EXT.TEXTO Retorna um número específico de caracteres de uma seqüência de texto começando na posição especificada
Texto SEARCH LOCALIZAR Localiza um valor de texto dentro de outro (não diferencia maiúsculas de minúsculas)
Texto UPPER MAIÚSCULA Converte o texto em maiúsculas
Texto LOWER MINÚSCULA Converte texto para minúsculas
Texto REPLACE MUDAR Muda os caracteres dentro do texto
Texto LEN NÚM.CARACT Retorna o número de caracteres em uma seqüência de texto
Texto PROPER PHONETIC Extrai os caracteres fonéticos (furigana) de uma seqüência de texto.
Texto FIND PROCURAR Procura um valor de texto dentro de outro (diferencia maiúsculas de minúsculas)
Texto REPT REPT Repete um texto um determinado número de vezes
Texto SUBSTITUTE SUBSTITUIR Substituir um novo texto por um texto antigo em uma seqüência de texto
Texto T T Converte os argumentos em texto
Texto TEXT TEXTO Formata um número e o converte em texto
Texto CLEAN TIRAR Remove todos os caracteres do texto que não podem ser impressos
Texto VALUE VALOR Converte um argumento de texto em um número
Assinar:
Postagens (Atom)