Duplicação na planilha

0

Eu criei uma macro no excel abaixo para trabalhar com um formulário relacionado que deveria ocultar as guias, copiar o arquivo para a área de trabalho como um xlsx, reabrir o xlsm original, exibir as guias e limpar o formulário. Meu problema é que ele abre uma segunda cópia Xlsm e a coloca na área de trabalho também. Tinha funcionado por um mês perfeitamente agora, éter eu estraguei alguma coisa ou alguém fez. Existe alguma coisa que você possa ver no script abaixo. Obrigado

Sub SaveAs()                ATW spreadsheet
‘SaveAs
‘Hide Tabs– add ATW -authority number then contractor company to file title Save file as XLSX to Desktop. Reopen XLSM, and unhide tabs.
Application.DisplayAlerts = False       ‘ 
    Sheets(Array("Contractor info", "PTW", "DataBase")).Select
    Sheets("DataBase").Activate
    ActiveWindow.SelectedSheets.Visible = False
        ActiveWorkbook.SaveAs Filename:= _
        "C:\Users\U0154179\Desktop\ATW " & ActiveSheet.Range("B21").Value & "-" & ActiveSheet.Range("I3").Value & ".xlsx", FileFormat:= _
        xlOpenXMLWorkbook, CreateBackup:=False
        ActiveWorkbook.SaveAs Filename:= _
        "C:\Users\U0154179\Desktop\ATW Template.xlsm", _
            FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
    Sheets("ATW").Select
    Sheets("Contractor info").Visible = True
    Sheets("ATW").Select
    Sheets("PTW").Visible = True
    Sheets("ATW").Select
    Sheets("DataBase").Visible = True
    Sheets("ATW").Select
    Application.DisplayAlerts = True
    
por ScottV 14.11.2017 / 17:24

1 resposta

0

O motivo de salvar duas cópias em sua área de trabalho é porque você tem as chamadas SaveAs apontando para a área de trabalho.

Além disso, você quase nunca precisa selecionar nada para trabalhar com ele.

Uma rápida modificação do seu código gera:

Sub SaveAs()
'SaveAs
'Hide Tabs– add ATW -authority number then contractor company to file title Save file as XLSX to Desktop. Reopen XLSM, and unhide tabs.
Dim OrignalFilename As String

Application.DisplayAlerts = False

Sheets(Array("Contractor info", "PTW", "DataBase")).Visible = xlSheetHidden

OriginalFileName = ActiveWorkbook.FullName

ActiveWorkbook.SaveAs _
    Filename:="C:\Users\U0154179\Desktop\ATW " & ActiveSheet.Range("B21").Value & "-" & ActiveSheet.Range("I3").Value & ".xlsx", _
    FileFormat:=xlOpenXMLWorkbook

Sheets("Contractor info").Visible = xlSheetVisible
Sheets("PTW").Visible = xlSheetVisible
Sheets("DataBase").Visible = xlSheetVisible

Sheets("ATW").Select

ActiveWorkbook.SaveAs _
    Filename:=OriginalFileName, _
    FileFormat:=xlOpenXMLWorkbookMacroEnabled

Application.DisplayAlerts = True
    
por 14.11.2017 / 17:44