Ir ao conteúdo
  • Cadastre-se

Formula col. P/indicar a periodicidade


silvajmp0

Posts recomendados

:DOlá pessoal, preciso da ajuda dos parceiros do fórum, tenho uma planilha na qual e utilizada para indicar a periodicidade de uma atividade, mas esta manual sempre tenho que pintar as células conforme a necessidade, muito trabalhoso.

Bom a minha necessidade se trata no seguinte:

Assim que digitamos a data da última execução na célula B3 e digitamos a periodicidade em dias na célula C3, as células D3 até NE3 terá que ter uma formula que condicione a data da ultima execução e some os dias de periodicidade.

Seja no exemplo em anexo, para entender melhor.

silva_jmp

http://www.4shared.com/file/q7fA1dyL/planilhando.html

Link para o comentário
Compartilhar em outros sites

Boa noite leno,

E mais ou menos isso, quando digito da data 01/08/2012 e a periodicidade e de 2 dias, quero que a célula correspondente do dia 01/08, 03/08, 05/08. . . seja pintada até dezembro;

Outro Exemplo: digito 01/08/2012 periodicidade e de 7 dias

Pintara as células que corresponde do dia 01/08/2012 depois dia 08/08/2012 e assim vai até dezembro.

Pode ser via macro ou formula, lembrando que quando eu apago a data e o dia da periodicidade as cores deverá também sumir.

silva_jmp

Link para o comentário
Compartilhar em outros sites

Amigo! Aconselho que, se possivel, voce altere um pouco a organização desta planilha.

Pois o fato de os meses serem várias colunas agrupadas complica um pouco.

Os meses poderiam ser outras planilhas (abas)?

Se possível, faça a alteração e poste novamente no sendspace.

De qualquer maneira ja começei o código levando em consideração que:

Plan1 = Janeiro e etc...

Plan13 = a planilha dos dados.

As datas nas planilhas estão formatados como números inteiros.


Sub pintar()
Dim I, Dat1, Dat2, Year1 As Integer
Dim Mydate As Date
Dim Mes As String
Dim Prenc As Boolean


Mydate = Selection + ActiveCell.Offset(0, 1).Value
Dat1 = DatePart("d", ActiveCell)
Dat2 = DatePart("d", Mydate)
Year1 = DatePart("m", ActiveCell)


Sheets(Year1).Activate
Range("a1").Select
Do While Prenc = False
If ActiveCell.Value <> Dat1 Then
ActiveCell.Offset(0, 1).Select
Else
ActiveCell.Offset(1, 0).Interior.ColorIndex = 3
Prenc = True
End If
Loop

Prenc = False

Do While Prenc = False
If ActiveCell.Value <> Dat2 Then
ActiveCell.Offset(0, 1).Select
Else
ActiveCell.Offset(1, 0).Interior.ColorIndex = 3
Prenc = True
End If
Loop
Sheets("Plan13").Activate
End Sub

Att,

Leno Mota.

Link para o comentário
Compartilhar em outros sites

:confused:Leno, muitas duvidas???

1-Quando você diz que é para colocar as datas dos meses em cada planilha (abas) é de forma de coluna: A1=01/01/2012, B2=02/01/2012... ou em linha A1=01/01/2012, A2=02/01/2012????

2-Na planilha Plan13=planilha dos dados, será onde vou digitar a data e a periodicidade???

3-O código e para colocar na Plan13 ou no Módulo???

silva_jmp

http://www.4shared.com/file/8Phom156/planilhando.html

Link para o comentário
Compartilhar em outros sites

Quase isso...

Na planilha de Janeiro: "A1" = 01, "B1" = 02, "C1" = 03 ...

Na planilha de Fevereiro: "A1" = 01, "B1" = 02, "C1" = 03 ...

Na plan13 voce poderá digitar a data e a periodicidade.

voce pode colocar num módulo e depois atribui-lo a um botão em plan13...

Lembrando que o mesmo não está 100%, mas já é um começo.

Att,

Leno Mota.

Ah! Fiz os ajustes para o casode o intervalo cruzar do final de um mes para o inicio de outro...


Option Explicit

Sub pintar()
Dim Dat1, Dat2, Year1 As Integer
Dim Mydate As Date
Dim Prenc As Boolean


Mydate = Selection + ActiveCell.Offset(0, 1).Value
Dat1 = DatePart("d", ActiveCell)
Dat2 = DatePart("d", Mydate)
Year1 = DatePart("m", ActiveCell)


Sheets(Year1).Activate
Range("a1").Select
Do While Prenc = False
If ActiveCell.Value <> Dat1 Then
ActiveCell.Offset(0, 1).Select
Else
ActiveCell.Offset(1, 0).Interior.ColorIndex = 3
Prenc = True
End If
Loop

Prenc = False

If Dat2 < ActiveCell.Value Then
Sheets(ActiveSheet.Index + 1).Select

Do While Prenc = False

If ActiveCell.Value <> Dat2 Then
ActiveCell.Offset(0, 1).Select
Else
ActiveCell.Offset(1, 0).Interior.ColorIndex = 3
Prenc = True
End If
Loop
End If
Sheets("Plan13").Activate
End Sub

Link para o comentário
Compartilhar em outros sites

Leno, beleza, coloquei conforme orientou referente ao números nas planilhas dos meses, coloquei o código no módulo, criei o botão na planinha Plan13, esta dando um erro, mas acredito que e porque não acabou de fazer o código ou não, outra pergunta e se eu digitar na plan13 "planilha de dados" na segunda linha a data e a periodicidade também funcionará??

Porque eu pretendo colocar várias atividades com data e periodicidades.

silva_jmp

http://www.4shared.com/file/j9DCNtQH/planilhando.html

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois...

Caro Silva.

Desculpa a demora, mas estou meio sem tempo.

Quando ao erro estava em:


Sheets("Plan13").Activate

Correto:


Sheets("Plan10").Activate

Aproveitei e fiz um novo para voce.


Option Explicit

Sub pintar()
Dim Dat2, Year1, W, X, Z As Integer
Dim Mydate As Date
Dim Prenc As Boolean

X = ActiveCell.Offset(0, 1).Value
Mydate = Selection
Dat2 = DatePart("d", Mydate)
Year1 = DatePart("m", ActiveCell)

For W = Year1 To 12
Sheets(W).Activate
Range("a1").Select

For Z = 1 To 31
If ActiveCell.Value <> vbNullString Then
If Z = Dat2 Then
ActiveCell.Offset(1, 0).Interior.ColorIndex = 3
Mydate = Mydate + X
Dat2 = DatePart("d", Mydate)
ActiveCell.Offset(0, 1).Activate
Else
ActiveCell.Offset(0, 1).Activate
End If
End If
Next Z

If Year1 < 13 Then
Year1 = Year1 + 1
End If
Next
MsgBox "Processo finalizado. ", vbOKOnly, "PROGRAMACAO"
End Sub

Caso a estrutura da planilha seja alterada (titulo, texto, nome, etc...), o código também deverá ser adequado.

Se fui útil, não esqueça de encerrar o tópico e marcar o polegar verde a sua direita.

Att,

Leno Mota.

Link para o comentário
Compartilhar em outros sites

Leno, boa noite

:confused:Coloquei o código da última postagem o erro ainda continua, quando eu clico no botão a macro esta indo para a planilha Dezembro e pintando a célula AD02.

:huh:Só para entender, a macro só funcionara em uma linha? Se eu quisesse colocar outros serviços em outras linhas com o mesmo critério de data e dias de periodicidade a macro esta preparada para executar desta forma?

silva_jmp

http://www.4shared.com/file/xeF_O5Bb/planilhando.html

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!