none
Mostrar o ultimo registro (Data) RRS feed

  • Pergunta

  • Boa tarde.

    Tenho uma pasta de trabalho com duas planilhas (Principal e dados) Na planilha principal tenho os campos:
    * Projeto
    * Objetivo
    * Historico

    Criei um formulário para atualização de status dos projetos, neste formulário tenho os seguintes campos:
    * Combo que busca e ordena o nome de todos os projetos. 
    * Campo texto para atualização do historico do projeto.
    * Botão salvar.

    Salvando o status do projeto ele armazena na planilha dados as seguintes informações: Projeto, data, historico.

    Gostaria de mostrar na planilha Principal apenas o ultimo status atualizado (planilha dados) de cada projeto.

    Alguém tem alguma idéia?

    Muito obrigado.

    Abraço, Daniel

     

     

    segunda-feira, 14 de novembro de 2011 16:34

Respostas

  • Suponha que, ao clicar em Salvar, ele inclua, por ordem, na Planilha Alterações o Projeto na coluna A, Data na coluna B e Histórico na coluna C, bastaria você buscar a última linha da Planilha Alterações e mostrar as informações na Planilha Início, por exemplo:

    dim r as long

    dim sProjeto as string

    dim dt as date

    dim sHistórico as string

    with thisworkbook.sheets("Alterações")

    r = .cells(.rows.count,"A").end(xlup).row

    sprojeto = .cells(r,"A")

    dt = .cells(r,"B")

    sHistórico = .cells(r,"C")

    end with

    'Então, na Planilha Início:

    with ThisWorkbook.sheets("Início")

    .range("A1") = sprojeto

    .range("A2") = dt 'Esta célula deve estar formatada como data

    .range("A3") = shistórico.

    'ou, simplesmente, use apenas esse código:

    dim r as long

    with thisworkbook.sheets("Alterações")

    r = .cells(.rows.count,"A").end(xlup).row

    thisworkbook.sheets("Início").range("A1") = .cells(r,"A")

    thisworkbook.sheets("Início").range("A2") =  = .cells(r,"B")

    thisworkbook.sheets("Início").range("A3") =  = .cells(r,"C")

    end with


    Felipe Costa Gualberto - http://www.ambienteoffice.com.br
    • Marcado como Resposta lDaniel quarta-feira, 16 de novembro de 2011 17:49
    terça-feira, 15 de novembro de 2011 13:22
    Moderador
  • Sub Exemplo()
        Dim rng As Range
        Dim r As Long
        Dim sProcura As String
        
        sProcura = "projeto2"
        
        With Sheets("Plan1").Columns("A")
            Set rng = .Find(sProcura, .Cells(1), xlValues, xlWhole, xlRows, xlPrevious, True)
        End With
        If rng Is Nothing Then
            'Não foi encontrado o projeto desejado, logo, não há histórico
        Else
            r = rng.Row
            'r é a linha do último registro do projeto2
        End If
    End Sub

    Felipe Costa Gualberto - http://www.ambienteoffice.com.br
    • Marcado como Resposta lDaniel quarta-feira, 16 de novembro de 2011 17:50
    quarta-feira, 16 de novembro de 2011 13:58
    Moderador

Todas as Respostas

  • Suponha que, ao clicar em Salvar, ele inclua, por ordem, na Planilha Alterações o Projeto na coluna A, Data na coluna B e Histórico na coluna C, bastaria você buscar a última linha da Planilha Alterações e mostrar as informações na Planilha Início, por exemplo:

    dim r as long

    dim sProjeto as string

    dim dt as date

    dim sHistórico as string

    with thisworkbook.sheets("Alterações")

    r = .cells(.rows.count,"A").end(xlup).row

    sprojeto = .cells(r,"A")

    dt = .cells(r,"B")

    sHistórico = .cells(r,"C")

    end with

    'Então, na Planilha Início:

    with ThisWorkbook.sheets("Início")

    .range("A1") = sprojeto

    .range("A2") = dt 'Esta célula deve estar formatada como data

    .range("A3") = shistórico.

    'ou, simplesmente, use apenas esse código:

    dim r as long

    with thisworkbook.sheets("Alterações")

    r = .cells(.rows.count,"A").end(xlup).row

    thisworkbook.sheets("Início").range("A1") = .cells(r,"A")

    thisworkbook.sheets("Início").range("A2") =  = .cells(r,"B")

    thisworkbook.sheets("Início").range("A3") =  = .cells(r,"C")

    end with


    Felipe Costa Gualberto - http://www.ambienteoffice.com.br
    • Marcado como Resposta lDaniel quarta-feira, 16 de novembro de 2011 17:49
    terça-feira, 15 de novembro de 2011 13:22
    Moderador
  • Oi Felipe, obrigado pela resposta!

    Desta forma vou mostrar apenas a ultima atualização. Acho que não expliquei direito.

    Na planilha principal eu tenho vários projetos, criei um formulário para atualização dos projetos, este formulário salva as informações na planilha dados sequencialmente ex:

    projeto1 | 10/11/2011 | Definição do escopo
    projeto1 | 12/11/2011 | Escopo aprovado
    projeto2 | 14/11/2011 | Aguardando aprovação de verba
    projeto1 | 16/11/2011 | Escopo definido, equipes de infraestrutura avaliando

    Na planilha principal que preciso mostrar a ultima atualização de cada projeto, no caso
    Projeto1 - Escopo definido, equipes de infraestrutura avaliando
    Projeto2 - Aguardando aprovação de verba

    Obrigado.

    Abraço

    quarta-feira, 16 de novembro de 2011 13:27
  • Sub Exemplo()
        Dim rng As Range
        Dim r As Long
        Dim sProcura As String
        
        sProcura = "projeto2"
        
        With Sheets("Plan1").Columns("A")
            Set rng = .Find(sProcura, .Cells(1), xlValues, xlWhole, xlRows, xlPrevious, True)
        End With
        If rng Is Nothing Then
            'Não foi encontrado o projeto desejado, logo, não há histórico
        Else
            r = rng.Row
            'r é a linha do último registro do projeto2
        End If
    End Sub

    Felipe Costa Gualberto - http://www.ambienteoffice.com.br
    • Marcado como Resposta lDaniel quarta-feira, 16 de novembro de 2011 17:50
    quarta-feira, 16 de novembro de 2011 13:58
    Moderador
  • Muito obrigado Felipe,

    Juntei suas duas respostas, fiz um loop para passar projeto por projeto e esta 100% funcional.

    Abraço

    quarta-feira, 16 de novembro de 2011 17:51