Ir ao conteúdo
  • Cadastre-se
Douglas ianes

Outro Codigo VBA para alterar extensão

Posts recomendados

Olá pessoal,

 

tenha uma macro criada para salvar as informações de uma planilha em outra.

 

após isso preciso que ela mude a planilha que esta rodando a macro de xlsm para xlsx e salve.

consegui criar cópia em PDF mas alterar o formato ainda não.

 

podem me ajduar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Basole não consegui entender o exemplo que meu deu.

muito complexo para meus conhecimentos rsrs.

o mais proximo que cheguei do que eu preciso foi isso.

 

  Dim NomPastTrab As String

NomPastTrab = VBA.Left(ThisWorkbook.Name, (InStrRev(ThisWorkbook.Name, ".", -1, vbTextCompare) - 1))

 ActiveSheet.ExportAsFixedFormat Type:=xlsx, Filename:= _
        ThisWorkbook.Path & "\" & NomPastTrab _

 

Mas esta criando em PDF e não xlsx igual eu preciso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja se e isso: 

 

Sub Copy_ActiveSheet_1()
'Working in Excel 97-2016
    Dim FileExtStr As String
    Dim FileFormatNum As Long
    Dim Sourcewb As Workbook
    Dim Destwb As Workbook
    Dim TempFilePath As String
    Dim TempFileName As String

    With Application
        .ScreenUpdating = False
        .EnableEvents = False
    End With

    Set Sourcewb = ActiveWorkbook

    'Copy the sheet to a new workbook
    ActiveSheet.Copy
    Set Destwb = ActiveWorkbook
    
                        FileExtStr = ".xlsx": FileFormatNum = 51
    
    'Save the new workbook and close it
    TempFilePath = ThisWorkbook.Path & "\"
    TempFileName = VBA.Left(ThisWorkbook.Name, (VBA.InStrRev(ThisWorkbook.Name, ".", -1, VBA.vbTextCompare) - 1))

    With Destwb
        .SaveAs TempFilePath & TempFileName & FileExtStr, FileFormat:=FileFormatNum
        .Close SaveChanges:=False
    End With

    MsgBox "You can find the new file in " & TempFilePath

    With Application
        .ScreenUpdating = True
        .EnableEvents = True
    End With
End Sub

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Basole Exatamente isso.

 

rodou perfeito.

Muito obrigado pela ajudar.

 

adicionado 31 minutos depois

@Basole é possivel após executar a macro manter somente o arquivo xlsx e deleter o arquivo xlsm.

 

Sub DeleteActiveWorkbook() Dim xFullName As String xFullName = Application.ActiveWorkbook.FullName ActiveWorkbook.Saved = True Application.ActiveWorkbook.ChangeFileAccess xlReadOnly Kill xFullName Application.ActiveWorkbook.Close False End Sub

 

seria assim?

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Basole deu quase tudo certinho, somente o excel.application.quit que não esta fechando a aplicação.

 

mas ja da pra eu usar a planilha como eu queria.

muito obrigado pela ajuda.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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 publicações 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...