Notifications
Clear all

Gravar na celula ativa o caminho completo do arquivo

25 Posts
2 Usuários
0 Reactions
3,893 Visualizações
(@paulo-reis)
Posts: 0
New Member
Topic starter
 

Preciso da ajuda do fórum para a solução do seguinte problema:
Na Plan1 tenho os campos começando da coluna A até E (CODIGO, DESCRIÇÃO, DATA DA OCORRÊNCIA, TIPO DA OCORRÊNCIA, LINK DO DOCUMENTO). O campo CÓDIGO é auto numérico começando no formato "00001" e assim por diante.
Na célula da coluna E (LINK DO DOCUMENTO) preciso criar uma forma de ao acionar a célula ativa da coluna E, correspondente ao código selecionado, um procedimento seja executado para abrir o documento que está no diretório P:MANUTENÇÕESORDENS DE SERVIÇOS em formato pdf para simples visualização ou impressão. Ao fechar o arquivo a célula ativa armazene o caminho completo do arquivo como hyperlink clicável para que na próxima vez que acionar a célula o arquivo seja aberto novamente. Qual a maneira mais simples de realizar essa tarefa?

 
Postado : 13/05/2015 2:29 pm
(@paulo-reis)
Posts: 0
New Member
Topic starter
 

Prezado Mauro, lamento pelo arquivo não ter ido compactado. Não entendi o que houve.
Vou reenviá-lo assim que possível, pois estou com as mãos engessadas por conta de um acidente de bicicleta.
Continuo de olho nas suas dicas, porem não posso colocá-las em pratica até me recuperar.
Conto com sua compreensão.
PS.: Esta mensagem está sendo enviada pela minha esposa, já que não consigo digitar no momento.
Abraço.

 
Postado : 20/05/2015 6:27 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Paulo, estimo as melhoras.
Quanto a sua questão, como eu já havia baixado o arquivo anterior, eu só preciso compreender o que está dando erro, você fala muita coisa mas não está sendo direto, ou eu que não estou entendendo mesmo.
Veja meu post anterior, preciso saber, independente da letra da coluna ou linha, que isto é ajustavel, se a rotina realiza o que você pretende, se não detalhe melhor.

[]s

 
Postado : 21/05/2015 3:07 pm
(@paulo-reis)
Posts: 0
New Member
Topic starter
 

Bom dia Mauro,
A macro não está dando erro, era isso mesmo que estava precisando.Padronizei todas as planilhas de cadastros (CAD_QI_QO, CAD_QT, CAL, MP e MC) para que ao selecionar a célula da coluna 15 (O) carregue a macro para buscar o documento PDF , como no exemplo na Planilha "MC". O código atende minha necessidade para abrir o documento e gravar o caminho do documento na célula. Agora gostaria de saber como faço para que nas planilhas consultas " Cs_MC" , etc o caminho do arquivo gravado na célula fique como hyperlink clicável. No exemplo da planilha Cs_MC ao clicar na célula que contem o link o arquivo não abre. Outra dúvida é se para executar a macro para as demais planilhas cadastros terei que copiar a mesma macro para cada planilha? Envio outro modelo com as alterações.

 
Postado : 25/05/2015 8:16 am
(@paulo-reis)
Posts: 0
New Member
Topic starter
 

Planilha Modelo

 
Postado : 25/05/2015 11:58 am
(@paulo-reis)
Posts: 0
New Member
Topic starter
 

Olá Mauro,
Viu o ultimo modelo que enviei?

 
Postado : 01/06/2015 7:57 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Paulo, são tantas coisas pra fazer que acabei me esquecendo do seu caso, andei dando uma olhada e como ainda temos algumas diferenças nas Linhas e como todas agora serão na coluna 15, ajustei a rotina para que verfique a coluna e depois faz uma verificção se a palavra "DOCUMENTO" está na linha 2 ou nas linhas 2 e 6 e então continua a rotina, fazendo a verificação se na celula clicada já existe um hyperlink, se não abre a janela para selecionar o arquivo e grava na celula o caminho.

Outra coisa é que esta rotina não precisa ser colocada no evento de cada aba, e sim somente no evento do Workbook e valerá para todas as abas, então apague as rotinas que colocou nas abas e cole esta no Evento do Workbook, ou seja, de dois cliques em "EstaPasta_de_trabalho" e cole a rotina abaixo.

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    Dim sRgn As Range
    Dim sArquivo
    Dim sEspecificação As String
    Dim sTítulo As String
    Dim sNome
    Dim sPath As String
    Dim sDirAtual As String
    
    'Verifica se foi clicado em qualquer Celula da coluna 15 (O), se não sai da rotina
    'Padronizei todas as planilhas de cadastros para coluna 15 (O)
    If Target.Column = 15 Then
    
        'Faz a verificação qto a palavra Documento em qual linha se encontra
        If Range("O2").Value = "DOCUMENTO" Then sCase = 1 'Se for somente na Linha 2 define o Case como 1
        If Range("O2").Value = "DOCUMENTO" And Range("O6").Value = "DOCUMENTO" Then sCase = 2 'Se for na Linha 2 e 6 define o Case como 2
            
            'Os Cases são somente para verificação das linhas que contem a palavra DOCUMENTO
            'e dependendo da linha que foi selecionada sai da rotina, se não continua
            Select Case sCase
                Case 1
                    If Target.Row <= 2 Then Exit Sub
        
                Case 2
                    If Target.Row <= 6 Then Exit Sub
                
                Case Else
            
            End Select
    
        'Verifica se na celula já existe Hyperlink, Se existir abre o arquivo e sai da rotina
        If ActiveCell.Hyperlinks.Count Then Exit Sub
            'Se não existir continua
            'Definimos e armazenamos o endereço da celula clicada
            Set sRgn = Range(Target.Address(0, 0))
            
            sDirAtual = CurDir 'Armazena em memória o caminho original
         
            'Definimos o novo caminho (Diretório) dos PDF(s)
            sPath = "P:"
            ChDrive sPath
            ChDir sPath
           
            'Textos da caixa de dialogo
            sEspecificacao = "Arquivos de PDF (*.pdf*),*.pdf*" 'Tipo do
            sTítulo = "Selecione um arquivo PDF:"
           
            'Definimos e armazenamos o endereço da celula clicada
            Set sRgn = Range(Target.Address(0, 0))
       
            sArquivo = CStr(Application.GetOpenFilename(sEspecificacao, , sTítulo, , False))
           
            'Redefinimos para o caminho anterior
            ChDrive sDirAtual
            ChDir sDirAtual
       
            'Armazenamos somente o Nome do arquivo sem o caminho
            sNome = Dir(sArquivo)
               
                'Se nenhum arquivo foi selecionado sai da rotina
                If sArquivo <> CStr(False) Then
                    sRgn = sNome 'Coloca somente o Nome do arquivo na celula
                    ActiveSheet.Hyperlinks.Add sRgn, sArquivo 'Cria o hyperlink
                Else
                    'Nenhum arquivo foi selecionado
                End If
    Else
               
    End If
End Sub

Faça os testes e veja se agora acertamos.

[]s

 
Postado : 01/06/2015 6:55 pm
(@paulo-reis)
Posts: 0
New Member
Topic starter
 

Blz, vou ajustar aqui.
Obrigado Mauro!!

 
Postado : 02/06/2015 6:42 am
(@paulo-reis)
Posts: 0
New Member
Topic starter
 

Boa tarde Mauro,

Estive ausente por uns dias, portando estou retomando o desafio. Eu fiz os testes com o código e está funcionando Ocorre que a palavra "DOCUMENTO" que é cabeçalho da coluna pode aparecer em colunas diferentes, ou seja na coluna 15 (O) ou na coluna 16 (P). Gostaria de saber se é possível criar esse mesmo evento usando uma textBox ao invés de clicar diretamente na célula.

 
Postado : 23/06/2015 10:05 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Paulo, se alterou novamente seu layout e as colunas não serão mais fixas mas as linhas continuam as mesmas, teremos de construir instrução para procurar nas colunas em qual se encontra a palavra documento e dai seguir com a rotina para os links, no momento estou bem atarefado, pesquise no forum que tem instruções e até uma função que cheguei a colocar, não lembro o tópico que captura a letra da coluna de acordo com um texto, e procure ir ajustando e colocando aqui as dificuldades, e assim que possivel dou uma olhada.
Não entendi com o quer dizer com : "se é possível criar esse mesmo evento usando uma textBox ao invés de clicar diretamente na célula"

[]s

 
Postado : 24/06/2015 5:42 am
(@paulo-reis)
Posts: 0
New Member
Topic starter
 

Ok Mauro, vou dar uma pesquisada. Sobre a questão da textBox é o seguinte. Eu criei vários formulários para entrada de dados nas planilhas (passo o modelo atualizado depois), com isso quero inserir o link do arquivo na coluna DOCUMENTO através de uma caixa de texto do formulário de cadastro e não clicando diretamente na célula. Não sei se a caixa de texto é a melhor forma quando receber o foco, talvez um botão no formulário.

 
Postado : 24/06/2015 12:13 pm
Página 2 / 2