Continuando com a resolução dos meus primeiros exercícios em Vba aqui fica mais um:

Elabore um algoritmo que permita Somar  5 Células na Horizontal a Partir da Célula Seleccionada.

Aqui fica o código que resolve o exercício:

Sub RowSum5()
    Dim s As Double
    Dim c(1 To 5) As Double
    Dim i As Integer

    ' guardar valores das células no vectror c()
    For i = 1 To 5
        c(i) = ActiveCell.Offset(0, i - 1).Value
    Next i

    ' somar valores
    s = 0
    For i = 1 To 5
        s = s + c(i)
    Next i

    ' Apresentar resultado
    MsgBox s
End Sub

Não sei se a forma como implementei a resolução do exercício é a mais correcta, e por isso fico à espera de comentários, ou mesmo de correcções e dicas de melhoramento do código que apresento.

Share

Continuando com a resolução dos meus primeiros exercícios em Vba aqui fica mais um:

Elabore um algoritmo que permita ordenar por ordem crescente um conjunto de células seleccionadas.

Aqui fica o código que resolve o exercício:

Sub SortSelection()
    Dim CellsCount As Integer
    Dim x() As Double, aux As Double
    Dim CellsToSort As Range
    Dim xCell As Range
    Dim i As Integer, j As Integer

    Set CellsToSort = Selection    ' Conjunto de células seleccionadas
    CellsCount = CellsToSort.Count

    ReDim x(1 To CellsCount)  ' dimensionar o vector

    i = 1
    For Each xCell In CellsToSort
        x(i) = xCell.Value
        i = i + 1
    Next
    '
    ' ordenação crescente
    '
    For i = 1 To CellsCount
        For j = i To CellsCount
            If x(i) > x(j) Then ' troca
                aux = x(i)
                x(i) = x(j)
                x(j) = aux
            End If
        Next j
    Next i

    i = 1
    For Each xCell In CellsToSort
        xCell.Value = x(i)
        i = i + 1
    Next
End Sub

Não sei se a forma como implementei a resolução do exercício é a mais correcta, e por isso fico à espera de comentários, ou mesmo de correcções e dicas de melhoramento do código que apresento.

Share

Continuando com a resolução dos meus primeiros exercícios em Vba aqui fica mais um:

Elabore um algoritmo que permita contar a quantidade de números Pares e ímpares.

Aqui fica o código que resolve o exercício:

Sub pares()

Dim num As Integer, countpar As Integer, conutimpar As Integer,
totalnum As Integer

Do

a = a + 1

   num = InputBox("Insira Um Número")

   If num Mod 2 = 0 Then
       countpar = countpar + 1
    Else
       countimpar = countimpar + 1
   End If

   If num = 0 Then Exit Do

Loop

   MsgBox ("O Número de Pares é:" & countpar - 1)
   MsgBox ("O Número de Impares é:" & countimpar)

End Sub

Não sei se a forma como implementei a resolução do exercício é a mais correcta, e por isso fico à espera de comentários, ou mesmo de correcções e dicas de melhoramento do código que apresento.

Share

Contar Números Pares e Ímpares em Vba\Excel

Continuando com a resolução dos meus primeiros exercícios em Vba aqui fica mais um:

Elabore um algoritmo que permita contar a quantidade de números Pares e ímpares.

Aqui fica o código que resolve o exercício:

Sub pares()

Dim num As Integer, countpar As Integer, conutimpar As Integer,
totalnum As Integer

For a = 1 To 9999

num = InputBox("Insira Um Número")

      If num Mod 2 = 0 Then

          countpar = countpar + 1

       Else

           countimpar = countimpar + 1

      End If

  If num = 0 Then

   Exit For

  End If

Next

   MsgBox ("O Número de Pares é:" & countpar)
   MsgBox ("O Número de Pares é:" & countimpar)

End Sub

Não sei se a forma como implementei a resolução do exercício é a mais correcta, e por isso fico à espera de comentários, ou mesmo de correcções e dicas de melhoramento do código que apresento.

Share

Verificar se Um Número é Primo em Vba\Excel

Continuando com a resolução dos meus primeiros exercícios em Vba aqui fica mais um:

Elabore um algoritmo que permita verificar se um determinado número inserido pelo utilizador é ou não um número primo.

Aqui fica o código que resolve o exercício:

Sub primos()

Dim num As Integer, primo As Boolean

num = InputBox("Insira Um Número")

primo = True

   For div = 2 To Sqr(num)

       If num Mod div = 0 Then

           primo = False

       End If
   Next

   If num = 1 Then MsgBox ("Não é Primo")

   If primo Then

       MsgBox ("O Número é Primo")

   Else

       MsgBox ("O Número Não é Primo")

   End If
End Sub

Não sei se a forma como implementei a resolução do exercício é a mais correcta, e por isso fico à espera de comentários, ou mesmo de correcções e dicas de melhoramento do código que apresento.

Share