Notifications
Clear all

Como evitar esta caixa de diálogo

3 Posts
3 Usuários
2 Reactions
2,885 Visualizações
cacilds
(@cacilds)
Posts: 20
Eminent Member
Topic starter
 

Bom dia a todos!

Construi uma macro para gerar alguns dados e assim que terminado, salvar a planilha com a extensão xlsx, a do arquivo normal. Uso o Excel 2010.

O problema é que as vezes, e eu acho que quando a macro resulta em uma planilha vazia, ou seja, sem nenhum dado, ela emite esta esta mensagem:

"Os recursos a seguir não podem ser salvos em pastas de trabalho sem macro: *Projeto do VB Para salvar um arquivo com esses recursos, clique em Não e escolha um tipo de arquivo habilitado para macro na lista Tipo de Arquivo. Para continuar salvando como pasta de trabalho sem macro, clique em Sim."

Mas como eu disse, eu quero que o arquivo salvo seja xlxs! O que estou fazendo de errado?

A linha de código para salvar é esta:
ActiveWorkbook.SaveAs Filename:=diretorio & nomearquivo, FileFormat:=xlWorkbookDefault, Password:="", writerespassword:="", ReadOnlyRecommended:=False, CreateBackup:=False

Será que devo alterar algo aí?
Agradeço desde já pela ajuda!

 
Postado : 14/07/2020 7:13 am
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

cacilds,

Bom dia!

A caixa de mensagem que aparece é em função de que você está tentando salvar um arquivo que contém macros (arquivos .xlsm com módulos) em um formato de arquivo sem macro.

O Excel "entende" simplesmente que você está tentando fazer algo errado já que o arquivo a ser salvo ainda contém os módulos. Para fazer isso você deve primeiramente excluir os módulos do arquivo que será salvo como .xlsx. Abaixo, segue um código que faz a exclusão de um módulo existente em outro arquivo. O código não é meu. Ele pertence a alguém que o escreveu e o colocou no site http://excelevba.com.br/excluindo-modul ... -planilha/.

Sub EXCLUIR_MODULO_EXCELEVBA_COM_BR()
 
'Para esse código funcionar é necessário adicionar a referencia Microsoft Visual Basic For Application Extensibility 5.0 (ou posterior)
 
Dim moduloAntigo As VBComponent
 
endereco = "c:tempcodigoAntigo.xlsm"
Workbooks.Open (endereco)
 
'Mod1 é o nome do módulo que quero excluir que já existe na panilha codigoAntigo.xlsm
 
On Error Resume Next
Set moduloAntigo = ActiveWorkbook.VBProject.VBComponents("Mod1")
ActiveWorkbook.VBProject.VBComponents.Remove moduloAntigo
 
Set moduloAntigo = Nothing
DoEvents
 
End Sub

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 14/07/2020 8:41 am
cacilds reacted
(@teleguiado)
Posts: 142
Estimable Member
 

Tente alterar o tipo de arquivo a ser salva para o formato habilitado para macro, caso não queira excluir o módulo vba.

ActiveWorkbook.SaveAs Filename:=diretorio & nomearquivo, FileFormat:=xlOpenXMLWorkbookMacroEnabled, Password:="", writerespassword:="", ReadOnlyRecommended:=False, CreateBackup:=False

Obrigado.

Teleguiado.
E-mail: [email protected]

 
Postado : 21/07/2020 11:41 pm
cacilds reacted