Ir ao conteúdo
  • Cadastre-se

Excel macro do excel para word, com vinculo e formatação


Ir à solução Resolvido por Edson Luiz Branco,

Posts recomendados

criei um macro abaixo e está dando erro, Como posso consertar?

sendo que copiei de outro macro que funciona, modifiquei apenas "("proposmac")"

 

Sub proposmac()
Dim app     As Word.Application
Dim doc     As Word.document
Dim table   As Word.table
Dim excelapp As ListObject

Set app = New Word.Application
    app.Visible = True
    app.Activate
    

Set doc = app.documents.Add

Set excelapp = Motor.ListObjects("proposmac")
    excelapp.Range.Copy


With app.Selection
    .PasteExcelTable linkedToExcel:=True, WordFormatting:=False, RTF:=True

End With

Set table = doc.Tables(doc.Tables.Count)
    table.allowAutoFit = False
    table.AutoFitBehavior (wdAutoFitWindow)
Application.CutCopyMode = False

Set table = Nothing
Set excelapp = Nothing
Set app = Nothing
Set doc = Nothing

End Sub

 

 

 

conforme imagem:

macro.png

Link para o comentário
Compartilhar em outros sites

Boa noite, @vicente barcelos.

No VBA, marque referência à biblioteca do Word como indicado na figura abaixo para poder usar Early Binding dos objetos do Word.

O número 16.0 corresponde à versão instalada no PC que no meu caso é do Office 2016. No seu caso possivelmente seja outro número. 

 

RefernciabibliotecadoMSWord2016.jpg.b9463a34dd1b916fc1d6d3724070ff31.jpg

Link para o comentário
Compartilhar em outros sites

  • Solução

Há várias divergências entre o que está no código e a realidade de seu arquivo, pois provavelmente o arquivo original do qual você copiou tinha outra estrutura (uma planilha cujo CodeName era Motor onde havia uma Tabela = ListObject nomeada "proposmac" e não um Intervalo = Range com esse  nome), talvez por isso seu código não mais tenha funcionado no novo arquivo.

Faça um teste com o código abaixo:

 

Sub proposmac()
  With New Word.Application
    .Visible = True
    .Activate
     With .Documents.Add
       Excel.Application.Range("proposmac").Copy
       .Application.Selection.PasteExcelTable LinkedToExcel:=True, WordFormatting:=False, RTF:=True
       With .Tables(.Tables.Count)
         .AllowAutoFit = False
         .AutoFitBehavior wdAutoFitWindow
       End With
     End With
  End With
  Excel.Application.CutCopyMode = False
End Sub

 

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

14 minutos atrás, vicente barcelos disse:

...fazer com que, o arquivo do word (novo), seja em um ja existente, tipo: timbrado.doc

 

O ideal em seu caso seria você criar um Modelo do Word (.dot ou .dotx) e não um Documento (.doc ou .docx) já com todos os campos que são variáveis posicionados nos locais apropriados.

Dê uma pesquisada no assunto "Mala Direta" do Word usando como base um intervalo de planilha do Excel.

Link para o comentário
Compartilhar em outros sites

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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!