Ir para conteúdo
Fórum Script Brasil
  • 0

Recuperar o valor da última célula na coluna B


Guest RogerioPontes

Pergunta

Guest RogerioPontes

Eu tenho um banco de dados no servidor I: que é atualizado periodicamente o valor da última célua na coluna B é a data da última atualisação. Estou precisando recuperar este valor através de uma MsgBox sem precisar abrir o arquivo BDComponente.

alguém poderia me ajudar, abaixo segue o codigo, quando a planilha esta aberta ele funciona, porem em outro arquivo que tem este código ele não me retorna o valor na MSGBOX.

Private Sub Workbook_Open()

Dim conn As New ADODB.Connection

Dim rst As New ADODB.Recordset

conn.CursorLocation = adUseClient

conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=I:\Oficina_Componentes\GESTAO\Componente\BDComponente.XLS;" & "Extended Properties=""Excel 8.0;HDR=Yes"";"

rst.Open "SELECT * FROM [Plan1$];", conn, adOpenKeyset, adLockOptimistic, adCmdText

MsgBox "Relatorio atualizado em" & Range("A65536").End(xlUp).Value

rst.Close

conn.Close

End Sub

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Olá RogerioPontes,

Pelo que percebi do seu código V. tem um WORKBOOK chamado "BDComponente.XLS" no directório "I:\Oficina_Componentes\GESTAO\Componente\" e quando V. o abre ele dá-lhe o valor que está na última célula não vazia, apartir da célula A65536 através da seguinte linha de código

MsgBox "Relatorio atualizado em" & Range("A65536").End(xlUp).Value
O problema é que V. está a usar um evento ( Sub Workbook_Open() ) que funciona a nível do WORKBOOK "BDComponente.XLS" e portanto só funciona UMA vez e é quando V. o abre. Para V. perceber melhor experimente abrir um novo workbook, vá ao Editor do Visual Basic e no ThisWorkbook insira o seguinte código
Private Sub Workbook_Open()
Worksheets("Sheet2").Activate
Worksheets("Sheet1").Activate
End Sub
Nas planilhas "Sheet1" e "Sheet2" insira em cada uma delas o seguinte código
Private Sub Worksheet_Activate()
MsgBox "A planilha " & ActiveSheet.Name & " foi actualizada em " & Range("A65536").End(xlUp).Value
End Sub

e na coluna A de cada uma das planilhas escreva um número qualquer.

Feche gravando-o e reabra. Vai ver que ele lhe dá uma mensagem com esses números para cada uma das planilhas (a 1 e a 2).

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...