Usuário com melhor resposta
Vinculos Excel

Pergunta
-
Respostas
-
Oi Pavão,
fazer esta tarefa pelo menu Editar é fácil.
Por macro, entretanto, é um pouco difícil, pois não encontrei uma propriedade para editar o link, tem que ser direto na fórmula. Pode ser assim:
Sub ChangeLinkSource()
'Cortesia: Luiz Cláudio
Dim Wkb As Excel.Workbook
Dim arrayLinks As VariantSet Wkb = ActiveWorkbook
arrayLinks = Wkb.LinkSources(xlExcelLinks)
If Not IsEmpty(arrayLinks) Then
For i = 1 To UBound(arrayLinks)
ReplaceFormula CStr(arrayLinks(i)), "\11\", _
"\12\", Wkb, Wkb.ActiveSheet
Next i
End IfSet Wkb = Nothing
End Sub
Sub ReplaceFormula(strFormula As String, strFind As String, _
strReplace As String, Wkb As Workbook, Wks As Worksheet)
Dim rng As RangeFor Each rng In Wks.UsedRange.Cells
If InStr(1, strFormula, strFormula, vbTextCompare) > 0 Then
rng.Formula = Replace(rng.Formula, strFind, _
strReplace, , , vbTextCompare)
End If
Next rngEnd Sub
- Sugerido como Resposta Hezequias VasconcelosModerator terça-feira, 16 de outubro de 2012 16:42
- Marcado como Resposta Felipe Costa GualbertoMVP, Moderator domingo, 15 de junho de 2014 13:49
-
Boa tarde,
Bom.. uma idéia seria usar a função INDIRECT, onde vc condiciona o vinculo desejado a uma célua onde vc informa o mês.
Assim evita macros.
Se bem que eu prefiro semrpe usar macros.. hehehhe
Mas as funções as vezes quebram o galho.
Ateh!
- Sugerido como Resposta Hezequias VasconcelosModerator terça-feira, 16 de outubro de 2012 16:42
- Marcado como Resposta Felipe Costa GualbertoMVP, Moderator domingo, 15 de junho de 2014 13:49
Todas as Respostas
-
Oi Pavão,
fazer esta tarefa pelo menu Editar é fácil.
Por macro, entretanto, é um pouco difícil, pois não encontrei uma propriedade para editar o link, tem que ser direto na fórmula. Pode ser assim:
Sub ChangeLinkSource()
'Cortesia: Luiz Cláudio
Dim Wkb As Excel.Workbook
Dim arrayLinks As VariantSet Wkb = ActiveWorkbook
arrayLinks = Wkb.LinkSources(xlExcelLinks)
If Not IsEmpty(arrayLinks) Then
For i = 1 To UBound(arrayLinks)
ReplaceFormula CStr(arrayLinks(i)), "\11\", _
"\12\", Wkb, Wkb.ActiveSheet
Next i
End IfSet Wkb = Nothing
End Sub
Sub ReplaceFormula(strFormula As String, strFind As String, _
strReplace As String, Wkb As Workbook, Wks As Worksheet)
Dim rng As RangeFor Each rng In Wks.UsedRange.Cells
If InStr(1, strFormula, strFormula, vbTextCompare) > 0 Then
rng.Formula = Replace(rng.Formula, strFind, _
strReplace, , , vbTextCompare)
End If
Next rngEnd Sub
- Sugerido como Resposta Hezequias VasconcelosModerator terça-feira, 16 de outubro de 2012 16:42
- Marcado como Resposta Felipe Costa GualbertoMVP, Moderator domingo, 15 de junho de 2014 13:49
-
Boa tarde,
Bom.. uma idéia seria usar a função INDIRECT, onde vc condiciona o vinculo desejado a uma célua onde vc informa o mês.
Assim evita macros.
Se bem que eu prefiro semrpe usar macros.. hehehhe
Mas as funções as vezes quebram o galho.
Ateh!
- Sugerido como Resposta Hezequias VasconcelosModerator terça-feira, 16 de outubro de 2012 16:42
- Marcado como Resposta Felipe Costa GualbertoMVP, Moderator domingo, 15 de junho de 2014 13:49