IP

quinta-feira, 23 de maio de 2013

Full Frame VS APS Frame


O tamanho do sensor full frame é similar ao do filme de 35mm, ou seja, o dobro do sensor APSC.
Em termos práticos, tem as seguintes consequências:



Full Frame
APS Frame
D700
D300
Menos ruídos em ISO altos
Maior Ruído em ISO altos
Escurecimento nas bordas
Foto sem bordas
Rica nos  meios tons
Pobre nos meios tons
Ideal para grande angulares
Ideal para teleobjectivas


sábado, 11 de maio de 2013

Ordenar automaticamente, no excel, os valores de uma tabela!

Vamos aprender a ordenar automaticamente uma "tabela" no Excel, sem perceber de programação.
Depois de ter testado algumas fórmulas, entre as quais: SE, MAIOR, MENOR... verifiquei que quando temos dois resultados iguais, o Excel apenas se preocupa com o primeiro resultado que encontra... 
Para resolver este problema, temos que programar em Visual Basic. Começamos por activar, no Excel,  o separador PROGRAMADOR. (Clique nas imagens para fazer zoom!)

1-Ficheiro > Opções


2-Personalizar friso > Programador

3-Depois de fazermos OK aparece, no friso, a opção PROGRAMADOR.

4-Vamos construir uma "tabela" com 20 linhas e 3 colunas Ficando compreendida nas seguintes células: B5:D26. Tenha apenas um livro aberto!




5-Agora vamos programar em Visual Basic. Para isso vamos clicar no separador PROGRAMADOR e depois em VISUAL BASIC.



6-Seguidamente colocamos o seguinte código, que será explicado posteriormente.
Código:
---------------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
If Not (Application.Intersect(Worksheets(1).Range("b5:d26"), Target) Is Nothing) Then
DoSort
End If
End Sub

Private Sub DoSort()
Worksheets(1).Range("b5:d26").Sort Key1:=Worksheets(1).Range("d6"), Order1:=xlDescending, _
Key2:=Worksheets(1).Range("c6"), Order1:=x1Ascending

End Sub
---------------------------------------------
Nota: O código tem que ficar nas linhas, como é apresentado na imagem.

6-Depois de colocar o código, tem que gravar para o código  ficar lá.

7-Para conseguir gravar, tem que escolher o tipo "Livro com permissão para macros de excel".

 Vamos agora à explicação do código.

If Not (Application.Intersect(Worksheets(1).Range("b5:d26"), Target) Is Nothing) Then
DoSort
Se não acontecer qualquer interacção na folha 1 (worksheets(1)) nas células que estão no intervalo B5:D6 (range ("b5:d6")) acontece nada. Senão (Then), executa sub-rotina DoSort.

Nota: Qualquer que seja o nome da folha 1, usamos sempre a expressão Worksheets(1).

Vamos analisar como é feita a ordenação :

Worksheets(1).Range("b5:d26").Sort Key1:=Worksheets(1).Range("d6"), Order1:=xlDescending, _
Key2:=Worksheets(1).Range("c6"), Order1:=x1Ascending


Só vamos ordenar (Sort) as células da página 1 (Worksheets(1)) que estão no intervalo b5:d26 .Range("b5:d26")

O Primeiro ordenamento (Key1) acontece na folha  1 (Worksheets(1)) na coluna da célula D6 (Range("d6"). O ordenamento é feito de forma descendente, ou seja, do maior para o menor (Order1:=xlDescending,).
A segunda ordenação (Key2) acontece na folha  1 (Worksheets(1)) na coluna da célula C6 (Range("c6"). O ordenamento é feito de forma ascendente, ou seja de A->Z (Order1:=x1Ascending).

Já está! Caso tenha alguma dúvida, deixe nos comentários ou envie uma mensagem através do formulário online.