VBA/Excel I

Exercício 1

Crie uma folha de cálculo idêntica à figura que se segue.

1.1) Utilize formulários do tipo Controlo Giratório para incrementar/decrementar o número da factura.

1.2) Utilize formulários do tipo Botão de Opção para escolher a margem de lucro definida na célula E5. Use 25%, 15% e 10% para as opções Público, Amigos e Revenda respectivamente.

1.3) Utilize formulários do tipo Caixa de Verificação para definir quais os produtos a vender. Note que nas células E8:E12 deverá aparecer o preço do produto adicionado da margem de lucro escolhida.

Exercício 2

A figura que se segue mostra uma folha de cálculo do Excel que representa o calendário de um mês para um determinado ano.

2.1) Crie uma folha do Excel com uma estrutura idêntica à da figura anterior (deixe as células E1,G1 e A4:G15 em branco).

2.2) Utilize formulários do Excel do tipo controlo giratório para incrementar/decrementar o valor do ano e do mês descritos nas células B1 e B2 respectivamente.

2.3) Indique fórmulas para as células E1 e G1 de modo a que o seu conteúdo apresente respectivamente as datas do primeiro e do último dia do mês em questão.

2.4) Crie em VBA do Excel as funções primeiro_dia e ultimo_dia para usar nas células E1 e G1 respectivamente, substituindo as fórmulas da alínea anterior.

2.5) Determine as fórmulas a introduzir em A4:G4; A6:G6; A8:G8; A10:G10; A12:G12 e A14:G14 para que o calendário se ajuste automaticamente com a alteração do mês/ano. Para cada fórmula, refira a célula onde deve ser introduzida e as células para as quais pode/deve ser copiada.

2.6) Crie um procedimento em VBA para realizar as operações pedidas na alínea anterior e atribua-o como macro aos controlos giratórios do ano e do mês.

2.7) Suponha que as células A20:B50 contêm uma lista com o dia e uma descrição dos pagamentos a serem realizados durante o mês. Indique uma fórmula para as células A5:G5; A7:G7; A9:G9; A11:G11; A13:G13 e A15:G15 que utilize essa lista para mostrar no calendário os respectivos pagamentos.

2.8) Crie um procedimento em VBA para realizar as operações pedidas na alínea anterior e atribua-o como macro aos controlos giratórios do ano e do mês.

2.9) Optimize o procedimento da alínea anterior para avisar o utilizador da existência de pares da lista incompletos e/ou da existência de mais do que um pagamento por dia (para estes casos poderá ignorar a sua introdução no calendário).