@teleguiado Consegue fazer 2 alterações nesse código, por gentileza!
Primeiro: Gostaria que o cód. copiasse somente os valores, pois algumas células da guia tem referência com outra guia
Segundo: Minha planilha está protegida por senha e quando eu uso esse código ela volta sem proteção. Pra tentar resolver fiz dessa forma mais não deu certo.
Option Explicit
Public fname, NomeArquivo As Variant
Sub Salvarformulario()
Sheets("Teste").Unprotect "senha"
ThisWorkbook.Activate
Dim msg, style, Title, Response, mystring
Dim UserName As String
Dim lpBuff As String * 25
NomeArquivo = Application.ThisWorkbook.Name
Application.ScreenUpdating = False
'
' Salvar a planilha em uma nova pasta de trabalho
'
msg = "Deseja salvar a Nota em um arquivo novo?"
style = vbYesNo + vbQuestion + vbDefaultButton2
Title = "Salvar Formulário"
Response = MsgBox(msg, style, Title)
If Response = vbYes Then
'
' Abre uma nova pasta de trabalho
'
Workbooks.Add
Do
fname = InputBox("Qual o nome do Arquivo?")
Loop Until fname <> False
'
' Salva a nova pasta de trabalho com o nome desejado
'
Application.Dialogs(xlDialogSaveAs).Show Arg1:=fname, Arg2:=xlOpenXMLWorkbook
'
' Copia a pagina Aprovall e salva por fname
'
Windows(NomeArquivo).Activate
Range("A5:G200").Select
Selection.Copy
' Sheets("Formulário").Copy Before:=Workbooks(Fname & ".xlsx").Sheets(1)
Windows(fname & ".xlsx").Activate
Range("A1:G200").Select
Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
ActiveSheet.Paste
Range("a1").Select
Application.DisplayAlerts = False
ThisWorkbook.Save
End If
Application.ScreenUpdating = True
Sheets("Teste").Protect "senha"
ThisWorkbook.Activate
End Sub
-----Grato!
Postado : 12/04/2021 11:34 am