Adicionado em: | 11/11/2011 |
Modificado em: | 11/11/2011 |
Tamanho: | Vazio |
Downloads: | 1439 |
Saberexcel - o site de quem precisa aprender macros MS Excel VBA
Função personalizada "Decorrido" do aplicativo Microsoft Excel VBA, retorna a diferença de datas em duas determinadas datas, essa função é igual a função DATADIF, que retorna também a diferença de datas, Anos, meses, dias.
Baixe o exemplo de planilha no final da página. Espero que o exemplo possam ajudá-los, Fiquem com Deus. Expedito Marcondes.
Function Decorrido(DataInicial As Date, DataFinal As Date, TipoRetorno As Integer)
Dim AnoInicial As Integer
Dim AnoFinal As Integer
Dim MesInicial As Integer
Dim MesFinal As Integer
Dim DiaInicial As Integer
Dim DiaFinal As Integer
AnoInicial = Year(DataInicial)
MesInicial = Month(DataInicial)
DiaInicial = Day(DataInicial)
AnoFinal = Year(DataFinal)
MesFinal = Month(DataFinal)
DiaFinal = Day(DataFinal)
If DiaFinal < DiaInicial Then
DiaFinal = DiaFinal + (DateSerial(AnoFinal, MesFinal + 1, DiaFinal) - DateSerial(AnoFinal, MesFinal, DiaFinal))
MesFinal = MesFinal - 1
End If
If MesFinal < MesInicial Then
MesFinal = MesFinal + 12
AnoFinal = AnoFinal - 1
End If
Select Case TipoRetorno
Case 1 '\ retorna Ano
Decorrido = AnoFinal - AnoInicial
Case 2 '\ retorna o mês
Decorrido = MesFinal - MesInicial
Case 3 '\ retorna dia
Decorrido = DiaFinal - DiaInicial
End Select
End Function
USO DAS FUNÇÕES:
=decorrido($F6;$G$1;1) ' argumento (1) retorna Anos.
=decorrido($F6;$G$1;2) ' argumento(2) retorna Meses
=decorrido($F6;$G$1;3) ' argumento(3) retorna dias
CONCATENANDO DADOS USANDO A FUNÇÃO PERSONALIZADA 'decorrido"
="O Sr." &B5&" nascido dia [ "&TEXTO(D5;"dd/mmm/aaaa")&" ] Tem [ "&decorrido($D5;$E$1;1) & " ] Anos, "& decorrido($D5;$E$1;2) & " mese="O Sr." &B5&" nascido dia [ "&TEXTO(D5;"dd/mmm/aaaa")&" ] Tem [ "&decorrido($D5;$E$1;1) & " ] Anos, "& decorrido($D5;$E$1;2) & " meses e "&decorrido($D5;$E$1;3) & " dias"s e "&decorrido($D5;$E$1;3) & " dias"
' - - - - - - - - - - - - -- -- - - - - - - - - - - - - -
USO DA FUNÇÃO DATADIF - APLICATIVO EXCEL
=DATADIF($F6;$G$1;"y") 'Argumento("y") retorna anos
=DATADIF($F6;$G$1;"ym") ' Argumento("ym") retorna meses
=DATADIF($F6;$G$1;"md") 'Argumento("md") retorna dias
CONCATENANDO DADOS USANDO A FUNÇÃO DO APLICATIVO EXCEL 'DATADIF'
="O Sr."&B5&" nascido dia [ "&TEXTO(D10;"dd/mmm/aaaa")&" ] Tem [ "&DATADIF($D5;$E$1;"y")&" ] Anos, "&DATADIF($D5;$E$1;"ym")&" meses e "&DATADIF($D5;$E$1;"md")&" dias"
Aprenda tudo sobre planilhas do Aplicativo Microsoft Excel VBA(Visual Basic Application), sozinho, com baixo custo, praticando com os produtos didáticos Escola Saberexcel VBA Estudos® - Treinamentos com Macros, Fórmulas e Funções.
Adicionado em: | 27/05/2011 |
Modificado em: | 27/05/2011 |
Tamanho: | Vazio |
Downloads: | 4261 |
Saberexcel - o site de quem precisa aprender Macros Microsoft Excel VBA
Essa macro e Função personalizada do Aplicativo Microsoft Excel VBA(Visual Basic Application), verifica e retorna o total de dias úteis entre um intervalo de duas datas, dias úteis de trabalho. Baixe o exemplo de planilha para melhor visualizar os macros e a função personalizada, para esse cálculo de datas úteis sem os sábados e domingos através do VBA.
'Este módulo irá Dias Calcular atividade úteis entre duas datas dadas em formato abaixo.
'ColA Col B ColC
'DataIncial DataFinal Resultado nas (Celulas em branco)
Sub Calcular_dias_atividade()
[A1:B12].Select
Dim vCelulas As Range
For Each vCelulas In Selection.Cells
If IsDate(vCelulas.Value) And IsDate(vCelulas.Offset(0, 1).Value) And IsEmpty(vCelulas.Offset(0, 2)) Then
vCelulas.Offset(0, 2).Value = Dias_de_trabalho(vCelulas.Value, vCelulas.Offset(0, 1).Value)
End If
Next
[D1].Select
End Sub
Function Dias_de_trabalho(ByVal vDataInicial As Long, ByVal vDataFinal As Long) As Long
' Retorna a contagem de dias entre vDataInicial - vDataFinal menos sábados e domingos
Dim vDia As Long, vContador As Long
For vDia = vDataInicial To vDataFinal
If Weekday(vDia, vbMonday) < 6 Then
vContador = vContador + 1
End If
Next vDia
Dias_de_trabalho = vContador
End Function
'
macros abaixo foram feitas para ajudar no teste de planilha.
Sub limpar_teste()
[C2:C15].ClearContents
[D1].Select
End Sub
Sub visualizar_macros_vbe()
Dim Resposta As String
Resposta = MsgBox("Deseja visualizar as macros no módulo VBE?", vbYesNo, "Saberexcel - o site das macros")
If Resposta = 6 Then ' 6 é igual a vbyes
Application.Goto reference:="Dias_de_trabalho"
Else
Saber1.Shapes("sb").Visible = True
End If
End Sub
Sub oct()
Saber1.Shapes("sb").Visible = False
End Sub
Aprenda tudo sobre planilhas do Aplicativo Microsoft Excel VBA(Visual Basic Application), sozinho, com baixo custo, praticando com os produtos didáticos Saberexcel
Adquira já o Acesso Imediato
à Area de Membros
Aprenda Excel VBA com Simplicidade de
códigos e Eficácia, Escrevendo Menos e
Fazendo Mais.
'-------------------------------------'
Entrega Imediata:
+ 500 Video Aulas MS Excel VBA
+ 35.000 Planilhas Excel e VBA
+ Coleção 25.000 Macros MS Excel VBA
+ 141 Planilhas Instruções Loops
+ 341 Planilhas WorksheetFunctions(VBA)
+ 04 Módulos Como Fazer Excel VBA
+ Curso Completo MS Excel VBA
+ Planilhas Inteligentes
<script type="text/javascript"><!--
google_ad_client = "ca-pub-2317234650173689";
/* retangulo 336 x 280 */
google_ad_slot = "0315083363";
google_ad_width = 336;
google_ad_height = 280;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
Aprenda tudo sobre o Aplicativo Microsoft Excel VBA(Visual Basic Application), sozinho, com baixo custo, praticando com os produtos didáticos Saberexcel,
Sobre as WorksheetFunctions Funções de Planilhas que retornam valores do VBA