Notifications
Clear all

Macro para Mover ou Copiar

6 Posts
1 Usuários
0 Reactions
1,199 Visualizações
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Boa Tarde!!!

Tenho uma planilha em excel que o usuario não pode salvar nela.
Então criei um botão que ao clicar ele copia a planilha "apenas onde eu determinei" e cola numa nova planilha, sendo que esta ação pode se repetir diversas vezes, mas eu não queria que o excel abri-se um arquivo para cada vez que eu clicar no botão salvar, queria que ele ou abri-se aquela janelinha de '"MOVER OU COPIAR" para que eu possa escolher ou ele mesmo ja mova a planilha para o mesmo caminho da ultima.

Agradeço se alguém puder me dar esta luz.

Desde já Obrigada

Dias

 
Postado : 28/02/2013 11:12 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Boa arde!!

Eu acho que você deveria postar sua rotina.

Sub EuNaoEntendi()
Dim NewName As String
Dim Sh As Worksheet
NewName = ActiveSheet.Name
DuplicateSearch:
For Each Sh In Workbooks("Book1.xlsm").Worksheets
If UCase(Sh.Name) = UCase(NewName) Then
NewName = InputBox(NewName & " Já existe.**Digite o novo nome.", "Novo nome")
GoTo DuplicateSearch
End If
Next Sh
ActiveSheet.Copy Workbooks("Book1.xlsm").Worksheets(1)
ActiveSheet.Name = NewName
End Sub

Att

 
Postado : 28/02/2013 11:37 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Olá Caro Colega alexandrevba, tudo bem?

Anexo segue um modelo bem simples da minha planilha.

A minha pergunta e a seguinte, toda vez que eu clicar em 'SALVAR COMO' (o botão da minha planilha), o excel abre um novo arquivo, gostaria de saber se tem como ao inves de abrir um novo arquivo ele mover para o mesmo que eu abri.

Porque imagine se eu clicar 10 x no botão salvar como, o excel vai me criar 10 arquivos, tem como inves de criar 10 arquivos ele inserir no arquivo que já esta aberto? Ou ele me dar a opção de escolher o lugar?

Obrigada pela atenção.

Dias

 
Postado : 01/03/2013 10:03 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Boa tarde!!

Eu ainda não baixei seu arquivo...

Tente isso

Sub CopiarSalvarAleVBA()
'Copia de uma guia de um workbook para outro workbook e salva
'Caso queira copiar novamente não precisará salvar outro workbook
Dim wb As Workbook
Worksheets("Teste").Copy 'Copia da guia Teste do livro ativo
Set wb = ActiveWorkbook
wb.SaveAs "Delete.xls" ' Salva com o nome de Delete
wb.Close

End Sub
 
Postado : 01/03/2013 10:26 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Alexandrevba boa Tarde

Então o seu comando é igual + ou - o meu, se eu ficar clicando para salvar ele pedi para substituir e não e isso que eu quero, eu quero se tiver que clicar 30 vezes ele ir abrindo varias guias uma ao lado da outra no mesmo arquivo.
Dá para fazer desta forma?

 
Postado : 01/03/2013 12:25 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Bom dia!!

Certifique se que o arquivo foi salvo.

Depois faça os testes.

Sub CopiarSalvarAleVBA()
Dim nB As Workbook, sht As Worksheet
Application.ScreenUpdating = False
Set sht = ActiveSheet
Set nB = Workbooks.Open("C:UsersalexandreDownloadsteste.xlsx")
sht.Copy after:=nB.Sheets(nB.Sheets.Count)
nB.Close True
Set nB = Nothing: Set sht = Nothing
Application.ScreenUpdating = True

End Sub

Att

 
Postado : 02/03/2013 6:38 am