Notifications
Clear all

HIPERLINK + PROCV 2

28 Posts
2 Usuários
0 Reactions
4,096 Visualizações
(@rudha)
Posts: 30
Eminent Member
Topic starter
 

Prezados mestres JEDIs do EXCEL! rsrs bom dia!

busquei nos tópicos e o titulo acima seria a minha duvida de um mesmo post semelhante (o arquivo de planilha anexado ao post não funcionou ao abrir)

Vamos lá , por gentileza preciso de ajuda com duas planilhas que possuo de controles de pedidos de compra/diligenciamento...

gostaria de um hiperlink na planilha 1 ("Controle de processos GDS") criar uma coluna em que clicando nas células me transfira para a planilha 2 ("Diligenciamento GDS Nacional") as buscas sendo feitas pelo numero do pedido de compra ,planilha 1 ("Controle de processos GDS") "'coluna J" e me remeta a planilha 2 ("Diligenciamento GDS Nacional") "Coluna A" bem como o caminho inverso (da planilha 2 "Diligenciamento GDS Nacional") para a planilha 1 ("Controle de processos GDS")

Ja agradeço IMENSAMENTE por qualquer auxilio neste Tópico

obrigado! fico no aguardo de seus comentatios e dicas

 
Postado : 16/11/2015 5:34 am
(@suggos)
Posts: 111
Estimable Member
 

Não funcionou como eu pretendia. Quando ambos arquivos estão abertos o link de processo para o nacional tenta abrir novamente o arquivo já aberto. Talvez alguém mais possa ajudar. Um link está na coluna C e o outro na coluna J.

Não se esqueça de marcar o tópico como resolvido se a resposta for satisfatória.

 
Postado : 16/11/2015 7:46 pm
(@rudha)
Posts: 30
Eminent Member
Topic starter
 

È desta forma não ta funfando mesmo , precisava que o hiperlink nos direcione para a outra planilha e vice e versa , mas obrigado pela ajuda de qualquer forma! alguem teria uma outra ideia de como fazer ?

 
Postado : 17/11/2015 5:10 am
(@suggos)
Posts: 111
Estimable Member
 

rudha, parece que agora está funcionando. Dá uma olhada. Os links estão nas colunas C (nacional) e J (processo).

Não se esqueça de marcar o tópico como resolvido se a resposta for satisfatória.

 
Postado : 23/11/2015 7:05 pm
(@rudha)
Posts: 30
Eminent Member
Topic starter
 

Suggos , eu tento abrir porem me retorna a mensagem abaixo (segue print)

mesmo estando com as planilhas abertas ou uma aberta e outra fechada não foi....

 
Postado : 24/11/2015 5:01 am
(@suggos)
Posts: 111
Estimable Member
 

Rudha, no meu computador funcionou. Só que a versão que eu tenho da sua planilha não contém o item 14228118, mas o 228118. Tente novamente, mas sem adicionar o 14 na frente.

Não se esqueça de marcar o tópico como resolvido se a resposta for satisfatória.

 
Postado : 24/11/2015 6:39 pm
(@suggos)
Posts: 111
Estimable Member
 

Eu me esqueci de dizer uma coisa. Salve ambos arquivos na raiz do diretório D:

Se quiser alterar o caminho, é necessário mudar a macro.

Não se esqueça de marcar o tópico como resolvido se a resposta for satisfatória.

 
Postado : 25/11/2015 4:11 am
(@suggos)
Posts: 111
Estimable Member
 

Alterei a macro. Estes arquivos funcionam desde que estejam na mesma pasta. Dá uma olhada.

Não se esqueça de marcar o tópico como resolvido se a resposta for satisfatória.

 
Postado : 25/11/2015 4:44 am
(@rudha)
Posts: 30
Eminent Member
Topic starter
 

Meu camarada! GENIAL funcionou agora! muito obrigado!
mas e agora como aplico nas minhas planilhas originais? eu tentei copiar o comando la do VISUAL BASIC da macro que você fez porem deu erro ,

se eu quiser mudar as colunas de lugar e renomear para "clique aqui" ao invés de "NACIONAL" e "Procv" ? eu mudei nas fórmulas e salvei porem depois deu erro

queria também "linkar" mais uma planilha em anexo (de pedidos internacionais , os que começam com 00 na coluna K da planilha Controle de processos)

se puder me ajudar com mais estas questões te agradeço muito!

 
Postado : 25/11/2015 7:35 am
(@suggos)
Posts: 111
Estimable Member
 

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
(@rudha)
Posts: 30
Eminent Member
Topic starter
 

Cara , tamu quase la!rsrs , só alguns problemas que eu identifiquei ,

1 - quando clico na coluna M e N (foram as que eu criei para os links para as planilhas NACIONAL e INTERNACIONAL) , elas abre as planilhas porem nao me remetem a célula do numero de pedido informado na planilha "mãe" (Controle de processos GDS)

2 - as planilhas *Nacional e internacional" as colunas dos links nao remetem de volta a planilha mae (Controle de processos GDS)

me ajuda por favor pra matarmos isso!!rsrs
segue abaixo o codigo VBA

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)

If (Target.Column = 13 Or Target.Column = 14) And Target.Count = 1 Then
    If Target.Value = "Clique aqui" Then
    Dim Num As Long
    Num = Cells(Target.Row, 1) - 14000000
    End If
    If Target.Value = "Clique aqui" And Target.Column = 13 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 = 14 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
 
Postado : 26/11/2015 2:36 pm
(@suggos)
Posts: 111
Estimable Member
 

Nesse código que você me mostrou, basta fazer a alteração abaixo na planilha de processo.

Onde está
Num = Cells(Target.Row, 1) - 14000000

mude para
Num = Cells(Target.Row, 10)

Significa que o código a ser buscado está na 10ª coluna do arquivo de processo. Note que o código em cada arquivo será diferente, pois em cada um deles o código fica em uma coluna diferente.

No arquivo nacional, é necessário subtrair 14000000 porque os códigos em tal arquivo tem um 14 na frente. Como está seu código na planilha nacional? Provavelmente você tem que alterar a linha com o FIND: em vez de buscar na coluna J, busque na I. A internacional eu não vi, mas provavelmente será necessário fazer alguma adaptação em VBA.

Não se esqueça de marcar o tópico como resolvido se a resposta for satisfatória.

 
Postado : 26/11/2015 6:09 pm
(@rudha)
Posts: 30
Eminent Member
Topic starter
 

Bom Dia!

então agora ta funfando PERFEITA a planilha "Mãe" (Controle de processos GDS) com o ajuste da Macro que voce me falou!

o que ocorre que fiz uma macro para (Diligenciamento GDS Internacional) que seria o caminho inverso para a planilha (Controle de processos GDS) e não esta funfando...nem erro esta dando,note que nessa INTERNACIONAL os pedidos começam com 57XXXXXX, botei a coluna do link na coluna X, segue abaixo :

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
If (Target.Column = 24) And Target.Count = 1 Then
    If Target.Value = "Clique aqui" Then
    Dim Num As Long
    Num = Cells(Target.Row, 1)
    End If
    If Target.Value = "Clique aqui" And Target.Column = 10 Then
        On Error Resume Next
        Workbooks("Controle de processos GDS.xls").Activate
        If Err.Number = 9 Then
            Err.Clear
            Workbooks.Open (ActiveWorkbook.Path & "Controle de processos GDS.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 = 10 Then
        On Error Resume Next
        Workbooks("Controle de processos GDS.xls").Activate
        If Err.Number = 9 Then
            Err.Clear
            Workbooks.Open (ActiveWorkbook.Path & "Controle de processos GDS.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

no aguardo e muito obrigado por toda AJUDA!!!

 
Postado : 27/11/2015 6:05 am
(@rudha)
Posts: 30
Eminent Member
Topic starter
 

Consegui! pra ambas retornarem pra planilha Mãe , a unica coisa que ta pegando é que na planilha internacional alguns estão retornando para pedidos nacionais

EX.; pedido 57005096 retorna para o pedido 205096 ,

segue a MACRO da internacional:

Option Explicit

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
If Target.Column = 24 And Target.Count = 1 Then
    If Target.Value = "Clique aqui" Then
        Dim Num As Long
        Num = Cells(Target.Row, 1) - 57000000
        On Error Resume Next
        Workbooks("Controle de processos GDS.xls").Activate
        If Err.Number = 9 Then
            Err.Clear
            Workbooks.Open (ActiveWorkbook.Path & "Controle de processos GDS.xls")
        End If
        Range("J:J").Find(Num).Select
        If Err.Number = 91 Then
            Err.Clear
            MsgBox "Item não encontrado na planilha do Comprador"
        End If
    End If
End If
If Err.Number > 0 Then MsgBox Err.Number & " - " & Err.Description
End Sub
 
Postado : 27/11/2015 7:13 am
(@suggos)
Posts: 111
Estimable Member
 

No exemplo que você citou, em que o pedido 57005096 retorna para o pedido 205096 uma solução poderia ser substituir a linha conforme abaixo.

Onde está
Range("J:J").Find(Num).Select

Você altera para
Range("J:J").Find(What:=Num, LookAt:=xlWhole).Select
If Err.Number = 91 Then
Err.Clear
Range("J:J").Find(What:=Format(Num, "000000")).Select
End If

O primeiro FIND é para o caso de só haver um pedido na célula a ser encontrada. O segundo é para o caso de haver mais de um pedido.

Não se esqueça de marcar o tópico como resolvido se a resposta for satisfatória.

 
Postado : 28/11/2015 7:43 am
Página 1 / 2