move a planilha para outra pasta de trabalho, sem o código vba, mas mantendo o esquema de cores

0

Eu tenho um código que primeiro copia uma planilha, faz alguma limpeza e depois a move para outra pasta de trabalho.

Meu problema é que quando copio ou movo uma planilha, ele também copia o código vba anexado ao objeto de pasta.

Existe uma maneira de evitar isso?

Além disso, quando movo a folha para outra pasta de trabalho, as cores mudam. Existe uma opção de movimentação que permite manter a formatação original, da mesma forma que a pasta na faixa do Excel.

Atualmente, estou exportando o esquema de cores e importando-o para a nova pasta de trabalho, mas isso exige que você desbloqueie a pasta de trabalho de origem e, com a nova segurança (2013), leve muito tempo.

As ideias são muito apreciadas.

    
por Knuto01 31.07.2014 / 11:09

3 respostas

1

Meu palpite é que seu código tem algo como

ActiveWorkbook.Sheets(1).Copy

Isto irá copiar o VBa.

Se você quiser copiá-lo sem o VBa, terá que fazer isso selecionando todas as linhas e células.

ActiveWorkbook.Sheets(1).Cells.Copy
Workbooks("abc.xls").Worksheets.Add
ActiveSheet.Cells.PasteSpecial Paste:=xlPasteAll

Fonte acima

Ou, você pode continuar como está, mas apenas excluir qualquer VBa da nova planilha

Este exemplo exclui todo o VBa de um projeto

    Sub DeleteAllVBACode()
    Dim VBProj As VBIDE.VBProject
    Dim VBComp As VBIDE.VBComponent
    Dim CodeMod As VBIDE.CodeModule

    Set VBProj = ActiveWorkbook.VBProject

    For Each VBComp In VBProj.VBComponents
        If VBComp.Type = vbext_ct_Document Then
            Set CodeMod = VBComp.CodeModule
            With CodeMod
                .DeleteLines 1, .CountOfLines
            End With
        Else
            VBProj.VBComponents.Remove VBComp
        End If
    Next VBComp
End Sub

Fonte (e outros exemplos)

    
por 31.07.2014 / 11:42
0
Sub LuuVaXoaCode()
Dim Theo_Doi
Theo_Doi = ActiveWorkbook.Name
Theo_Doi = ActiveSheet.Name
Sheets(Theo_Doi).Copy
ActiveSheet.DrawingObjects.Delete

'Delete code cua worksheet
With ActiveWorkbook
        For Each Theo_Doi In .Worksheets
            With .VBProject.VBComponents(Theo_Doi.CodeName).CodeModule
                .DeleteLines 1, .CountOfLines
            End With
        Next
 'Hien cua so Save As
Application.Dialogs(xlDialogSaveAs).Show
ActiveWindow.Close
End With
End Sub
    
por 01.02.2015 / 07:59
-2

Eu encontrei algo sobre e sobre Cores excelentes de alguma forma sendo modificadas?

... talvez isso também possa ser útil, inclui código VBA: código VBA para trabalhar com o Excel Temas de 2007

Espero que ajude :) Tenha um bom dia.

    
por 16.09.2014 / 12:48