Notifications
Clear all

Formulário para incluir anexo e gerar hyperlink

5 Posts
3 Usuários
0 Reactions
1,609 Visualizações
(@ceos005)
Posts: 49
Eminent Member
Topic starter
 

Bom dia a todos os experts

Sou novo em VBA Excel, gostaria de saber se existe uma forma de colocar em um formulário de meu aplicativo, um botão onde eu pudesse procurar em minha máquina arquivos que eu quisesse anexar, e esse ficasse em meu aplicativo na forma de um hyperlink para que eu pudesse acessá-lo posteriormente.

Obrigado.

 
Postado : 26/06/2012 6:57 am
benzadeus
(@benzadeus)
Posts: 78
Trusted Member
 

Num formulário, crie um botão de comando chamado CommandButton1 e cole o código abaixo:

Private Sub CommandButton1_Click()

    Dim sArquivo
    Dim sEspecificação As String
    Dim sTítulo As String
    
    sEspecificação = "Arquivos de Excel (*.xls*),*.xls*"
    sTítulo = "Selecione um arquivo do Excel:"
    
    sArquivo = CStr(Application.GetOpenFilename(sEspecificação, , sTítulo, , False))
    
    If sArquivo <> CStr(False) Then
        With ThisWorkbook.Sheets("Plan1")
            .Range("A1") = sArquivo
            .Hyperlinks.Add .Range("A1"), .Range("A1")
        End With
    Else
        'Nenhum arquivo foi selecionado
    End If

End Sub

Felipe Costa Gualberto
Microsoft Excel MVP
http://www.ambienteoffice.com.br

 
Postado : 27/06/2012 6:26 pm
(@ceos005)
Posts: 49
Eminent Member
Topic starter
 

Benzadeus, era exatamente o que eu precisava, mas poderia me informar se é possível que ao clicar nesse botão, eu vá adicionando vários hyperlinks em linhas diferentes?
E que pudesse editar o que vai aparecer escrito na célula onde estará o hyperlink (exemplo: "Arquivo anexo", e não o endereço do arquivo)?

Obrigado.

 
Postado : 28/06/2012 6:47 am
benzadeus
(@benzadeus)
Posts: 78
Trusted Member
 

Usando o mesmo formulário proposto acima, adicione um controle chamado RefEdit (se chamará RefEdit1).
O RefEdit obtém o endereço de uma célula.
Use o código:

Private Sub CommandButton1_Click()

    Dim sArquivo
    Dim sEspecificação As String
    Dim sTítulo As String
    
    sEspecificação = "Arquivos de Excel (*.xls*),*.xls*"
    sTítulo = "Selecione um arquivo do Excel:"
    
    sArquivo = CStr(Application.GetOpenFilename(sEspecificação, , sTítulo, , False))
    
    If sArquivo <> CStr(False) Then
        Range(RefEdit1.Value) = TextBox1
        ActiveSheet.Hyperlinks.Add Range(RefEdit1.Value), sArquivo
    Else
        'Nenhum arquivo foi selecionado
    End If
End Sub

Felipe Costa Gualberto
Microsoft Excel MVP
http://www.ambienteoffice.com.br

 
Postado : 28/06/2012 4:11 pm
Valderei
(@valderei)
Posts: 29
Eminent Member
 

Senhores boa tarde.
Estive procurando alguns auxilios neste final de semana para uma melhoria que me foi solicitada.
Alguns amigos aqui do fórum já tem me ajudado na finalização de meu projeto em VBA e agora estou aqui para solicitar mais uma vez a ajuda de vocês.
As dicas dadas neste post me ajudaram a entender um pouco a forma para hiperlinkar um arquivo, mas não exatamente da forma que gostaria.
Vou lhes explicar.
O Formulário que criei (Controle de RCQ) é para serem registradas as Não Conformidades da empresa nele existe inúmeras informações e uma delas é o código da peça que foi encontrada com problema, essas anotações dependendo se são reincidentes ou o custo dela é alto, são analizadas em reuniões. Nessas reuniões discutimos sobre ela e precisamos muitas vezes vê-la novamente.

A pergunta então é, toda vez que eu criar um registro novo, há como linkar o código do desenho com seu respectivo desenho, temos ele dentro de um diretório no servidor e são todos em formato JPEG.

Vou anexar novamente a planilha e se alguém puder dar uma dica ficarei muito grato. Essa planilha que vou anexar, já tem o código usado pelo Benzadeus a qual permite selecionar um arquivo em um diretório do computador.

 
Postado : 03/02/2013 4:22 pm