Notifications
Clear all

Código "Salvar Como" para local padrão do Office que tem restrições de Salvar Arquivos

6 Posts
3 Usuários
0 Reactions
1,372 Visualizações
willramires
(@willramires)
Posts: 11
Active Member
Topic starter
 

Prezados, boa noite.

Montei um aplicativo, e com um aplicativo criador de Instalador, o usuário ao clicar no executável instala o aplicativo (.XLSM) e seus conteúdos diretamente dentro da pasta C:\Program Files\Microsoft Office\Root\Templates\ (já como padrão de instalação usando a execução como Administrador do Windows). Fiz isso para que, ao usuário Clicar no Ícone que o Instalador colocou na área de trabalho, as macros são automaticamente habilitadas, diminuindo a possibilidade do usuário em buscar quebrar senhas de Guias e do VBA (diminuir a possibilidade....afff  🙄 ).

Só que isso me gerou mais um desafio: temos no aplicativo a opção do usuário de Salvar Como o arquivo na referida pasta, ou seja, fiz uma função que o usuário ao clicar no Botão de Salvar (que fiz na tela do aplicativo), se abra a tela de Diálogo com o local padrão definido (C:\Program Files\Microsoft Office\Root\Templates\) para que o usuário possa inserir o novo nome e executar o salvamento. Fiz o código abaixo, no entanto como o caminho a ser usado tem restrições de salvamento - acredito que somente leitura (por ser um local padrão de instalação do windows) - o Excel reporta erro 1004 devido a esta limitação do local -> C:\Program Files\Microsoft Office\Root\Templates\.

Pergunto aos amigos, como podemos contornar isso e realizar o salvamento nesta pasta (não queria mudar o local)? Já busquei na net e aqui no fórum mas não localizei algo que me ajuda-se neste sentido.   

Segue o código simples que montei:

Sub SalvarComo()
Application.DisplayAlerts = False
Application.ActiveWorkbook.SaveAs Filename:="C:\Program Files\Microsoft Office\Root\Templates\", _
FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
End Sub

Forte abraço a tod@s, e espero mais esta ajuda.


Editado pela Moderação. Motivo: Utilize o botão Código (< >) sempre que for inserir código VBA ou Fórmulas.

Este tópico foi modificado 4 anos atrás by willramires
 
Postado : 30/08/2020 10:33 pm
willramires
(@willramires)
Posts: 11
Active Member
Topic starter
 

Up. To precisando de fato da ajuda para a macro salvar no local "C:\Program Files\Microsoft Office\Root\Templates\", poi conforme instalação do Excel 365, trata-se de local confiável padrão. Assim o aplicativo abrirá e não perguntara ao usuário se quer executar as macros, ou seja, diminui-se o risco de acesso ao VBA (programei para inserir senha de acesso), bem como acesso a modificação das planilhas e etc. Alguem pode me ajudar?, acima temos a descrição mais detalhada.

 
Postado : 02/09/2020 9:30 pm
EdsonBR
(@edsonbr)
Posts: 1057
Noble Member
 

Olá, @willramires

Qual instalador vc está usando, o Inno? Na instalação ele acessa e instalar o arquivo normalmente? O usuário que vai operar tem também privilégios administrativos?

 
Postado : 03/09/2020 11:25 am
willramires
(@willramires)
Posts: 11
Active Member
Topic starter
 

@edsonbr ola amigo boa tarde. Estou usando o Install Creator. Sim, no Install Creator tem a opção que marcamos para iniciar o processo de instalação com o privilegio de administrador. Então, ai o instalador ao rodar, pergunta se quer rodar como administrador, voce autoriza e em seguida ele roda a instalção criando uma pasta especifica (que já defini no Creator) e jogando a planilha e alguns docs adicionais dentro desta nova pasta no caminho que mencionei. Ele ainda cria o icone na área de trabalho que remete a planilha e também cria o desinstalador no Painel de Controle (apps e recursos)  do Windows.....  O usuário ao clicar no icone, o aplicativo abre normalmente, ou seja, a planilha e todos os códigos rodam perfeitamente. No entanto, após o usuário preencher a planilha com alguns dados não consegue salvar a mesma no local, mesmo ele sendo administrador da máquina, pois parece que abre como somente leitura ou o local é de característica somente leitura. Essa situação ocorreu comigo fazendo o teste, e eu sou o administrador da máquina. Será que temos como contornar isso com algum código adicional no processo de salvamento no que fiz abaixo, no sentido de fazer o processo de execução do salvamento com o perfil de administrador como na instalação de um aplicativo?

Uma outra opção que pendei aqui seria a de termos um código que quando do primeiro uso da Planilha se insira automaticamente no Excel como Locais Confiável o Local C: \Fulano de tal, ou seja, o novo local criado pelo aplicativo de instalação seria inserido ao Excel após iniciar a abertura do aplicativo, possibilitando assim a execução das macros e etc, será que isso é possível?

Sub SalvarComo()
Application.DisplayAlerts = False
Application.ActiveWorkbook.SaveAs Filename:="C:\Program Files\Microsoft Office\Root\Templates\", _
FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
End Sub
 
Postado : 03/09/2020 3:24 pm
(@televisaos)
Posts: 49
Eminent Member
 

Olá @willramires,

Encontrei algo sobre o assunto neste site. Veja se ajuda em algo.

https://www.usandoaccess.com.br/tutoriais/configurando-macro-de-seguranca.asp?id=1

 

Att, Televisaos

 
Postado : 04/09/2020 1:42 am
EdsonBR
(@edsonbr)
Posts: 1057
Noble Member
 

Ah, mas tem um erro elementar em seu trecho de código que pode ser o motivo do arquivo não estar sendo salvo: cadê o nome do arquivo? Vc só usou o nome da pasta e não o do arquivo no código, @willramires. Corrija isso primeiro  e tente novamente.

Postado por: @willramires

Filename:="C:\Program Files\Microsoft Office\Root\Templates\"

 

 
Postado : 04/09/2020 2:36 pm