About Me

A minha foto
JRod - PORTUGAL
Microsoft [MVP] - Excel (10º ano consecutivo)
Ver o meu perfil completo
Com tecnologia do Blogger.

Seguidores

Estatisticas

Free Blog Counter

eXTReMe Tracker
2005-06-27
A função EOMONTH(), que se encontra no Analysis ToolPak add-in, devolve o número de série correspondente ao último dia do mês que é apurado somando ou diminuindo o número de meses pretendido ao mês que serve de base, sendo a sintaxe a seguinte: EOMONTH(start_date,months).
No entanto, se não se tiver o add-in mencionado, pode efectuar-se o mesmo tipo de cálculo, utilizando as funções DATE(), YEAR() e MONTH() em conjunto. A única diferença é que no segundo caso, temos que adicionar ou subtrair 1 mês, para podermos obter o mesmo resultado:






Nota: as células B1 e B3 estão formatadas como data, porque se estiverem formatadas como geral, a devolução é o número de série.
2005-06-16
Marina Limeira (Forum brasileiro de Office), perguntou como seria possível escolher um fundo da folha de cálculo, de acordo com a seguinte alternativa:

Se fosse maior (>) que 50, o fundo seria uma imagem; se fosse inferior ou igual (<=) a 50, então a imagem seria outra.

Utlizando o Evento SelectionChange, podemos ter o seguinte resultado:

> 50:


<=50:


O Código:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Range("A1") > 50 Then
        Worksheets("Folha1").SetBackgroundPicture "E:\camaleão5.jpg"
    Else
        Worksheets("Folha1").SetBackgroundPicture "E:\butterflies.jpg"
    End If
End Sub
2005-06-07
No post anterior, mostrei um exemplo com uma fórmula para contar o número de células com valor compreendido entre 0 e 15 dentro de um Range fixo ( no exemplo: A1:A6).

Mas como fazer, se pretendermos que o Range possa ser variável, ou seja, podendo ser A1:A6, ou A1:A8 ou A1:A12?. Então, o que teremos que fazer é construirmos a formula de modo a que à variável (x) em A1:A(x) seja atribuído um valor sem ser necessário estar sempre a alterar a fórmula:

Neste caso, sem termos que recorrer ao VBA, podemos utilizar uma célula de referência, a qual irá "informar" a fórmula de qual será o valor que irá receber, para que o Range pretendido seja avaliado.

No exemplo, a célula de referência é E1, que deve ser formatada como texto:
que pode ser formatada como número:



O Array em B1:

{=SUM((INDIRECT("A1:A"&VALUE(E1))>0)*(INDIRECT("A1:A"&VALUE(E1))<=15))}


=SUM((INDIRECT("A1:A"&E1)>0)*(INDIRECT("A1:A"&E1)<=15))

NOTA: Para obter o Array {} utilizar - CTRL + Shift + Enter


2005-06-06
Num forum sobre Excel, foi colocada a seguinte questão:
"Tenho uma tabela e gostaria de criar uma fórmula para contar o número de células com valor entre 0 e 15".

Vejamos então o exemplo:



Na tabela, verifica-se que existem 5 células com valores > 0 e <= 15. Então, em B1 podemos escrever:



O Array:

={SOMA((A1:A6>0)*(A1:A6<=15))}

NOTA: Para obter o Array {} utilizar - CTRL + Shift + Enter
2005-06-02
Num newsgroup de Excel, foi colocada a seguinte questão:

"Gostava que em determinadas àreas de uma worksheet só fosse possível escrever em maiúsculas. Existe alguma maneira de formatar uma célula dessa maneira?"

De notar que foi afirmado não se pretender usar do Evento WorkSheet_Change().

Bom, uma possível resposta a esta questão será socorrermo-nos de uma formatação de células em que a fonte a utilizar possua somente maiúsculas, como é o caso do exemplo seguinte:



No exemplo, utilizou-se uma TTF (Invite Engraved SF). Assim, ao escrever-se na célula A6 "exceler" (em minúsculas), o que aparece é o seu conteúdo em maiúsculas. De notar que o Excel assume internamente a função UPPER() ou MAIÚSCULAS(), ou seja, é como se tivessemos escrito na célula A6: =UPPER("exceler").