Ir ao conteúdo

Excel Como fazer macro para selecionar uma celula de datas em relação a data de hoje.


Ir à solução Resolvido por Visitante,

Posts recomendados

Postado

Quero que a macro selecione em um intervalo com células que estão com datas, uma célula com a data atual de hoje, para colocar um resultado de um valor de soma na célula que se encontra ao lado direito da célula com a data atual de hoje...

entendo um pouco de VBA, mas tive muita dificuldade em relação a isso... tentei usar Procv, indice + corresp, mas não consegui nenhum resultado nisso...

 

Alguém pode me ajudar?

20200501_220747.jpg

Postado

É exatamente o que faz o anexo. Veja que abre selecionando o registro com a data atual. Veja a macro e adapte a sua necessidade. 
no exemplo está selecionando a célula adjacente. 

  • Obrigado 1
Postado

@Muca Costa estou entendendo aqui amigo desculpa minha burrice kkkk@Muca Costa não entendi amigo?

No caso eu quero criar uma macro que seleciona automaticamente a celula que estiver com a data de hoje 

adicionado 4 minutos depois

No caso amigo como faço para a macro selecionar apenas uma celula que se encontre esse intervalo de datas? 

20200501_220747.jpg

adicionado 13 minutos depois

Porque no caso desse anexo está apenas localizada na coluna "A"

No caso eu teria que colocar nessa parte onde está "A" o intervalo que eu quero que procure?

P= Planilha1.Cells(Ross.Count, "A") .End(xlUp). Row

 

 

No intervalo que eu quero tem várias colunas... será que vai funcionar?

adicionado 56 minutos depois
1 hora atrás, Luam disse:

@Muca Costa estou entendendo aqui amigo desculpa minha burrice kkkk@Muca Costa não entendi amigo?

No caso eu quero criar uma macro que seleciona automaticamente a celula que estiver com a data de hoje 

adicionado 4 minutos depois

No caso amigo como faço para a macro selecionar apenas uma celula que se encontre esse intervalo de datas? 

20200501_220747.jpg

adicionado 13 minutos depois

Porque no caso desse anexo está apenas localizada na coluna "A"

No caso eu teria que colocar nessa parte onde está "A" o intervalo que eu quero que procure?

P= Planilha1.Cells(Ross.Count, "A") .End(xlUp). Row

 

 

No intervalo que eu quero tem várias colunas... será que vai funcionar?

Está dando um erro quando passa pelo intervalo... da objeto não está aceitando comando ...

Postado

Considerando que as datas estejam no intervalo D3:J7

 

Sub DtVbaDJ()

Dim X As Range, P As String

On Error Resume Next

P = Planilha1.Cells(Rows.Count, "D").End(xlUp).Row

sbx = Date

With ThisWorkbook.Sheets("Planilha1").Range("D3:J" & P)

    Set sby = .Find(sbx, , xlValues, xlWhole, , , False)

End With

If Not sby Is Nothing Then

    sby.Select

End If

End Sub

  • Curtir 1
Postado

@Muca Costa

Sub DtVbaDJ()   

Dim X As Range, P As String

     On Error Resume Next

     P = Planilha4.Cells(Rows.Count, "D6,D8,D10,D12,D14,G6,G8,G10,G12,G14,J6,J8,J10,J12,J14,M6,M8,M10,M12,M14,P6,P8,P10,P12,P14,S6,S8,S10,S12,S14,S16").End(xlUp).Row

      sbx = Date

    With ThisWorkbook.Sheets("Planilha4").Range("D6,D8,D10,D12,D14,G6,G8,G10,G12,G14,J6,J8,J10,J12,J14,M6,M8,M10,M12,M14,P6,P8,P10,P12,P14,S6,S8,S10,S12,S14,S16" & P)

    Set sby = .Find(sbx, , xlValues, xlWhole, , , False)

      End With

   If Not sby Is Nothing Then

    sby.Select

   End If
 

tentei fazer assim mas não aconteceu nada ... ela não selecionou nem a célula da data e nem a célula que fica ao lado da data

image.thumb.png.0fb832ae8f425974413d9c474f8b1354.png

o intervalo das celulas com o conteudo das datas sao "D6,D8,D10,D12,D14,G6,G8,G10,G12,G14,J6,J8,J10,J12,J14,M6,M8,M10,M12,M14,P6,P8,P10,P12,P14,S6,S8,S10,S12,S14,S16"

no caso o codigo da macro tem que pegar a referencia da celula com a data atual e colocar o resultado da soma ao lado da celula, no caso esse intervalo que eu citei aqui é somente das celulas com as datas... depois estava pensado em usar um offset para selecionar o resultado na celula ao lado

Postado
28 minutos atrás, Muca Costa disse:

Melhor seria disponibilizar a planilha e explicar qual sua real pretensão...

Como faço para mandar para você?

Quer que eu mande por aqui ou pelo whats?

Postado
1 minuto atrás, Luam disse:

Como faço para mandar para você?

Quer que eu mande por aqui ou pelo whats?

 

Veja no final da minha postagem.

 

Experimente:

Sub BuscaDataInsereFórmula()
 [D6:S16].Find(Date, , xlValues).Offset(, 1) = "=SUM(A1:A10)"
End Sub

 

Postado
29 minutos atrás, Muca Costa disse:

Melhor seria disponibilizar a planilha e explicar qual sua real pretensão...

Vou explicar ...

Bom na planilha como você viu ali na imagem tem uma sequência de dias, mes e ano ... ou seja tem as datas dos dias do mês de 1 a 31 dependendo de cada mês... Bom eu quero trabalhar nas células que ficam ao lado direto dessas células que tem as datas de dias, mas quero que a macro pegue a referência da célula que estiver com a data atual de hoje, quero que mesmo que tenha algum valor na célula que fica ao lado direto da data Fazer a soma de um valor determinado mais o valor que tiver na célula, se caso tiver valor nela... se não tiver valor nela, somente adicionar o valor determinado ... em reais ...

Postado

substitua o valor 100 pelo tal "valor determinado

[D6:S16].Find(Date, , xlValues).Offset(, 1) = [D6:S16].Find(Date, , xlValues).Offset(, 1) + 100 

 

Postado
1 hora atrás, osvaldomp disse:

substitua o valor 100 pelo tal "valor determinado


[D6:S16].Find(Date, , xlValues).Offset(, 1) = [D6:S16].Find(Date, , xlValues).Offset(, 1) + 100 

 

caraca amigo, acho que falta pouco para funcionar ......

image.png.e3a5e05f77dfdad0bc067987d9de3562.png

ele so esta pedindo algo ai, mas nao sei o que é... ainda sou um pouco leigo nesse assunto de VBA, algumas coisas basicas eu consigo, mas fiquei preso nesse comando...

Postado

Parece que a data de hoje (04/05/2020) não foi encontrada no intervalo D6:S16.

 

Faça o teste deste código isolado, sem estar embutido em outro, como você fez, e veja se funciona.
Se não funcionar então sugiro que você disponibilize uma amostra do seu arquivo Excel com o código instalado (imagem não serve).

Sub BuscaDataInsereFórmula()
 [D6:S16].Find(Date, , xlValues).Offset(, 1) = [D6:S16].Find(Date, , xlValues).Offset(, 1) + 100
End Sub

 

Postado
1 hora atrás, osvaldomp disse:

Parece que a data de hoje (04/05/2020) não foi encontrada no intervalo D6:S16.

 

Faça o teste deste código isolado, sem estar embutido em outro, como você fez, e veja se funciona.
Se não funcionar então sugiro que você disponibilize uma amostra do seu arquivo Excel com o código instalado (imagem não serve).


Sub BuscaDataInsereFórmula()
 [D6:S16].Find(Date, , xlValues).Offset(, 1) = [D6:S16].Find(Date, , xlValues).Offset(, 1) + 100
End Sub

 

image.png.e57ec91f674e206708666f284cbdfd78.pngimage.thumb.png.baef45b1307ffe5c60232d51655f10b5.png

 posso te mandar o anexo no teu e-mail? 

não estou conseguindo enviar por aqui

manda teu e-mail por gentileza ?

 

Postado
50 minutos atrás, Luam disse:

não estou conseguindo enviar por aqui

 

6 horas atrás, osvaldomp disse:

Veja no final da minha postagem. ~~~> Lembra disso ? (post #10)

 

Dica - para responder clique em Responder, abaixo da última postagem.

Postado

Se você anexar a planilha vai ficar mais fácil alguém te ajudar.

 

Para anexar arquivos aqui no fórum ~~~> Responder / escolha os arquivos...

Arquivos com macros devem ser compactados antes de anexar.

Postado

@Muca Costa

Em 02/05/2020 às 22:46, Luam disse:

@Muca Costa estou entendendo aqui amigo desculpa minha burrice kkkk@Muca Costa não entendi amigo?

No caso eu quero criar uma macro que seleciona automaticamente a celula que estiver com a data de hoje 

adicionado 4 minutos depois

No caso amigo como faço para a macro selecionar apenas uma celula que se encontre esse intervalo de datas? 

20200501_220747.jpg

adicionado 13 minutos depois

Porque no caso desse anexo está apenas localizada na coluna "A"

No caso eu teria que colocar nessa parte onde está "A" o intervalo que eu quero que procure?

P= Planilha1.Cells(Ross.Count, "A") .End(xlUp). Row

 

 

No intervalo que eu quero tem várias colunas... será que vai funcionar?

adicionado 56 minutos depois

Está dando um erro quando passa pelo intervalo... da objeto não está aceitando comando ...

 

3 horas atrás, Muca Costa disse:

Se você anexar a planilha vai ficar mais fácil alguém te ajudar.

 

Para anexar arquivos aqui no fórum ~~~> Responder / escolha os arquivos...

Arquivos com macros devem ser compactados antes de anexar.

Login:admin

Senha: 123

Senha VBA: 387622

LuamTrader.rar

  • Solução
Postado
Sub BuscaDataInsereFórmula()
  ActiveSheet.Protect userinterfaceonly:=True
 [ D6:S16].Find(Format(Date, "dd/mm/yy"), , xlValues).Offset(, 1) = [D6:S16].Find(Format(Date, "dd/mm/yy"), , xlValues).Offset(, 1) + 100
End Sub

 

Postado
31 minutos atrás, osvaldomp disse:

Sub BuscaDataInsereFórmula()
  ActiveSheet.Protect userinterfaceonly:=True
 [ D6:S16].Find(Format(Date, "dd/mm/yy"), , xlValues).Offset(, 1) = [D6:S16].Find(Format(Date, "dd/mm/yy"), , xlValues).Offset(, 1) + 100
End Sub

 

sr.OSVALDO  não tenho palavras para agradecer!!!!! você é ninja man, cara nunca que eu iria descobrir que era dessa forma... agradeço imensamente a Deus pela sua vida, você não sabe o quanto me ajudou com esse comando, estava já 2 semanas e não tinha conseguido, dai você vem em mais ou menos 24 horas e resolve meu problema que era de 2 semanas...

você é o cara, merece todo o meu respeito e admiração.

image.png.8c1f5a46c19334d99b5ecee650186058.png

adicionado 9 minutos depois

               RESOLVIDO !!!!!!!!!!!! 

 

 

não sei como faço para deixar o tópico como resolvido?

ou é somente deixar como está?

Postado

Olá, Luam.

Ficamos contentes por você ter resolvido a sua demanda.

E obrigado por nos informar.

 

God bless you too. 🙏👊

Take care 😷

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!