Baixe o app para aproveitar ainda mais
Prévia do material em texto
MAC113 - Introdução à Computação Administração - 1o. Semestre de 2014 Aula de Exercício antes da Prova 2 1. Exercício 1: o Execute a seguinte macro. o A1="a3e1f1" e B1 = "economia" o Sub Questao1() |-------|----- -----|----------| o Dim lin As Integer | | A | B | o Dim col As Integer |-------|----- -----|----------| o Dim Tam As Integer | 1 | a3e1f1 | economia | o Dim i As Integer |-------|----- -----|----------| o Dim palavra As String | 2 | | | o Dim palavraNew As String |-------|----- -----|----------| o Dim letra As String | 3 | | | o Dim Str1 As String |-------|----- -----|----------| o Dim str2 As String | 4 | | | o |-------|----- -----|----------| o col = 1 | 5 | | | o lin = 2 |-------|----- -----|----------| o palavra = Cells(1, col) | 6 | | | o palavraNew = "" |-------|----- -----|----------| o Tam = Len(palavra) | 7 | | | o i = Tam |-------|----- -----|----------| o While i > 0 | 8 | | | o letra = Mid(palavra, i, 1) |-------|----- -----|----------| o If IsNumeric(letra) Then | 9 | | | o PalavraNew = palavraNew & letra |-------|----- -----|----------| o Cells(lin, col) = palavraNew o lin = lin + 1 o End If o i = i - 1 o WEnd o o col = 2 o lin = 2 o palavra = Cells(1, col) o palavraNew = "" o Tam = Len(palavra) o i = 1 o While i <= Tam o str1 = Mid(palavra, i, 1) o str2 = Mid(palavra, i + 1, 1) o If str1 < str2 Then o palavraNew = stg1 & plavraNew o Else o palavraNew = stg2 & plavraNew o End If o Cells(lin, col) = palavraNew o lin = lin + 1 o i = i + 2 o WEnd o End Sub o 2. Exercício 2: o É dada uma planilha contendo saldos mensais finais de jan/2013~dez/2013 de vários clientes de uma agencia de banco. A B C ...... L M N 1 nome jan fev ..... nov dez min max 2 Ana 5,000 5,100 ..... 5,430 6,200 3 Beth 9,000 8,500 ..... 9,000 9,050 4 Cris 3,500 3,600 ..... 4,600 4,700 : : : : : : : : : o No começo, não se sabe o número de linhas da palnilha. o 1a.linha é de cobeçalho: nome, jan, fev,...dez, min, max o Faça uma macro SaldoMin que descobre menor saldo mensal final durante 2011 de todos os clientes e preenche estes valores na coluna 14 da planilha dada. o Faça uma macro SaldoMax que descobre maior saldo mensal final durante 2011 de todos os clientes e preenche estes valores na coluna 15 da planilha dada. o faça uma macro Preenche2Col que preenche as colunas 14 e 15 da planilha dada usando obrigatoriamente 2 macros acima. o Faça uma macro Preenche1Linha (com parametro) que recebi, como parametro, um inteiro lin e preenche as colunas 14 e 15 (saldo final menor e saldo final maior) da linha lin da planilha dada. o Faça uma macro PreencheTodasAsLinhas que preenche as colunas 14 e 15 e todas as linhas da planilha dada usando obrigatoriamente a macro Preenche1Linha acima. MAC113 - Introdução à Computação Administração - 1o. Semestre de 2014 Gabarito da Aula de Exercício 10/06/2014 1. Exercício 1: o Execute a seguinte macro. o A1=a3e1f1 e B1 = economia o Sub Questao1() o Dim lin As Integer o Dim col As Integer o Dim Tam As Integer o Dim i As Integer o Dim palavra As String o Dim palavraNew As String o Dim letra As String o Dim Str1 As String o Dim str2 As String o o col = 1 o lin = 2 o palavra = Cells(1, col) o palavraNew = "" o Tam = Len(palavra) o i = Tam o While i > 0 o letra = Mid(palavra, i, 1) o If IsNumeric(letra) Then o PalavraNew = palavraNew & letra o Cells(lin, col) = palavraNew o lin = lin + 1 o End If o i = i - 1 o WEnd o o col = 2 o lin = 2 o palavra = Cells(1, col) o palavraNew = "" o Tam = Len (palavra) o i = 1 o While i <= Tam o stg1 = Mid(palavra, i, 1) o stg2 = Mid(palavra, i + 1, 1) o If stg1 < stg2 Then o palavraNew = stg1 & plavraNew o Else o palavraNew = stg2 & plavraNew o End If o Cells(lin, col) = palavraNew o lin = lin + 1 o i = i + 2 o WEnd o End Sub o o Copie e cole a macro acima no modulo de VBA de excell, em seguida depure-a. Como a macro acima foi escrita em HTML, pode surgir pequeno poblema no resultado devido a transição de um formato para outro. Geralmente vai dar erro de compilação rapidamente corrigível. 2. Exercício 2: o É dada uma planilha contendo saldos mensais finais de jan/2011~dez/2011 de vários clientes de uma agencia de banco. o No começo, não se sabe o número de linhas da palnilha. o 1a.linha: nome, jan, fev,...dez, min, max o Faça uma macro SaldoMin que descobre menor saldo mensal final durante 2011 de cada cliente e preenche estes valoesr na coluna 14. o Sub SaldoMin() o Dim lin As Integer o Dim col As Integer o Dim saldo As Double o Dim min As Double o o lin = 2 o While NOT IsEmpty(Cells(lin, 1)) o min=Cells(lin, 2) o col = 3 o While col <= 13 o saldo = Cells(lin, col) o If saldo < min Then o min = saldo o End If o col = col + 1 o WEnd o Cells(lin, 14) = min o lin = lin + 1 o WEnd o End Sub o o Faça uma macro SaldoMax que descobre maior saldo mensal final durante 2011 de cada cliente e preenche estes valores na coluna 15. o Sub SaldoMax() o Dim lin As Integer o Dim col As Integer o Dim saldo As Double o Dim max As Double o o lin = 2 o While NOT IsEmpty(Cells(lin, 1)) omax=Cells(lin, 2) o col = 3 o While col <= 13 o saldo = Cells(lin, col) o If saldo > max Then o max = saldo o End If o col = col + 1 o WEnd o Cells(lin, 15) = max o lin = lin + 1 o WEnd o End Sub o o faça uma macro Preenche2Col que preenche as colunas 14 e 15 da planilha usando 2 macros acima. o Sub Preenche2Col() o SaldoMin o SaldoMax o End Sub o o Faça uma macro Preenche1Linha (com parametro) que recebi, como parametro, um inteiro lin e preenche as colunas 14 e 15 (saldo final menor e saldo final maior) da linha lin. o Sub Preenche1Linha( lin As Integer ) o Dim col As integer o Dim saldo As Double o Dim min As Double o Dim max As Double o o min = Cells(lin, 2) o max = Cells(lin, 2) o col = 3 o While col <= 13 o saldo = Cells(lin, col) o If saldo < min Then o min = saldo o End If o If saldo > max Then o max = saldo o End If o col = col + 1 o Wend o Cells(lin, 14) = min o Cells(lin, 15) = max o End Sub o o Faça uma macro PreencheTodasAsLinhas que preenche as colunas 14 e 15 e todas as linhas da planilha. o Sub PreencheTodasAsLinhas() o Dim i As Integer o o i = 2 o While NOT IsEmpty(Cells(lin, 1)) o Call Preenche1linha(i) o i = i + 1 o WEnd o End Sub o
Compartilhar