Ir ao conteúdo

Excel Selecionar Célula/Planilha c/ Base valor célula via Excel VBA Macro


Ir à solução Resolvido por Visitante,

Posts recomendados

Postado

Pedido de ajuda para: Selecionar uma Célula de uma planilha, com base na valor de outra célula em outra planilha via código Excel VBA (Macro). Conforme descrevo a seguir:

 

Boa tarde,

 

Prezados(as) Sr's(as),


Estou montando um Projeto no Excel, e, recentemente me deparei com uma situação complicada que está me dando muito trabalho.

A situação é a seguinte:

 

Em uma Planilha Excel, chamada (Calendário), Tenho uma espécie de calendário... (Padrão Igual no Computador;  7 Dias por Linha; Cada linha tem Início Domingo e término no Sábado).
Tenho uma espécie de agenda, (Em outras Planilhas) chamadas (Agendas Mensais), "São 12 Planilhas - Referente 12 Meses (Janeiro à Dezembro)" onde agendo minhas obrigações/Compromissos Diários;
Depois vinculei essas informações ao meu calendário, onde, conforme o dia no calendário, ele carrega em uma célula próximo à esse dia, a quantidade de compromissos/obrigações que tenho nesse mesmo dia;

 

Até aqui tudo Ok...

 

O Desafio que estou tendo é o seguinte: Quero usar uma macro, ativada por um botão (Forma), na Planilha "Calendário", onde, conforme o dia em que se encontra o botão fixado sobre ele, ao clicar, eu seja encaminhado para o mesmo referido dia, entre as Planilhas "Agenda Mensal" a que este referido dia se refere (Onde tenho em detalhes as minhas obrigações/compromissos desse referido dia).

 

Em sintese, Criar uma macro apenas de "seleção" foi tranquilo. O Detalhe que complica é que, o Calendário em si é flexível, ou seja,  as datas mudam conforme o ano. Exemplo: Num ano o dia (1 de Janeiro) está na Segunda-feira, no outro ano esse mesmo dia pode cair em um Domingo ou Terça-feira (Hipotéticamente), assim, um botão onde a Macro é configurada para uma (Seleção fixa) já não daria muito certo. Por isso, peço sua ajuda para encontrar uma forma de escrever um Código que me mova da Planilha "Calendário", para as  "Agendas Mensais", com base no dia descrito na Célula em que o botão está fixado sobre ela.
Acrescento: Criei 365 ou 366 botões, referentes a cada dia do ano, quais configurei sobre cada dia do calendário, com macro de seleção para todos, porém são macros fixas, se o dia muda de local, o código desse botão não muda o encaminhamento para direcionar-me conforme o dia que está na célula em que o botão está fixado sobre ela.

Não sei se consegui detalhar adequadamente minha necessidade mas... Em resumo é isso. Podem me ajudar, por favor?
 

Postado

Sugestão: disponibilize aqui no fórum uma amostra do seu arquivo Excel.

Postado
Em 15/07/2019 às 16:50, Gino Perseguim disse:

Pedido de ajuda para: Selecionar uma Célula de uma planilha, com base na valor de outra célula em outra planilha via código Excel VBA (Macro). Conforme descrevo a seguir:

 

Boa tarde,

 

Prezados(as) Sr's(as),


Estou montando um Projeto no Excel, e, recentemente me deparei com uma situação complicada que está me dando muito trabalho.

A situação é a seguinte:

 

Em uma Planilha Excel, chamada (Calendário), Tenho uma espécie de calendário... (Padrão Igual no Computador;  7 Dias por Linha; Cada linha tem Início Domingo e término no Sábado).
Tenho uma espécie de agenda, (Em outras Planilhas) chamadas (Agendas Mensais), "São 12 Planilhas - Referente 12 Meses (Janeiro à Dezembro)" onde agendo minhas obrigações/Compromissos Diários;
Depois vinculei essas informações ao meu calendário, onde, conforme o dia no calendário, ele carrega em uma célula próximo à esse dia, a quantidade de compromissos/obrigações que tenho nesse mesmo dia;

 

Até aqui tudo Ok...

 

O Desafio que estou tendo é o seguinte: Quero usar uma macro, ativada por um botão (Forma), na Planilha "Calendário", onde, conforme o dia em que se encontra o botão fixado sobre ele, ao clicar, eu seja encaminhado para o mesmo referido dia, entre as Planilhas "Agenda Mensal" a que este referido dia se refere (Onde tenho em detalhes as minhas obrigações/compromissos desse referido dia).

 

Em sintese, Criar uma macro apenas de "seleção" foi tranquilo. O Detalhe que complica é que, o Calendário em si é flexível, ou seja,  as datas mudam conforme o ano. Exemplo: Num ano o dia (1 de Janeiro) está na Segunda-feira, no outro ano esse mesmo dia pode cair em um Domingo ou Terça-feira (Hipotéticamente), assim, um botão onde a Macro é configurada para uma (Seleção fixa) já não daria muito certo. Por isso, peço sua ajuda para encontrar uma forma de escrever um Código que me mova da Planilha "Calendário", para as  "Agendas Mensais", com base no dia descrito na Célula em que o botão está fixado sobre ela.
Acrescento: Criei 365 ou 366 botões, referentes a cada dia do ano, quais configurei sobre cada dia do calendário, com macro de seleção para todos, porém são macros fixas, se o dia muda de local, o código desse botão não muda o encaminhamento para direcionar-me conforme o dia que está na célula em que o botão está fixado sobre ela.

Não sei se consegui detalhar adequadamente minha necessidade mas... Em resumo é isso. Podem me ajudar, por favor?
 

 

Este em Anexo, é a parte que preciso do Código.

0 (1).png

0 (2).png

0 (3).png

0 (4).png

Agenda Teste.rar

  • Solução
Postado
Em 15/07/2019 às 16:50, Gino Perseguim disse:

Quero usar uma macro, ativada por um botão (Forma), na Planilha "Calendário", onde, conforme o dia em que se encontra o botão fixado sobre ele, ao clicar, eu seja encaminhado para o mesmo referido dia, entre as Planilhas "Agenda Mensal" ...

 

Criei 365 ou 366 botões, referentes a cada dia do ano, ...
A solução abaixo não utiliza botões. Mas se por alguma razão você quiser mantê-los na planilha, sem problemas. :tw_tounge_wink:

 

Olá, Sr. Gino.

Segue uma macro que faz o trabalho pretendido. Cole uma cópia do código abaixo (one line code) no módulo da planilha Calendário. Para acessar esse módulo dê duplo clique no nome daquela planilha no editor de VBA.

 

funcionamento - na planilha Calendário aplique duplo clique na célula que mostra o dia que você deseja ativar, então será ativada a planilha correspondente ao mês, e a linha que contém o dia clicado será posicionada no topo da tela; se a célula clicada não contiver uma data válida para ser encontrada, aí o código retornará erro, nesse caso basta clicar em Fim.

 

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
 Application.Goto Reference:=Sheets(Evaluate("text(" & Target.Address & ",""mmmm"")") & " " & Format(Target.Value, "mmmm")).Range(Sheets(Evaluate("text(" & Target.Address & ",""mmmm"")") & " " & Format(Target.Value, "mmmm")).[E:E].Find(Target.Value, LookIn:=xlValues).Address).Offset(, -4), scroll:=True
End Sub

 

Postado
agora, osvaldomp disse:

 

Olá, Sr. Gino.

Segue uma macro que faz o trabalho pretendido. Cole uma cópia do código abaixo (one line code) no módulo da planilha Calendário. Para acessar esse módulo dê duplo clique no nome daquela planilha no editor de VBA.

 

funcionamento - na planilha Calendário aplique duplo clique na célula que mostra o dia que você deseja ativar, então será ativada a planilha correspondente ao mês, e a linha que contém o dia clicado será posicionada no topo da tela; se a célula clicada não contiver uma data válida para ser encontrada, aí o código retornará erro, nesse caso basta clicar em Fim.

 


Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
 Application.Goto Reference:=Sheets(Evaluate("text(" & Target.Address & ",""mmmm"")") & " " & Format(Target.Value, "mmmm")).Range(Sheets(Evaluate("text(" & Target.Address & ",""mmmm"")") & " " & Format(Target.Value, "mmmm")).[E:E].Find(Target.Value, LookIn:=xlValues).Address).Offset(, -4), scroll:=True
End Sub

 

 

Boa Noite Sr. Osvaldo,

Funcionou com perfeição!

Atendeu em 100% o que eu preciso.

Muito Obrigado!!! Show de Profissionalismo.

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

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!