Possível resolução (Arquitectura VBA Exercícios por resolver)

Documentos relacionados
Leitura e escrita de números - milhões. Leitura e escrita de números - milhões Duzentos e quatro milhões, dois mil e trezentos e três.

ÍNDICE. Conjuntos de unidades...7 Leitura de números...8 Leitura em linguagem corrente...8 Leitura por ordens e por classes...8

Leitura e escrita de números - centenas de milhar. Leitura e escrita de números - centenas de milhar

Triénio 2017_2019 CONSELHO DE SUPERIOR. Secção de voto de BRAGANÇA:

MEDIDA PROVISÓRIA Nº 528, DE 25 DE MARÇO DE Altera os valores constantes da tabela do Imposto sobre a Renda da Pessoa Física.

MEDIDA PROVISÓRIA Nº 528, DE 25 DE MARÇO DE 2011

ANEXO V PREÇO UNITÁRIO (R$) DEPENDENTES LEGAIS anos , , anos , , anos ,95 2.

O período de investimento decorre entre e

Objectivos. Introdução à programação Macros em Microsoft Excel Introdução ao Visual Basic para Aplicações (VBA)

LISTA DE PERMUTAS DE TERRENOS COM O MUNICÍPIO E DE VENDA DE TERRENOS MUNICIPAIS, RESPETIVAS LOCALIZAÇÕES E VALORES - ANO 1998 A 2013

MATEMÁTICA. 1 Observa o quadro. Descobre a sequência de números e completa-os. A B C D E F G H I J K L M N O

Resoluções emitidas ad referendum, para homologação. Conselho Diretor

Memorial Descritivo. Unidade Autônoma no. 23 Condomínio Villavista Golf

MATEMÁTICA. 1 Escreve os números por extenso de 5 em 5 até

PREFEITURA MUNICIPAL DE MARAGOJIPE CNPJ: / EXTRATO DE CONTRATO

< < < < < MATEMÁTICA. 1 Completa a reta graduada com os números que faltam. 2 Completa a sequência. 3 Ajuda o Lucas e escreve por ordem crescente.

Inf. II Revisão s/ Matrizes

Tutorial de Extensibilidade

Gramáticas DCG s Linguagem Natural

Estado do Pará Governo Municipal de Água Azul do Norte PREFEITURA MUNICIPAL DE ÁGUA AZUL DO NORTE

Prefeitura Municipal de Brumado publica:

Disponível em: <

Encargos Financeiros 1º Semestre de Programa de Pós-Graduação Lato Sensu da FGV DIREITO SP (FGVLAW)

Exercícios de VBA. Paulo Melo Joana Dias Óscar Lourenço 17 de Maio de 2006

Professores do Ensino Básico - Variante de Educação Física. Disciplina: Matemática Data: Ficha de trabalho: 3

Câmara Municipal. Ata nº 29/16. A reunião foi secretariada pelo Chefe de Divisão Administrativa e de Recursos Humanos, José da Silva Gregório

Alguns Exemplos em Java

(R ) 1 FREGUESIA DE FAZENDAS DE ALMEIRIM ACTA NÚMERO NOVENTA E NOVE DE DOIS MIL E NOVE

Prefeitura Municipal de Paripiranga publica:

MUNICÍPIO DE ALCOBAÇA

Resolução De Problemas Em Informática. Docente: Ana Paula Afonso Resolução de Problemas. 1. Analisar o problema

ESTADO MATO GROSSO PREFEITURA MUNICIPAL DE VARZEA GRANDE NOTIFICAÇÃO DE RECEBIMENTO DE RECURSOS FEDERAIS

ACTA N.º 04/2016 REUNIÃO EXTRAORDINÁRIA DA JUNTA DE FREGUESIA DE BENAVENTE

PREFEITURA MUNICIPAL DE ARAPUÃ Estado do Paraná CNPJ/MF: / Rua Presidente Café Filho, s/n Centro CEP: Arapuã/Pr.

Exercícios Data Modeling

ESTADO MATO GROSSO PREFEITURA MUNICIPAL DE VARZEA GRANDE NOTIFICAÇÃO DE RECEBIMENTO DE RECURSOS FEDERAIS

Tribunal Regional do Trabalho da 18ª Região - 1º Grau Tribunal Regional do Trabalho da 18ª Região - 1º Grau

RESULTADO DE JULGAMENTO DA LICITAÇÃO TERMO DE ADJUDICAÇÃO DO PREGÃO PRESENCIAL SRP 09 LICITAÇÃO Nº 9/

Encargos Financeiros 2017 Programa de Pós-Graduação Lato Sensu (GVlaw)

Ata número quarenta e oito Aos treze dias do mês de abril do ano de dois mil e dezoito, pelas doze horas, na sede social, na Rua de Meladas, 380,

Câmara Municipal de Aljezur. Acta nº 26/10

CONTRATADO: COPEMARI - COOPERATIVA DE TRABALHO E MATERIAIS RECICLAVEIS DE IVAIPORÃ-PR.

Atualiza o valor das custas judiciais, dos emolumentos e do Fundo de Reaparelhamento da Justiça.

Algoritmia e Programação

Trabalho final Formulário com VBA

SÃO PAULO TURISMO S.A. CNPJ/MF nº / NIRE

CÂMARA MUNICIPAL DE MAFRA CONTRATO N. 12/2015 REFORÇO DO ESPORÃO DA PRAIA DO SUL - ERICEIRA

Prefeitura Municipal de Monte Santo publica:

ACTA N.º 9 Mandato Data da reunião extraordinária: Local da reunião: Sala das Reuniões da Câmara Municipal de Santarém

Números Decimais. Esse método, modernizado, é utilizado até hoje.

RESULTADO DE JULGAMENTO DA LICITAÇÃO TERMO DE HOMOLOGAÇÃO DO PREGÃO PRESENCIAL Nº 02/2018 PP

Prefeitura Municipal de Palmeira dos Índios publica:

Módulo 1a: Introdução ao Visual Basic for Applications (VBA)

INFORMÁTICA DE GESTÃO

ACTA N.º 03/2016 REUNIÃO EXTRAORDINÁRIA DA JUNTA DE FREGUESIA DE BENAVENTE

Variáveis Tipos de Dados

Prefeitura Municipal de Jussari publica:

Edital n.º 5/ Da Câmara Municipal:

Prefeitura Municipal de Eunápolis publica:

MATEMÁTICA. 1 Escreve em algarismos.

CAPÍTULO I Seção Única Da Abrangência

RESOLUÇÃO Nº 891/ CONFERE

Planificação de sólidos e tabelas para resolução de tarefas. página: 5 exercício 2. página: 6 exercício 3 página: 6 exercício 4 página: 6 exercício 5

Tribunal Judicial de Vila Nova de Gaia Quarto Juízo Cível Processo Especial de Insolvência n.º /11.0 TYVNG

Estado de Mato Grosso Prefeitura Municipal de Itanhangá CNPJ: / Gestão 2009/2012 LEI Nº 222/2010 de 31 de Agosto de 2010

Encargos Financeiros Program a de Pó s - Gr adu ação La to Se ns u da FGV DIREIT O SP ( GV law)

PREFEITURA MUNICIPAL DE NORDESTINA/BA CNPJ/MF nº / EXTRATO DE CONTRATO Nº 546/2015 PREGÃO PRESENCIAL Nº 001/2015

GOVERNO MUNICIPAL DE VITÓRIA DO XINGU

MUNICÍPIO DE PAREDES DE COURA ATA N.º 17/ DE AGOSTO DE 2017 DA REUNIÃO ORDINÁRIA DA CÂMARA MUNICIPAL (MANDATO 2013/2017) (Contém 05 páginas)

ORÇAMENTO 2014 QUADRO COMPARATIVO ENTRE A LEI Nº 9.979/13 E O PROJETO Nº 307/13

JUNTA DE FREGUESIA DE GALVEIAS

SERVIÇO PÚBLICO FEDERAL CONSELHO REGIONAL DE EDUCAÇÃO FÍSICA DA 9ª REGIÃO ESTADO DO PARANÁ CREF9/PR

RESULTADO DE JULGAMENTO DA LICITAÇÃO TERMO DE ADJUDICAÇÃO DO PREGÃO PRESENCIAL Nº 02/2018 PP

Este Exame é individual, sem consulta e com a duração de 90 minutos. Responda às questões no próprio teste, no espaço próprio.

ACTA N.º 03/2014 REUNIÃO EXTRAORDINÁRIA DA JUNTA DE FREGUESIA DE BENAVENTE

RESUMO DO DIÁRIO OFICIAL DA UNIÃO

Prefeitura Municipal de Manoel Vitorino - BA

Informática II Ficha 5_resolução

Mediateca, E.N.P. 9 Portugués

TERMO DE RETIFICAÇÃO DE EDITAL

5. NOÇÕES DE PROGRAMAÇÃO

CLÁULAS ECONOMICAS DA CONVENÇÃO COLETIVA DE TRABALHO ESTABELECIDA COM O SINPEFESP E FEPEFI PARA OS ANOS DE 2018/2019

Introdução à Computação

R$ ,15 (dezesseis milhões, seiscentos e trinta e quatro mil, duzentos e quatorze reais e quinze centavos)

Atos Administrativos. PREFEITURA DE CONCEIÇÃO DO ALMEIDA/BA

ANÁLISE DAS DECLARAÇÕES DE IMPOSTO DE RENDA PESSOA FÍSICA ENTREGUES À RECEITA FEDERAL DO BRASIL PELO PROJIR NO ANO DE 2017

MATEMÁTICA = = = = Completa a reta graduada com os números que faltam.

Um algoritmo deve conter passos não ambíguos, executáveis e que sejam terminados quando seguidos.

Associação Pró-Gestão das Águas da Bacia Hidrográfica do Rio Paraíba do Sul AGEVAP ORÇAMENTO 2015

Prefeitura Municipal de Tremedal publica:

RUBRICA : MATEMÁTICA ANO. Nome : Data : / / INFORMAÇÃO : 1 Coloca os números por ordem: < < < < < > > > > > > > > > > < < < < < Exercícios - 2º ano

Sintaxe do Pascal Simplificado Estendido de 12 novas construções em Notação EBNF (BNF estendida)

ESTADO DE SERGIPE PREFEITURA MUNICIPAL DE ITABAIANA FUNDO MUNICIPAL DE SAÚDE DE ITABAIANA CONTRATO N 071/2014

EXECUTIVO. Prefeitura Municipal de Amélia Rodrigues. Terça Feira 14 de Julho de 2015 Ano I N 563. Publicações deste Diário

Prefeitura Municipal de Buritirama publica:

Prefeitura Municipal de Jacobina publica:

UNIVERSIDADE DO ESTADO DO RIO DE JANEIRO

REPÚBLICA DE ANGOLA TRIBUNAL DE CONTAS 1' CÂMARA. RESOLUÇÃO N je, /FP/14. GERAL DOS ÓRGÃOS AUXILIARES DO PRESIDENTE DA REPÚBLICA e

MOÇAMBIQUE JULHO 2015

ACTA DA REUNIÃO ORDINÁRIA DA CÂMARA MUNICIPAL DE ALPIARÇA REALIZADA EM 19 DE JANEIRO DE 2000 NÚMERO CINQUENTA E SETE Aos dezanove dias do mês

Transcrição:

Possível resolução (Arquitectura VBA Exercícios por resolver) 1) Private Sub CommandButton1_Click() Dim valor_actual As Integer valor_actual = CommandButton1.Caption If valor_actual < 100 Then valor_actual = valor_actual + 1 CommandButton1.Caption = valor_actual 2) Private Sub CommandButton1_Click() ThisWorkbook.Save 3) Private Sub CommandButton1_Click() For a = 1 To 9 ThisWorkbook.Worksheets.Add Financiado pelo FSE Pág: 1

4) Sub testar_func() Dim valor As Integer valor = InputBox("Introduza um número inteiro compreendido entre 0 e 9999") 'Assumindo que o utilizador introduz valores válidos MsgBox num_extenso(valor) Function num_extenso(num As Integer) As String Dim milhares As Integer Dim centenas As Integer Dim dezenas As Integer Dim unidades As Integer 'Determinar milhares, centenas, dezenas e unidades milhares = num \ 1000 centenas = (num - milhares * 1000) \ 100 dezenas = (num - milhares * 1000 - centenas * 100) \ 10 unidades = (num - milhares * 1000 - centenas * 100 - dezenas * 10) 'Colocar milhares If milhares = 0 Then milhares_extenso = "" If milhares = 1 Then milhares_extenso = "mil" If milhares >= 2 Then milhares_extenso = conv1(milhares) & " mil" 'Colocar centenas If centenas = 0 Then centenas_extenso = "" If centenas >= 1 Then centenas_extenso = conv2(centenas) 'Colocar dezenas If dezenas = 0 Then dezenas_extenso = "" If dezenas >= 1 Then dezenas_extenso = conv3(dezenas) 'Colocar unidades If unidades = 0 Then unidades_extenso = "" If unidades >= 1 Then unidades_extenso = conv1(unidades) 'Excepção de 11 a 19 If dezenas = 1 And unidades > 0 Then dezenas_extenso = "" unidades_extenso = conv4(unidades) num_extenso = milhares_extenso & " " & centenas_extenso If dezenas_extenso <> "" And centenas_extenso <> "" Then num_extenso = num_extenso & " e " & dezenas_extenso Else num_extenso = num_extenso & dezenas_extenso If unidades_extenso <> "" And dezenas_extenso <> "" Then num_extenso = num_extenso & " e " & unidades_extenso Else num_extenso = num_extenso & unidades_extenso If num = 0 Then num_extenso = "zero" Function conv1(valor As Integer) As String 'Conversão número-texto If valor = 0 Then conv1 = "zero" If valor = 1 Then conv1 = "um" If valor = 2 Then conv1 = "dois" Financiado pelo FSE Pág: 2

If valor = 3 Then conv1 = "três" If valor = 4 Then conv1 = "quatro" If valor = 5 Then conv1 = "cinco" If valor = 6 Then conv1 = "seis" If valor = 7 Then conv1 = "sete" If valor = 8 Then conv1 = "oito" If valor = 9 Then conv1 = "nove" Function conv2(valor As Integer) As String 'Conversão número-texto If valor = 1 Then conv2 = "cento" If valor = 2 Then conv2 = "duzentos" If valor = 3 Then conv2 = "trezentos" If valor = 4 Then conv2 = "quatrocentos" If valor = 5 Then conv2 = "quinhentos" If valor = 6 Then conv2 = "siscentos" If valor = 7 Then conv2 = "setecentos" If valor = 8 Then conv2 = "oitocentos" If valor = 9 Then conv2 = "novecentos" Function conv3(valor As Integer) As String 'Conversão número-texto If valor = 1 Then conv3 = "dez" If valor = 2 Then conv3 = "vinte" If valor = 3 Then conv3 = "trinta" If valor = 4 Then conv3 = "quarenta" If valor = 5 Then conv3 = "cinquenta" If valor = 6 Then conv3 = "sessenta" If valor = 7 Then conv3 = "setenta" If valor = 8 Then conv3 = "oitenta" If valor = 9 Then conv3 = "noventa" Function conv4(valor As Integer) As String 'Conversão número-texto If valor = 1 Then conv4 = "onze" If valor = 2 Then conv4 = "doze" If valor = 3 Then conv4 = "treze" If valor = 4 Then conv4 = "catorze" If valor = 5 Then conv4 = "quinze" If valor = 6 Then conv4 = "dezasseis" If valor = 7 Then conv4 = "dezassete" If valor = 8 Then conv4 = "dezoito" If valor = 9 Then conv4 = "dezanove" EISnt Financiado pelo FSE Pág: 3

5) Sub alineas_a_b_c() 'Resolução da alínea a 'A verificação será feita a partir da linha 2, sempre pela coluna A Dim linha_inicial As Integer linha_inicial = 2 'Variável que indica se a célula para a linha actual está ou não preenchida Dim preenchida As Boolean 'A primeira linha está preenchida (títulos) preenchida = True 'Variável que irá conter a indicação de linha da última célula preenchida Dim linha_final As Integer 'Variável que contém o número de linha actualmente a ser verificada Dim linha_actual As Integer linha_actual = linha_inicial 'Ciclo para verificar qual a última célula preenchida Do While preenchida = True 'RANGE é utilizado para referir células e/ou intervalos If Range("A" & linha_actual) <> Empty Then preenchida = True linha_actual = linha_actual + 1 Else preenchida = False Loop 'Redução de uma unidade à última linha a ser verificada linha_final = linha_actual - 1 'Variável que contém o número de registos Dim num_registos As Integer 'Redução de uma unidade à última linha preenchida (a primeira contém o título) num_registos = linha_final - 1 'Escrever na célula A1 da folha de cálculo 2 Sheet2.Range("A1") = linha_final - 1 'Resolução da alínea 2 Financiado pelo FSE Pág: 4

'De novo um ciclo... linha_actual = 2 'Uma variável para cada contagem por distrito (poder-se-ía utilizar um array) Dim lisboa As Integer Dim coimbra As Integer Dim porto As Integer lisboa = 0 coimbra = 0 porto = 0 For linha_actual = linha_inicial To linha_final Select Case Range("B" & linha_actual) Case "Lisboa" lisboa = lisboa + 1 Case "Porto" porto = porto + 1 Case "Coimbra" coimbra = coimbra + 1 End Select Dim distrito_com_mais_elementos As String 'Verificar qual o distrito que contém o maior número de elementos If lisboa >= porto And lisboa >= coimbra Then distrito_com_mais_elementos = "Lisboa" If lisboa = porto Then distrito_com_mais_elementos = "Lisboa e Porto" If lisboa = coimbra Then distrito_com_mais_elementos = "Lisboa e Coimbra" ElseIf porto >= coimbra Then distrito_com_mais_elementos = "Porto" If porto = coimbra Then distrito_com_mais_elementos = "Porto e Coimbra" Else distrito_com_mais_elementos = "Coimbra" 'Escrever na célula A2 da folha de cálculo 2 Sheet2.Range("A2") = distrito_com_mais_elementos 'Resolução da alínea 3 Dim residem_fora_de_lisboa As Integer residem_fora_de_lisboa = num_registos - lisboa 'Escrever na célula A3 da folha de cálculo 2 Sheet2.Range("A3") = residem_fora_de_lisboa 6) 'Constantes Const coluna_nome As String = "A" Const coluna_idade As String = "B" Const titulo_coluna_nome As String = "Nome" Const titulo_coluna_idade As String = "Idade" Financiado pelo FSE Pág: 5

Const linha_inicial As Integer = 2 Const linha_final As Integer = 7 Const intervalo As String = "A1:B7" 'Variáveis Auxiliares Dim nome As String Dim idade As Integer Dim id_linha As Integer 'Array do tipo Variant Dim dados(2 To 7, 1 To 2) Sub ordenar_idade() 'Utilização de dois arrays (o original e o ordenado) For id_linha = linha_inicial To linha_final nome = Range(coluna_nome & id_linha) idade = Range(coluna_idade & id_linha) dados(id_linha, 1) = nome dados(id_linha, 2) = idade 'Títulos das colunas Sheet2.Range("A1") = titulo_coluna_nome Sheet2.Range("B1") = titulo_coluna_idade 'Declaração de uma matriz que irá conter os dados ordenados Dim dados_ordenados(2 To 7, 1 To 2) pos_actual_no_array_ordenado = 2 idade_maior = 0 pos_actual_no_array_ordenado = 2 'Quando o ciclo encontra o maior escreve-o no array ordenado e apaga-o do original For num_do_teste = 2 To 7 For pos_actual_no_array_original = 2 To 7 If dados(pos_actual_no_array_original, 2) > idade_maior Then pos_maior = pos_actual_no_array_original idade_maior = dados(pos_actual_no_array_original, 2) nome_maior = dados(pos_actual_no_array_original, 1) dados_ordenados(pos_actual_no_array_ordenado, 1) = nome_maior dados_ordenados(pos_actual_no_array_ordenado, 2) = idade_maior dados(pos_maior, 2) = 0 idade_maior = 0 nome_maior = "" pos_actual_no_array_ordenado = pos_actual_no_array_ordenado + 1 'Passagem para a folha de cálculo 2 For id_linha = linha_inicial To linha_final nome = dados_ordenados(id_linha, 1) idade = dados_ordenados(id_linha, 2) Sheet2.Range(coluna_nome & id_linha) = dados_ordenados(id_linha, 1) Sheet2.Range(coluna_idade & id_linha) = dados_ordenados(id_linha, 2) Financiado pelo FSE Pág: 6

Sub ordenar_nome() 'Utilização de dois arrays (o original e o ordenado) For id_linha = linha_inicial To linha_final nome = Range(coluna_nome & id_linha) idade = Range(coluna_idade & id_linha) dados(id_linha, 1) = nome dados(id_linha, 2) = idade 'Títulos das colunas Sheet3.Range("A1") = titulo_coluna_nome Sheet3.Range("B1") = titulo_coluna_idade 'Declaração de uma matriz que irá conter os dados ordenados Dim dados_ordenados(2 To 7, 1 To 2) pos_actual_no_array_ordenado = 2 Dim nome_maior As String nome_maior = "" pos_actual_no_array_ordenado = 2 'Quando o ciclo encontra o maior escreve-o no array ordenado e apaga-o do original For num_do_teste = 2 To 7 For pos_actual_no_array_original = 2 To 7 If dados(pos_actual_no_array_original, 1) > nome_maior Then pos_maior = pos_actual_no_array_original idade_maior = dados(pos_actual_no_array_original, 2) nome_maior = dados(pos_actual_no_array_original, 1) dados_ordenados(pos_actual_no_array_ordenado, 1) = nome_maior dados_ordenados(pos_actual_no_array_ordenado, 2) = idade_maior dados(pos_maior, 1) = "" idade_maior = 0 nome_maior = "" pos_actual_no_array_ordenado = pos_actual_no_array_ordenado + 1 'Passagem para a folha de cálculo 3 linha_do_excel = 2 For id_linha = linha_final To linha_inicial Step -1 nome = dados_ordenados(id_linha, 1) idade = dados_ordenados(id_linha, 2) Sheet3.Range(coluna_nome & linha_do_excel) = dados_ordenados(id_linha, 1) Sheet3.Range(coluna_idade & linha_do_excel) = dados_ordenados(id_linha, 2) linha_do_excel = linha_do_excel + 1 Sub inserir_comentarios() 'Feito na folha 1 Financiado pelo FSE Pág: 7

For id_linha = linha_inicial To linha_final idade = Range(coluna_idade & id_linha) If idade < 30 Then Range(coluna_idade & id_linha).addcomment "Inferior a 30" Financiado pelo FSE Pág: 8