Ig mais exercicios explicados vba 2010-2011

Disponível somente no TrabalhosFeitos
  • Páginas : 6 (1459 palavras )
  • Download(s) : 0
  • Publicado : 19 de dezembro de 2012
Ler documento completo
Amostra do texto
INFORMÁTICA DE GESTÃO

Caderno 4, Ficha 2 – Offset Exercício extra

Enunciado:
Escreva uma macro que
troca o conteúdo da célula
activa com o valor da célula
à sua direita.
Exº:
• Antes de correr a macro:

Resolução:
– Instrução para passar o conteúdo da
célula activa para a célula à sua direita:
ActiveCell.Offset (0, 1) = ActiveCell

– Instrução para passar o conteúdo da
célulaà direita para a célula activa:
ActiveCell = ActiveCell.Offset (0, 1)

– No entanto, depois da primeira instrução
ser executada, perde-se o conteúdo da
célula activa e vice-versa:

• Depois de correr a macro:
– Inferimos que: antes de efectuar a
primeira cópia de valores, precisamos de
salvaguardar algures o conteúdo da
célula activa.
(continua)
DEPARTAMENTO DE CIÊNCIAS E TECNOLOGIASDA INFORMAÇÃO 1

INFORMÁTICA DE GESTÃO

Caderno 4, Ficha 2 – Offset - Exercício extra
Resolução (Cont.):
– Se quiséssemos fazer esta operação
manualmente, usaríamos uma célula
auxiliar (por exemplo, B1):

– Solução: em vez de guardarmos numa
célula, guardamos numa variável em VB.
Dim x As Variant
‘ Como não sabemos de que tipo (texto, número, etc.) é o
conteúdo da célula, declaramosa variável como Variant

x = ActiveCell

X

X

“Penélope”

ActiveCell = ActiveCell.Offset (0, 1)

– Podemos implementar esta estratégia em
VB. No entanto, coloca-se o problema de
não sabermos se a célula auxiliar (neste
caso, B1) possui algum conteúdo – o qual se
perderia.

ActiveCell.Offset (0, 1) = x
X

“Penélope”

O único efeito que se pretende para a macro é
que troqueos conteúdos das células.
(cont.)
DEPARTAMENTO DE CIÊNCIAS E TECNOLOGIAS DA INFORMAÇÃO 2

INFORMÁTICA DE GESTÃO

Caderno 4, Ficha 2 – Offset - Exercício extra

Resolução (Cont.): Conclusões
– Podemos pensar nas variáveis como se fossem células, nas
quais podemos guardar valores temporariamente;
– As variáveis desaparecem assim que termina a macro a que
pertencem
O que neste caso atése revela ainda mais vantajoso relativamente a
usar uma célula para armazenamento temporário: a célula teríamos
que a apagar; a variável não.

Solução:

Sub Trocar_celulas ()
Dim x As Variant
x = ActiveCell
ActiveCell = ActiveCell.Offset (0, 1)
ActiveCell.Offset (0, 1) = x
End Sub
DEPARTAMENTO DE CIÊNCIAS E TECNOLOGIAS DA INFORMAÇÃO 3

INFORMÁTICA DE GESTÃO

Caderno 4, Ficha 3 –Procura - Exercício 1

Enunciado:
Escreva uma macro que solicita
um número ao utilizador e
depois posiciona o Excel
automaticamente na primeira
célula da coluna A, a partir da
célula A2, que contenha o dito
número.
• Macro solicita um número:

• Utilizador escreve número e
carrega em Ok:

• A célula activa posiciona-se na
célula da coluna A onde se
encontra esse número:DEPARTAMENTO DE CIÊNCIAS E TECNOLOGIAS DA INFORMAÇÃO 4

INFORMÁTICA DE GESTÃO

Caderno 4, Ficha 3 – Procura - Exercício 1
Resolução:
– Como faríamos nós para nos
posicionarmos “a olho” na célula
que possuísse o número
procurado?
1. Olhávamos para a célula A2
2. Se o valor nessa célula não
fosse igual ao número que
procurávamos, olhávamos
para a célula imediatamente
por baixo
3. Repetíamoso passo anterior
até que a célula para onde
estávamos a olhar possuísse o
dito número
4. Então activaríamos essa célula
onde tínhamos parado

Em VB:
– Precisamos de uma variável para
memorizar em cada momento a
célula para a qual se está a “olhar”:
Dim c As Range
„ Ao indicarmos que a variável é do
tipo Range, indicamos que serve para
guardar valores que representam células

c– Indicamos que a primeira célula a
inspeccionar é a célula A2:
Set c = Range (“A2”)

c

– Ora, vamos dar instruções em VB
para o Excel fazer exactamente
como nós;
DEPARTAMENTO DE CIÊNCIAS E TECNOLOGIAS DA INFORMAÇÃO 5

INFORMÁTICA DE GESTÃO

Caderno 4, Ficha 3 – Procura - Exercício 1
num

Continuação:
– Se a célula indicada por c não
possuir o número que
procuramos, i.é,...
tracking img