About Me
Com tecnologia do Blogger.
Seguidores
Estatisticas
2005-10-17
Um calendário básico:

Em O6 - o mês
Em O7 - o ano
Em M9:
=WEEKDAY($O$6&"-"&$O$7)
Em N9:
=M9+1
Em O9:
=N9+1
O mesmo até S9.
Para mostrar o dia corrente noutra cor, como no exemplo, marca-se a tabela com os 31 algarismos correspondentes aos dias do mês:

Escolhe-se Formatar Condicionalmente:

e, no terceiro campo da condição, coloca-se a fórmula:
=DAY(TODAY())
Agora, para que os dias do mês coincidam com o mês em causa, ou seja, meses com 30 dias, meses com 31 dias e Fevereiro com 29 ou 28 dias, conforme seja ano bissexto ou comum, teremos que construir a seguinte fórmula, no exemplo, em S6:
=DAY(DATE(O7;MONTH(DATEVALUE(O6&"-"&O7))+1;0))
Por último, na célula onde deve ficar o algarismo 29, ou seja, no exemplo, em M14, colocamos a seguinte fórmula:
=IF(S6=28;"";29)
Na célula correspondente a 30:
=IF(S6<30;"";30)
E na célula correspondente a 31:
=IF(S6=31;31;"")
Em O6 - o mês
Em O7 - o ano
Em M9:
=WEEKDAY($O$6&"-"&$O$7)
Em N9:
=M9+1
Em O9:
=N9+1
O mesmo até S9.
Para mostrar o dia corrente noutra cor, como no exemplo, marca-se a tabela com os 31 algarismos correspondentes aos dias do mês:
Escolhe-se Formatar Condicionalmente:
e, no terceiro campo da condição, coloca-se a fórmula:
=DAY(TODAY())
Agora, para que os dias do mês coincidam com o mês em causa, ou seja, meses com 30 dias, meses com 31 dias e Fevereiro com 29 ou 28 dias, conforme seja ano bissexto ou comum, teremos que construir a seguinte fórmula, no exemplo, em S6:
=DAY(DATE(O7;MONTH(DATEVALUE(O6&"-"&O7))+1;0))
Por último, na célula onde deve ficar o algarismo 29, ou seja, no exemplo, em M14, colocamos a seguinte fórmula:
=IF(S6=28;"";29)
Na célula correspondente a 30:
=IF(S6<30;"";30)
E na célula correspondente a 31:
=IF(S6=31;31;"")
2005-10-10
É com grande orgulho que torno público que a Microsoft me reconheceu como Microsoft Most Valuable Professional [MVP] - Excel
2005-10-08
Para incrementar linearmente, iniciando num valor definido numa célula e indicando noutra o intervalo do incremento, ou seja, iniciando o incremento, por exemplo no valor 0 (em A1) e incrementando de 5 em 5 (valor dado em B1):

Podemos utilizar a seguinte fórmula em A2 (vista num newsgroups de Excel e apresentada por BenjieLop):
=IF(OR($A$1="";$B$1="");"";A1+$B$1)
Nota: a fórmula deve ser copiada para tantas células quantas as que se pretendam constituir como parte do incremento.
Podemos utilizar a seguinte fórmula em A2 (vista num newsgroups de Excel e apresentada por BenjieLop):
=IF(OR($A$1="";$B$1="");"";A1+$B$1)
Nota: a fórmula deve ser copiada para tantas células quantas as que se pretendam constituir como parte do incremento.
2005-10-03
Se pretendermos utilizar outro tipo de fórmula para obtermos o número de anos, em vez de =DATEDIF(A1;A2;"Y"), podemos usar as Funções VALUE() e DAYS360():

NOTA: A célula que irá conter a fórmula indicada em baixo, deverá ser formatada como número inteiro.
A fórmula:
=VALUE(DAYS360(A1;A2)/360)-1
NOTA: A célula que irá conter a fórmula indicada em baixo, deverá ser formatada como número inteiro.
A fórmula:
=VALUE(DAYS360(A1;A2)/360)-1
2005-09-24
Para subtrair duas datas, de modo a que o resultado seja dado em anos, meses e dias, como no exemplo:

Podemos utilizar a seguinte fórmula com a função DATEDIF() :
=DATEDIF(A1;A2;"Y") & " ano(s), " & DATEDIF(A1;A2;"ym") & " mês(es) e " & DATEDIF(A1;A2;"md") & " dia(s) "
Podemos utilizar a seguinte fórmula com a função DATEDIF() :
=DATEDIF(A1;A2;"Y") & " ano(s), " & DATEDIF(A1;A2;"ym") & " mês(es) e " & DATEDIF(A1;A2;"md") & " dia(s) "
2005-09-03
Se pretendermos criar uma sequência aleatória de letras e números, como no exemplo

podemos utilizar algumas Funções em VBE.
O Código:
Sub GerarLetrasNumeros()
Dim obj As Object
Dim linha As Integer, coluna As Integer
Dim r As Integer, c As Integer
Set obj = Range("A1")
linha = obj.Row
coluna = obj.Column
For r = 0 To 10
For c = 0 To 5
Cells(linha + r, coluna + c).Value = Chr(65 + Int(10 * Rnd)) _
& Chr(65 + Int(10 * Rnd)) & Chr(65 + Int(10 * Rnd)) _
& Chr(48 + Int(10 * Rnd)) & Chr(48 + Int(10 * Rnd)) _
& Chr(48 + Int(10 * Rnd))
Next c
Next r
End Sub
podemos utilizar algumas Funções em VBE.
O Código:
Sub GerarLetrasNumeros()
Dim obj As Object
Dim linha As Integer, coluna As Integer
Dim r As Integer, c As Integer
Set obj = Range("A1")
linha = obj.Row
coluna = obj.Column
For r = 0 To 10
For c = 0 To 5
Cells(linha + r, coluna + c).Value = Chr(65 + Int(10 * Rnd)) _
& Chr(65 + Int(10 * Rnd)) & Chr(65 + Int(10 * Rnd)) _
& Chr(48 + Int(10 * Rnd)) & Chr(48 + Int(10 * Rnd)) _
& Chr(48 + Int(10 * Rnd))
Next c
Next r
End Sub
2005-08-18
Se pretendermos somar dois tipos de ocorrências, como no exemplo

podemos criar uma pequena fórmula, utilizando as Funções SUM() e COUNTIF(), esta última, com um array.
O Código:
=SUM(COUNTIF(A1:A20;{"bom";"muito bom"}))
podemos criar uma pequena fórmula, utilizando as Funções SUM() e COUNTIF(), esta última, com um array.
O Código:
=SUM(COUNTIF(A1:A20;{"bom";"muito bom"}))
2005-08-16
Se pretendermos que o utilizador digite, por exemplo, na célula "A1", valores que não sejam negativos ou zero, como no exemplo:


podemos socorrer-nos de um pouco de VBA.
O Código:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If IsEmpty(Range("A1")) Then
Exit Sub
End If
If Range("A1") < 0 Then
MsgBox "O valor não pode ser negativo! Tente outra vez!!!"
Range("A1").ClearContents
ElseIf Range("A1") = 0 Then
MsgBox "O valor não pode ser zero! Tente outra vez!!!"
Range("A1").ClearContents
Else
Exit Sub
End If
End Sub
podemos socorrer-nos de um pouco de VBA.
O Código:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If IsEmpty(Range("A1")) Then
Exit Sub
End If
If Range("A1") < 0 Then
MsgBox "O valor não pode ser negativo! Tente outra vez!!!"
Range("A1").ClearContents
ElseIf Range("A1") = 0 Then
MsgBox "O valor não pode ser zero! Tente outra vez!!!"
Range("A1").ClearContents
Else
Exit Sub
End If
End Sub
2005-08-12
Se pretendermos efectuar cálculos com horas, em que a hora de início é superior à hora do fim (no pressuposto que esta última é já no dia seguinte) podemos utilizar a seguinte fórmula em Excel:
2005-08-01
O Código:
Sub Auto_Open()
Dim num As Integer
num = ActiveWorkbook.Worksheets.Count
ActiveWorkbook.Worksheets(num).Activate
End Sub
Sub Auto_Open()
Dim num As Integer
num = ActiveWorkbook.Worksheets.Count
ActiveWorkbook.Worksheets(num).Activate
End Sub
Subscrever:
Mensagens (Atom)