Ir ao conteúdo

Excel Quebrar vínculo ao anexar aba do Excel no e-mail


Ir à solução Resolvido por Márcio Rodrigues,

Posts recomendados

Postado

Boa tarde galera!

 

Gostaria de saber se é possível e como, quebrar um vínculo de uma planilha copiada de uma aba de uma pasta de trabalho do Excel? Tenho um código que copia uma aba ativa do excel e anexa ela no e-mail, até aí tranquilo, o problema é que nessa cópia tem fórmulas que referenciam o arquivo de origem, portanto, ao abrir essa cópia anexada, aparece a msg perguntando se quer atualizar o vínculo, porém não tem como, pois a pasta fica no meu PC. Teria um código para na hora que cria a cópia da aba, já tirar também o vínculo, tentei fazer isso pelo gravador de macro pra ver o código, mas não sei onde inserir no projeto geral.

 

Isso é o que aprece ao fazer pelo gravador de macro:

 ActiveWorkbook.BreakLink Name:= "caminho do arquivo original.xlsm", Type:= xlExcelLinks

 

Eu não sei onde eu posso inserir (se é que possível), no código abaixo, ou se tem que escrever de outra forma.

Sub EVIAR_RETORNO()

    Dim oApp As Object
    Dim oMail As Object
    Dim WB As Workbook
    Dim FileName As String
    Dim wSht As Worksheet
    Dim shtName As String

    Application.ScreenUpdating = False

    ActiveSheet.Copy
    Set WB = ActiveWorkbook
    
    FileName = WB.Worksheets("RETORNO").Name
    On Error Resume Next
    Kill ThisWorkbook.Path & "\" & FileName
    On Error GoTo 0
    WB.SaveAs FileName:=ThisWorkbook.Path & "\" & FileName
    
    Set oApp = CreateObject("Outlook.Application")
    Set oMail = oApp.CreateItem(0)
    With oMail
        
        .Attachments.Add WB.FullName
        .Display
        
    End With

    WB.ChangeFileAccess Mode:=xlReadOnly
    Kill WB.FullName
    WB.Close SaveChanges:=False
   
    Application.ScreenUpdating = True
    Set oMail = Nothing
    Set oApp = Nothing
    
End Sub

Agradeço desde já!

  • Solução
Postado

Olá Caio Rodrigues Almeida

 

Altere seu código como abaixo e teste:

 

 

On Error GoTo 0   'a partir daqui 

  'fonte: https://funcaoexcel.com.br/remover-vinculos/

   Dim myLinks As Variant
   myLinks = ActiveWorkbook.LinkSources(Type:=xlLinkTypeExcelLinks)

   For i = 1 To UBound(myLinks)
                ActiveWorkbook.BreakLink Name:=myLinks(i), Type:=xlLinkTypeExcelLinks
    Next i

 

'ate aqui

WB.SaveAs FileName:=ThisWorkbook.Path & "\" & FileName

 

veja se é por aí...

  • Curtir 1
  • 2 semanas depois...
  • 3 semanas depois...

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!