Saberexcel - o Site das Macros
Essas macros do Aplicativo Microsoft Excel VBA, exibe um calendário permantente e insere a data do mês a partir de fórmulas matriciais. Observem que as fórmulas foram capturadas com GM(Gravador de macros) por isso que insisto para quem esta aprendendo a dominar bem
esse conhecimento, aprender sobre o GM(Gravador de Macros), aprender a depurar uma macro é muito importante no aprendizado do desenvolvedor.
Sub insere_formula_matricial_dias_do_Mes()
Dias_Semana
Range("A7").Select
'Insere fórmulas matriciais (array)
With Range(ActiveCell.Offset(2, 0), ActiveCell.Offset(7, 6))
'Formula would be too long, so insert shorter formula and replace characters.
.FormulaArray = "=IF(MONTH(DATE(y,m,1))<>MONTH(DATE(y,m,1)-(WEEKDAY(DATE(y,m,1))-1)+{0;1;2;3;4;5}*7+{1,2,3,4,5,6,7}-1),"""",DATE(y,m,1)-(WEEKDAY(DATE(y,m,1))-1)+{0;1;2;3;4;5}*7+{1,2,3,4,5,6,7}-1)"
.Replace What:=",m,", Replacement:=",MONTH(" & ActiveCell.Address(False, False) & "),"
.Replace What:="y,", Replacement:="YEAR(" & ActiveCell.Address(False, False) & "),"
'.NumberFormat = "d"
'.HorizontalAlignment = xlCenter
'.Interior.ColorIndex = 36
End With
End Sub
Sub Dias_Semana()
Range("A8").FormulaR1C1 = "Domingo"
Range("B8").FormulaR1C1 = "Segunda"
Range("C8").FormulaR1C1 = "Terça"
Range("D8").FormulaR1C1 = "Quarta"
Range("E8").FormulaR1C1 = "Quinta"
Range("F8").FormulaR1C1 = "Sexta"
Range("G8").FormulaR1C1 = "Sábado"
Range("B6").Select
End Sub
Sub Limpar_Teste()
Range("A4:H16").Select
Selection.ClearContents
Range("A7").Select
End Sub
Sub Mostra_Oculta_Formulas()
If Range("A9") = "" Then
MsgBox ("tem que inserir as formulas")
Exit Sub
Else
ActiveWindow.DisplayFormulas = Not ActiveWindow.DisplayFormulas
End If
End Sub
Aprenda tudo sobre o Aplicativo Microsoft Excel VBA com Saberexcel
Baixe o exemplo de planilha com as macros acima
Excel planilha vba formulas calendario permanente busca dados formulas matriciais (21.61 kB)