none
Dúvida criação de macro simples RRS feed

  • Pergunta

  • Exemplo planilha

    Hora inicial     Hora Final     Contexto           Evento

    10:10                  10:11    Forrageando             1

    10:10                  10:11    Forrageando             1

    10:10                  10:11    Aprovisionado           2

    10:12                  10:15     Briga                        3

    10:16                  10:17     aprovisionado          4

     Eu preciso preencher a coluna 'S' (Eventos), de acordo com as colunas D,E e F.  O evento continua sendo o mesmo se nao houver mudança de horario inicial(coluna D) e final (coluna E) e nem mudança no contexto(coluna F), conforme ilustra a imagem.

    Comecei a escrever o macro mas não estou nem um pouco familiarizado com essa linguagem, então é bastante provável que haja erros bobos com soluções triviais. Por isso peço encarecidamente a ajuda de vocês. obrigado

     


    Sub Classificaeventos()
    coluna = [D,E,F]

    For i = 1 To numero_de_linhas
    If [Cells(i, D) = Cells(i - 1, D)] And Cells(i, E) = Cells(i - 1, E) And Cells(i, F) = Cells(i - 1, F) Then Mantem_evento
    End If
    If Cells(i, D) >= Cells(i - 1, D) Or Cells(i, E) >= Cells(i - 1, E) Or Cells(i, F) <> Cells(i - 1, F) Then Muda evento
    End If



    Next i


    End Sub

    Sub Mantem_evento()
    coluna = [S]

    cell(i, S) = cell(i - 1, S)

    End Sub

    Sub Muda_evento()
    coluna = [S]
    cell(i, S) = cell(i - 1, S) + 1
    End Sub


    sexta-feira, 31 de março de 2017 01:01

Todas as Respostas

  • Ao inserir um código no fórum, utilize blocos de código. Para utilizar essa ferramenta, clique no botão cuja legenda é “Inserir bloco de código” na barra do editor de mensagens do fórum. Uma janela aparecerá onde você deverá colar seu código cru na caixa de texto à esquerda. Então, selecione a opção Vb.Net na caixa de combinação que você verá em cima à esquerda e depois clique no botão Inserir.

    ---

    Você não precisa de usar macros para resolver seu problema. Use uma fórmula.

    Coloque o valor 1 para o primeiro registro de eventos (suponha que esteja na célula D2)

    Então, em D3, escreva a fórmula:

    =D2+SE(E(A3=A2;B3=B2;C3=C2);0;1)

    Copie e cole a fórmula para baixo.


    http://www.ambienteoffice.com.br || Grupo de WhatsApp: https://chat.whatsapp.com/K1uey5Q4yJdKnsgWkVQAZG

    sexta-feira, 31 de março de 2017 18:49
    Moderador