De nada.
Para mudar a coluna com o link, insira a coluna e ponha a mesma fórmula que eu usei. No VBA, altere os números após o Target.Column. No código enviado anteriormente este item aparece uma vez. No código abaixo, aparece mais de uma vez porque considerei que você irá inserir uma coluna com o link para a planilha internacional. Target.Column = 3 significa que o link está na coluna C, Target.Column = 10 significa que o link está na coluna J.
Você pode mudar o "Proc" para "clique aqui", mas faça isso tanto na fórmula da coluna C e J, quanto no VBA. Escreva exatamente igual no VBA e na fórmula, considerando letras maiúsculas.
Para incluir um link para a planilha internacional, use o código abaixo.
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
If (Target.Column = 10 Or Target.Column = 11) And Target.Count = 1 Then
Dim Num As Long
Num = Cells(Target.Row, 11)
If Target.Value = "Clique aqui" And Target.Column = 10 Then
On Error Resume Next
Workbooks("Diligenciamento GDS Nacional.xls").Activate
If Err.Number = 9 Then
Err.Clear
Workbooks.Open (ActiveWorkbook.Path & "Diligenciamento GDS Nacional.xls")
End If
Range("A:A").Find(Num).Select
If Err.Number = 91 Then
Err.Clear
MsgBox "Item não encontrado na planilha Nacional"
End If
ElseIf Target.Value = "Clique aqui" And Target.Column = 11 Then
On Error Resume Next
Workbooks("Diligenciamento GDS Internacional.xls").Activate
If Err.Number = 9 Then
Err.Clear
Workbooks.Open (ActiveWorkbook.Path & "Diligenciamento GDS Internacional.xls")
End If
Range("A:A").Find(Num).Select
If Err.Number = 91 Then
Err.Clear
MsgBox "Item não encontrado na planilha Internacional"
End If
End If
End If
If Err.Number > 0 Then MsgBox Err.Number & " - " & Err.Description
End Sub
Premissas para o código acima:
1 - Os links das planilhas nacional e internacional estarão nas colunas I e J. Para alterar isso, altere o número após cada Target.Column.
2 - As colunas J e K devem conter a fórmula que resulte nas palavras Clique aqui. A fórmula do link verifica se a respectiva linha na coluna pedido contém um número. Em caso positivo, retorna a palavra que estiver entre as aspas.
3 - Todos arquivos devem estar na mesma pasta. Para colocá-los em pastas diferentes, é preciso adaptar o código.
4 - Veja que a linha do código Range("A:A").Find(Num).Select procura o número do pedido do arquivo de processo na coluna A do arquivo nacional. Se você inserir uma coluna antes dessa no arquivo nacional, deverá alterar essa parte do código.
5 - Considerei que o seu arquivo internacional, tem o nome "Diligenciamento GDS Internacional.xls". Insira o nome verdadeiro na macro acima.
Não se esqueça de marcar o tópico como resolvido se a resposta for satisfatória.
Postado : 25/11/2015 4:56 pm