EMGI Programação. Ficha 9 Resolução

Documentos relacionados
Informática II Ficha 6_Resolução

Informática II Ficha 5_resolução

Inf. II Revisão s/ Matrizes

Resolução de exercícios da ficha de trabalho nº. 8 de VBA

Variáveis Tipos de Dados

Exercícios Data Modeling

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

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.

Informática II Ficha 4_resolução

Variáveis indexadas Vectores e Matrizes. APROG (Civil) Aula 12

Objectos, Propriedades e Métodos

Variáveis Tipos de Dados. APROG (Civil) Aula 2

INSTITUTO SUPERIOR DE ENGENHARIA DO PORTO

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

Código do formulário frmfacturascliente

Lista 2 TP060. Exercícios Vetores

INFORMÁTICA DE GESTÃO

Estruturas de Repetição Embutidas. APROG (Civil) Aula 11

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

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

Estruturas de Decisão Embutidas. APROG (Civil) Aula 7

Visual Basic for Applications

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

Algoritmia e Programação

Introdução à Computação

Estruturas de Decisão. APROG (Civil) Aula 6

CÓDIGO FONTE CALCULADOR DE 04 OPERAÇÕES

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

5. NOÇÕES DE PROGRAMAÇÃO

Instituto Superior Politécnico de VISEU. Escola Superior de Tecnologia

Informática II Cap. 4-4

Introdução à Computação

Excel 2016 com VBA. Aula 5. Prof. Guilherme Nonino Rosa

Bertolo Por que Laços no VBA?

Manipulação de Texto. APROG (Civil) Aula 16

Introdução à Computação

Modelagem em Engenharia C & A Aula 1- Introdução e informações

Teste Avaliação Global (TAG) Resolução

Excel 2016 com VBA. Aula 3. Prof. Guilherme Nonino Rosa

INTRODUÇÃO À PROGRAMAÇÃO DO ACCESS BASIC

Páginas seleccionadas

Tutorial de Extensibilidade

Para instalar o Visual Basic 2010 Express.

Tópicos avançados sobre funções (cont.)

Calculador de preços e prazos de encomendas

Informática II Cap. 4-2

Python. Resumo e Exercícios P2 Parte 1

Trabalhando com Arquivos de Texto no VBA

Linguagem Pascal. Prof. Antonio Almeida de Barros Junior

A1;A7 é o mesmo que A1 e A7 A1:A7 é o mesmo que A1 até A7 (abrange A1, A2, A3, A4, A5, A6, A7).

Algoritmia e Programação

Trabalho final Formulário com VBA

Excel - VBA. Macrocomandos (Macros) O que é uma macro? São programas que executam

Grupo I. 1 - Range("cell")

Reconhecer alguns dos objectos VBA Automatizar bases de dados recorrendo à programação VBA e scripts SQL

Simulação de Monte Carlo

Estruturas de Controlo Repetitivo. APROG (Civil) Aula 8

Código do formulário frmcalcularinvestimento. Nesta tarefa iremos analisar o código desenvolvido para o formulário frmcalcularinvestimento.

EISnt Centro de Formação em Tecnologia

Introdução à Ciência da Computação

Programação de Computadores usando VBA

Informática de Gestão 1º ano / 1º semestre Ano letivo: 2014/2015. Visual Basic VBA

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

Código do formulário frmadicionarfactura

Abaixo do Objeto WorkSheet temos a coleção Cells, que representa todas as células de uma planilha.

Linguagem Algorítmica OO. Linguagem Algorítmica

Tipos de Referência. Referência Relativa $A$1. Referência Absoluta. Referência Mista. $A1 ou A$1

Fundamentos Programação

Análise Semântica e Tratamento de Erros Dependentes de Contexto

APROG. Civil. Programas Básicos. ISEP DEI, Angelo Martins 2006 ISEP DEI, António Silva Programas Básicos

Lista Ligada Linear - Retirar elemento

Linguagens de Programação

Integração por Web Services

MAC2166 Introdução à Computação

Visual Basic. V - Repetição. CFAC Concepção e Fabrico Assistidos por Computador João Manuel R. S. Tavares

O AMBIENTE DE PROGRAMAÇÃO VISUAL -PLANO DE ENSINO. Prof. Angelo Augusto Frozza, M.Sc.

Tratamento de erros I Ideia básica

Sub AcessaWeb(url, x) ' recebe uma url para pesquisar e devolve uma planilha ' Solicita a criação da planilha x

Tarefa Orientada 4 Aplic. Manutenção de Produtos - ComboBox

ESTRUTURA HOMOGÊNEA: VETORES/ARRAYS

V - Repetição. CFAC Concepção e Fabrico Assistidos por Computador. 2) Elementos de uma estrutura de repetição;

Visual Basic. VI - Arrays. CFAC Concepção e Fabrico Assistidos por Computador João Manuel R. S. Tavares

1) Mostrando uma mensagem. 10 exemplos de macros essenciais no Excel. Este conteúdo faz parte da série: Excel VBA Ver 6 posts dessa série

Tutorial 2 Básico do VBA do Excel

Índice. Bloco Visual Basic v 0.3 A. Martins Página 1/18

Teste de P1 12 de Dezembro 2001

Exemplos. Alocação Dinâmica de Pilhas. Pilhas. Pilhas. Implementação Seqüencial X Encadeada. SCE 182 Algoritmos e Estruturas de Dados I

Instituto Superior de Engenharia do Porto Programação (SEE)

PutPin PinD, Horario 'Sentido horário DT = 'Intervalo entre passos. Do 'Executa PutPin PinS, 1 'Pulsa PutPin PinS, 0 'PinS

Informática II Cap. 4-3

Tipos de Dados Dinâmicos

Resumão VB (com Excel Avançado) Autor: Everton M. Messias

PROGRAMAÇÃO E SISTEMAS DE INFORMAÇÃO 11ºANO

SCC 202 Algoritmos e Estruturas de Dados I. Pilhas (Stacks) (implementação dinâmica)

Cálculo Remoto de Preços e Prazos de Encomendas

Análise e Desenvolvimento de Algoritmos (2006/2007)

Webservice LerChaveAutenticadora

Documentação do retorno XML referente projeto Busca Endereço por CEP

Desenvolvendo aplicações com Gambas.

Transcrição:

-----GRUPO 1 Option Explicit 'Aceita 2 números e coloca-os nas células A1 e A2 da folha activa ' Este procedimento deverá ser chamado de uma folha p. ex. através de um botão lá colocado Sub fp6_i1a() Dim N1 As Integer, N2 As Integer N1 = Val(InputBox("Indique o número a colocar na célula A1 da folha activa", "Entrada de Números")) N2 = Val(InputBox("Indique o número a colocar na célula A2 da folha activa", "Entrada de Números")) ActiveSheet.Cells(1, 1) = N1 ActiveSheet.Cells(2, 1) = N2 'Aceita 2 números e coloca-os nas Células A1 e A2 da folha 1 Sub fp6_i1b() Dim N1 As Integer, N2 As Integer N1 = Val(InputBox("Primeiro valor")) N2 = Val(InputBox("Segundo valor")) Worksheets("Folha1").Cells(1, 1) = N1 Worksheets("Folha1").Cells(2, 1) = N2 'Copia valores da 1.ª coluna da 1.ª colha de cálculo para a 3.ª coluna da 2.ª folha de cálculo Aceita 2 números e coloca-os nas células A1 e A2 da folha activa Sub fp6_i2() lin = 1 Do While Worksheets("Folha1").Cells(lin, 1) <> "" Worksheets("Folha2").Cells(lin, 3) = Worksheets("Folha1").Cells(lin, 1) 'Aceita 2 números e coloca-os nas linha 1 e 2 da coluna indicada da folha 1 Sub fp6_i3() Dim N1 As Integer, N2 As Integer, col As Integer N1 = Val(InputBox("Primeiro valor", "Entrada de valores")) N2 = Val(InputBox("Segundo valor", "Entrada de valores")) col = Val(InputBox("Coluna onde se pretende colocar os números", "A linhas serão a 1.ª e 2.ª")) Worksheets("Folha1").Cells(1, col) = N1 Worksheets("Folha1").Cells(2, col) = N2

-----GRUPO 2 Option Explicit 'Função que calcula o preço de uma chamada de um telemóvel ' Invoca 2 outras funções ' 1.ª encarrega-se de devolver a coluna correspondente à rede de destino da chamada ' 2.ª encarrega-se de devolver a linha correspondente ao tipo tarifa ' correspondente à hora a que foi efectuada a ligação ' com a linha e coluna depois vai à folha de tarifas e lê o valor / minuto da chamada efectuada Function custo_chamada(periodo, Duracao, Rede_Destino) Dim lin, col As Integer Dim Valor_Minuto As Single lin = procura_linha(periodo) col = procura_coluna(rede_destino) If (lin = 0 Or col = 0) Then custo_chamada = "Não Definido" Valor_Minuto = Worksheets("tarifas_tmn").Cells(lin, col) If Duracao <= 60 Then custo_chamada = Valor_Minuto custo_chamada = Valor_Minuto + (Duracao - 60) * (Valor_Minuto / 60) 'Função que dada a rede para onde foi efectuada uma chamada (parâmetro da função), 'devolve a coluna correspondente na folha de tarifas Function procura_coluna(rede_destino) Dim col As Integer col = 2 Do While Worksheets("tarifas_tmn").Cells(1, col) <> "" If Worksheets("tarifas_tmn").Cells(1, col) = Rede_Destino Then procura_coluna = col col = col + 1 'Função que dado o período do dia em que foi efectuada uma chamada (parâmetro da função), 'devolve a linha correspondente na folha de tarifas Function procura_linha(periodo) Do While Worksheets("tarifas_tmn").Cells(lin, 1) <> "" If Worksheets("tarifas_tmn").Cells(lin, 1) = Periodo Then procura_linha = lin

-----GRUPO 3 Option Explicit '------------------------------F6.5---------------------------------- Function tipo_cliente(cod_cli) Do While Worksheets("Clientes").Cells(lin, 1) <> "" If Worksheets("Clientes").Cells(lin, 1) = cod_cli Then tipo_cliente = Worksheets("clientes").Cells(lin, 6) '------------------------------F6.6---------------------------------- Function calc(tp_cli, consumo), col As Integer col = proc_col(tp_cli) lin = proc_lin(consumo) If tp_cli = "N" Then calc = Worksheets("tarifa").Cells(lin, col) * consumo + 5 calc = Worksheets("tarifa").Cells(lin, col) * consumo + 25 Function proc_col(tp_cli) Dim c As Integer c = 2 Do While Worksheets("tarifa").Cells(1, c) <> "" If Worksheets("tarifa").Cells(1, c) = tp_cli Then proc_col = c c = c + 1 Function proc_lin(consumo) Do While Worksheets("tarifa").Cells(lin, 1) <> "" If Worksheets("tarifa").Cells(lin, 1) >= consumo Then proc_lin = lin

'------------------------------F6.7---------------------------------- Sub insere_cliente(), w As Worksheet Set w = Worksheets("clientes") lin = proc_linha_livre("clientes") w.cells(lin, 1) = InputBox("Código") w.cells(lin, 2) = InputBox("Nome") w.cells(lin, 3) = InputBox("Rua_num") w.cells(lin, 4) = InputBox("Lugar") w.cells(lin, 5) = InputBox("Código Postal") w.cells(lin, 6) = UCase(InputBox("Tipo cliente")) Function proc_linha_livre(folha) Do While Worksheets(folha).Cells(lin, 1) <> "" proc_linha_livre = lin '------------------------------F6.8---------------------------------- Sub preenche_totais() Dim mes As Integer, folha As String, lint As Integer, linc As Integer Dim ft As Worksheet, fc As Worksheet Dim soman As Long, somai As Long, ncn As Integer, nci As Integer mes = Val(InputBox("Mês")) folha = InputBox("Nome da folha") Set fc = Worksheets(folha) linc = 2 soman = 0 somai = 0 ncn = 0 nci = 0 Do While fc.cells(linc, 1) <> "" If fc.cells(linc, 5) = "N" Then soman = soman + fc.cells(linc, 8) ncn = ncn + 1 somai = somai + fc.cells(linc, 8) nci = nci + 1 linc = linc + 1 Set ft = Worksheets("totais") lint = proc_linha_livre("totais") ft.cells(lint, 1) = mes ft.cells(lint, 2) = ncn ft.cells(lint, 3) = soman ft.cells(lint, 4) = nci ft.cells(lint, 5) = somai

'------------------------------F6.9---------------------------------- ' OBS: NÃO ADICIONA NOVOS CLIENTES ' Sub cria_f_consumo(), col As Integer Dim nome_o, nome_d Dim fo As Worksheet, fd As Worksheet nome_o = InputBox("nome folha origem") nome_d = InputBox("nome folha destino") Sheets.Add Sheets(ActiveWorkbook.ActiveSheet.Name).Name = nome_d Set fo = Worksheets(nome_o) Set fd = Worksheets(nome_d) 'fo.copy 'fd.paste lin = 1 col = 1 Do While fo.cells(lin, col) <> "" fd.cells(lin, 1) = fo.cells(lin, 1) fd.cells(lin, 2) = fo.cells(lin, 3) For col = 4 To 8 fd.cells(lin, col).formula = fo.cells(lin, col).formula Next col = 1 fd.cells(1, 2) = "Val_anterior" fd.cells(1, 3) = "Val_actual" fd.columns("a:h").autofit fd.range("a1:h1").select With Selection.Font.Name = "Times New Roman".Size = 16 End With With Selection.HorizontalAlignment = xlcenter.verticalalignment = xlbottom End With Selection.Font.Bold = True fd.columns("a:h").autofit ' adiciona_clientes lin, nome_d RETIRADO 'Sub adiciona_clientes(lin, nome_d) ' Dim col As Integer ' Dim fc As Worksheet, fd As Worksheet ' Set fc = Worksheets("clientes") ' Set fd = Worksheets(nome_d) ' Do While fc.cells(lin, 1) <> "" ' fd.cells(lin, 1) = fc.cells(lin, 1) ' fd.cells(lin, 2) = 0 ' ' '

'------------------------------F6.10---------------------------------- Sub preenche_totais_10() Dim mes As Integer, folha As String, lint As Integer, linc As Integer, linant As Integer Dim ft As Worksheet, fc As Worksheet Dim soman As Long, somai As Long, ncn As Integer, nci As Integer Set ft = Worksheets("totais") lint = proc_linha_livre("totais") linant = lint - 1 If linant = 1 Then mes = Val(InputBox("Digite o mês inícial da folha totais")) folha = InputBox("Nome da folha que contém os consumos do mês " & mes) mes = ft.cells(linant, 1) + 1 folha = InputBox("Nome da folha que contém os consumos do mês " & mes) Set fc = Worksheets(folha) linc = 2 soman = 0 somai = 0 ncn = 0 nci = 0 Do While fc.cells(linc, 1) <> "" If fc.cells(linc, 5) = "N" Then soman = soman + fc.cells(linc, 8) ncn = ncn + 1 somai = somai + fc.cells(linc, 8) nci = nci + 1 linc = linc + 1 ft.cells(lint, 1) = mes ft.cells(lint, 2) = ncn ft.cells(lint, 3) = soman ft.cells(lint, 4) = nci ft.cells(lint, 5) = somai