Proposed Dúvida com VBA no Excel

  • segunda-feira, 29 de agosto de 2011 19:50
     
     

    Olá colegas,

     

    Preciso da ajuda de vocês. Sou iniciante em programação, principalmente em VBA, tenho a seguinte dificuldade:

     

    Eu preciso criar no Excel uma planilha para atendimento, isso eu já fiz, até a parte de programação, já esta quase pronta, só falta um detalhe que é muito importante, é saber como associar um botão a uma célula, eu já coloquei na célula o botão, já esta criado, mas ele está "digamos" sobre a celula, e não atribuído a ela.

     

    O meu algoritmo faz o seguinte: 

     

    Sub Inicio_de_Atendimento()

     

        If Range("D2") = Blank Then

        Range("D2").Value = Date

        Else

        MsgBox "Você já preencheu este dado"

        End If

        If Range("E2") = Blank Then

        Range("E2").Value = Time

        Else

        MsgBox "Você já preencheu este dado"

        End If

    End Sub

     

    **** Resumidamente, esse algoritmo verifica se a célula "tal" está em branco, se o usuário clicar e estiver em branco então o código é executado e preenche automaticamente a data atual do sistema na célula D2, e o Horario Atual na célula E2. Se já estiverem preenchidas estas células então exibe a mensagem ao usuário de que a célula já foi preenchida.

    O objetivo desse código é mostrar o tempo de atendimento total para o usuário. Por exemplo: Ele atende o telefone e clica no botão que nomeie de Iniciar, ao clicar no botão, a macro atribuída a esse botão preenche Data na coluna D e horário da coluna E, o problema é que tenho que colocar explicitamente a linha das colunas, por exemplo, esse codigo que mostrei acima, eu atribuo  uma célula, e se eu quiser usálo em outro, tenho que trocar o D2 e o E2 para D3 e E3, e assim por diante, ou seja pra aplicar isso em toda a planilha é totalmente inviável, se não terei que criar aproximadamente 65 mil botões e 65 mil macros, uma com a referencia de cada linha.

    Se vocês tiverem outra opção, ou sugestão melhor para alcançar o objetivo, eu aceito. O objetivo é o usuário clicar em um botão Iniciar e um outro botão na ultima coluna de Stop, assim que ele clica no iniciar tem que marcar a data e hora nas colunas D (data) e E (horário), e ai no final um botão Stop que marca a hora que terminou o atendimento, e uma ultima coluna que é o tempo final - tempo incial, assim obtenho o tempo de atendimento. 

     

    Vocês podem me ajudar? Acho que expliquei bem...

    • Movido Hezequias VasconcelosModerator sexta-feira, 22 de junho de 2012 20:35 Questão relacionada ao produto VBA (De:Office - Geral)
    • Movido Heloisa Pires quarta-feira, 27 de junho de 2012 12:13 dúvida com VBA (De:VB.NET e Visual Basic)
    •  

Todas as Respostas

  • sexta-feira, 22 de junho de 2012 20:34
    Moderador
     
     

    Olá Alexandre, boa tarde.

    Estou movendo seu post para o fórum especializado.


    Hezequias Vasconcelos

  • quinta-feira, 28 de junho de 2012 02:46
     
     Resposta Proposta

    No VBA os objetos (uma Planilha é um objeto) possuem eventos. Os eventos são rotinas que são executadas quando ocorre alguma interação de um usuário (ou de uma macro) num objeto.

    Pelo que entendi, você quer executar uma macro quando se seleciona uma célula.

    Verifique o conteúdo da página http://www.ambienteoffice.com.br/officevba/modulos_em_vba/#inserir_codigo_num_objeto e tente adaptar seu código. Se não conseguir mesmo assim, volte a postar neste mesmo tópico.


    Felipe Costa Gualberto - http://www.ambienteoffice.com.br