Notifications
Clear all

Código funciona de um jeito e de outro não

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

Olá colegas.
To precisando de uma ajuda no anexo. No anexo explico melhor.
Peguei um código na net que foi uma mão na roda pra mim, mas me deparei com um probleminha.
Ele funciona quando clico no ícone do disquetezinho no canto superior a esquerda da planilha.
Não funciona quando quero fazer a mesma coisa com macro código "ActiveWorkbook.Save".

 
Postado : 22/09/2018 2:31 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Não entendi a demanda, mas
-->.Save<-- e diferente de -->.SaveCopyAs<--.
O primero "apenas" salva o arquivo ativo, no mesmo local e nome. do Help excel

Workbook.Método Save
Salva alterações na pasta de trabalho especificada

A primeira vez em que um arquivo e salvo e recomendado/necessario utilizar -->.SaveAs<-- (esse comando altera o nome do arquivo aberto/na memoria) do mesmo help

Na primeira vez que você salvar uma pasta de trabalho, use o método SaveAs para especificar um nome para o arquivo

-->.SaveCopyAs<-- Salva copia do arquivo, podendo alterar endereço/nome desse arquivo. do Help excel

Workbook.Método SaveCopyAs Salva uma cópia da pasta de trabalho em um arquivo mas não modifica a pasta de trabalho aberta na memória

 
Postado : 23/09/2018 5:04 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Entendi.
Só não entendi o porque no o mesmo comando activeworkbook salva no endereço especificado e quando dou o mesmo comando via módulo não tenho a mesma resposta.
Fiquei confuso.

 
Postado : 23/09/2018 5:28 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Como descrito acima, comandos diferentes executam atividades diferentes.
Seu botão1 da planilha remete/aciona a rotina -->Save<--
esse "comando" salva a planilha ativa no mesmo endereço/caminho e nome que foi "aberta"

Sub Save()
      ActiveWorkbook.Save
End Sub

a rotina constante "EstaPasta_de_trabalho" salva uma copia da planilha ativa no endereço indicado (no seu caso com o mesmo nome)

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
   With ThisWorkbook
        .SaveCopyAs ("C:Mod" & .Name)
   End With
End Sub

Simples assim; dois comandos diferentes, duas atividades especificas.

 
Postado : 23/09/2018 9:26 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Bom dia Senhores.
Não entendo o seguinte.

1 - Clicando naquele disquete na parte superior a esquerda da pasta, faz a cópia da minha pasta conforme evento "Workbook_BeforeSave".

2 - Vou gravar uma macro, clico no ícone do disquete na parte superior a esquerda da pasta, é gravado no módulo1 o código "ActiveWorkbook.Save".

Pergunto. Porque o item 1 acima da certo? E o item 2 não dá?

 
Postado : 24/09/2018 6:11 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Esse "disquete", por padrão, executa a operação de salvar o arquivo; que corresponde ao ActiveWorkbook.Save vinculado ao seu botão na planilha.
Como alega que está executando algo diferente do parão; provavelmente seus controles/menus foram alterados. Sugiro que verifique essa possibilidade

 
Postado : 24/09/2018 6:43 am