Boa noite amigos,
O nosso Desafio n.º 1 é o seguinte: Em uma sala de aula temos diversos alunos. Todos serão avaliados de acordo com duas provas. Eu preciso saber a média final e a situação dos alunos após a aplicação dessas duas notas (aprovado ou final). Temos a seguinte tabela antes da aplicação da macro (Figura 1):
E após a execução da macro temos o seguinte resultado (Figura 2):
Para que essa "mágica" aconteça, preencha os nomes e as notas dos alunos de acordo com a figura 1 acima e insira o seguinte código em um módulo VBA:
a) Primeiro botão (calcular média e situação):
Sub media_final()
Dim contador As Long
Dim ultimalinha As Long
Dim Plan As Worksheet
Dim Atual As Workbook
Set Atual = ActiveWorkbook
Set Plan = Atual.Sheets("NOTAS")
ultimalinha = Plan.Cells(Rows.Count, "a").End(xlUp).Row
For contador = 1 To ultimalinha - 1
Plan.Range("D1").Offset(contador, 0) = (Plan.Range("C1").Offset(contador, 0) + Plan.Range("B1").Offset(contador, 0)) / 2
If Plan.Range("D1").Offset(contador, 0).Value >= 7 Then
Plan.Range("E1").Offset(contador, 0).Value = "Aprovado"
Else
Plan.Range("E1").Offset(contador, 0).Value = "Final"
End If
Next contador
Plan.Range("D1").Value = "MÉDIA"
Plan.Range("E1").Value = "SITUAÇÃO"
End Sub
b) Segundo botão (Limpar):
Sub Limpar()
Dim contador As Long
Dim ultimalinha As Long
Dim Plan As Worksheet
Dim Atual As Workbook
Set Atual = ActiveWorkbook
Set Plan = Atual.Sheets("NOTAS")
ultimalinha = Plan.Cells(Rows.Count, "a").End(xlUp).Row
For contador = 0 To ultimalinha - 1
Plan.Range("D1").Offset(contador, 0).ClearContents
Plan.Range("E1").Offset(contador, 0).ClearContents
Next contador
End Sub
Por fim, insira dois botões, atribua a eles as respectivas macros e execute os códigos. Um forte abraço!!