Este fórum foi descontinuado. LEIA AQUI e participe da Comunidade BABOO :)

Ir para conteúdo
Victor_Mota

Preencher células após inserir data em outra celula no excel

Mensagem Recomendada

Ola, poderiam me ajudar?
Preciso de uma rotina em VBA para preencher determinado intervalo de células (Em colunas) com um "X" logo após a inserção de determinada data em outra célula. E que após esse preenchimento as células desses intervalos possam ser editadas e permanecerem com esta edição.

Vamos ver se consigo explicar melhor: Por exemplo, ao inserir uma data (01/05/18 início  -  15/15/18 fim) nas células C3 e D3 o intervalo de C5:C60 seja preenchido com a letra 'x', no entanto se precisar apagar um dos 'x' em uma das células que ela continue vazia.

Anexo um exemplo a seguir

 

Desde já agradeço!!

EX FERIAS.xlsx

Compartilhar este post


Link para o post
Compartilhar em outros sites
1 hora atrás, Victor_Mota disse:

Por exemplo, ao inserir uma data (01/05/18 início  -  15/15/18 fim) nas células C3 e D3 o intervalo de C5:C60 seja preenchido com a letra 'x'

 

No intervalo C5:C7 há datas. Você quer substituir as datas por X, confirma  ?

Ainda, qual é o critério que você utilizou para relacionar inserção de dados em C3:D3 com a inserção de X em C5:C7 ? Por exemplo, se a inserção de dados ocorrer em C4:D4, em qual intervalo você quer colocar X ?


 

Osvaldo

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
18 horas atrás, osvaldomp disse:

No intervalo C5:C7 há datas. Você quer substituir as datas por X, confirma  ?

Ainda, qual é o critério que você utilizou para relacionar inserção de dados em C3:D3 com a inserção de X em C5:C7 ? Por exemplo, se a inserção de dados ocorrer em C4:D4, em qual intervalo você quer colocar X ?

Obrigado pelo retorno Osvaldo,

A planilha em questão trata-se de controle de férias, sendo assim, criei uma Time Line onde coloco as das de inicio e fim nas células C3  E  D3  e nas colunas a seguir tenho todos os dias dispostos no ano; após rodar a macro preciso que esta, leia as datas em C3 e D3 e preencha com um "X" cada dia dentro do período informado.
Envio um anexo de como gostaria que fosse preenchido com o "X" (células coloridas).

Acredito que tenha ficado mais claro agora.

Obrigado.

Exemplo.Jpeg

Compartilhar este post


Link para o post
Compartilhar em outros sites

Victor, por favor anexe aqui no fórum uma amostra do seu arquivo Excel, pois para efeitos de testar possíveis soluções imagens de planilha não servem.

Ainda, como você pretende que a macro seja acionada, por exemplo automaticamente ao inserir as datas nas colunas C:D, ou outra forma?

Alguma razão para você pedir uma solução via macro? Seria aceitável uma solução por fórmulas?


 

Osvaldo

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
1 hora atrás, osvaldomp disse:

Victor, por favor anexe aqui no fórum uma amostra do seu arquivo Excel, pois para efeitos de testar possíveis soluções imagens de planilha não servem.

Ainda, como você pretende que a macro seja acionada, por exemplo automaticamente ao inserir as datas nas colunas C:D, ou outra forma?

Alguma razão para você pedir uma solução via macro? Seria aceitável uma solução por fórmulas?

Osvaldo, conforme solicitado segue em anexo, plan teste.
Seria interessante o acionamento através da inserção de dados nas colunas "C:D".
Sim, seria aceitável a utilização de fórmulas ao invés de rotinas VBA, porém pretendo ampliar meus poucos conhecimentos na ferramenta; Caso haja tempo e disposição e não for um incomodo, ficaria muito agradecido em ver seu funcionamento através de funções!

Att,

EX FERIAS.xlsx

Compartilhar este post


Link para o post
Compartilhar em outros sites

1. opção por macro ~~~> cole o código abaixo no módulo da planilha Férias_TimeLine_T4 (clique com o direito sobre a guia daquela planilha e escolha Exibir Código)

Private Sub Worksheet_Change(ByVal Target As Range)
 Dim c As Long
 If Target.Count > 1 Then Exit Sub
 If Target.Column <> 5 And Target.Column <> 8 Then Exit Sub
 If Target.Value = "" Or Target.Offset(, -1).Value = "" Then Exit Sub
  c = Range(Cells(1, 10), Cells(1, Columns.Count).End(1)).Find(Target.Offset(, -1).Value).Column
  Cells(Target.Row, c).Resize(, Target.Offset(, 1).Value) = "X"
End Sub


funcionamento - o código lançará X nas células correspondentes ao período das férias inserido em D:E ou em G:H. O lançamento será automático após o preenchimento da data de "Fim", colunas E ou H, se a data de "Início", colunas D ou G, já estiver preenchida.
obs.
1. no caso de reprogramar as férias, limpar antes manualmente a programação existente
2. se a data de "Início" não for encontrada na linha 1 o código retornará erro

 

2. opção por fórmulas ~~~> cole a fórmula abaixo em J3, em seguida arraste para a direita e para baixo.

=SE(OU(E(J$1>=$D3;J$1<=$E3);E(J$1>=$G3;J$1<=$H3));"X";"")


 

Osvaldo

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia,

Obrigado pela ajuda Osvaldo!

Optei por utilizar a segunda opção, acredito que o dinamismo da planilha que estou trabalhado fica melhor com a utilização de funções ao invés de macro!

Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×
×
  • Criar Novo...