Estou usando um modelo do Excel para gerar um relatório do Access usando o VBA. Quando o arquivo recém-criado é aberto, um número de formatação da célula foi alterado de "Número" para "Data".
Uma tabela no modelo tem células formatadas como "Número":
EssacélulanãotemdadosenviadosparaelesapartirdoAccess,elestêmfórmulasquefazemreferênciaaoutraplanilhanapastadetrabalho.Apósaconclusãodaexportaçãodedados,abrooarquivodoExcelevejoisto:
Estaéaúnicacolunanatabelathisquefazisso,masoutrascélulasdatabelanaplanilhatambémsãoalteradasparaoformato"Data" quando elas contêm apenas números.
Eu escrevi o código do VBA, então sei que não é o código que está alterando o formato e não há macros definidas no modelo.
Procurei respostas, mas nenhuma delas parece funcionar ou não é aplicável a esse problema. Por exemplo, todas as seguintes perguntas sobre SU não fornecem a resposta para mim:
Eu gostaria de encontrar uma solução que não requeira alterações nas configurações globais do Excel. O banco de dados do Access será enviado para um cliente e eu não quero que eles alterem suas configurações apenas para isso, eles também usarão uma versão diferente do Excel (eu tenho 2013)
Eu tentei formatar algumas células usando o VBA ao enviar dados para eles, mas o cliente gostaria de poder editar o modelo do Excel sem ter que alterar o código do VBA no banco de dados; daí a razão para empurrar dados para uma folha separada que é então referenciada pela tabela. Se codificar com firmeza a formatação de certas células, elas não poderão editá-las.
Como faço para impedir que o Excel altere a formatação?
Atualizar
Estou começando a achar que isso é causado por um bug no Excel 2013. Infelizmente, não tenho outra versão disponível para testar essa teoria, mas a alteração na formatação só acontece com a planilha atualmente visível quando o modelo é salvo .
Eu adicionei uma "folha de rosto" à pasta de trabalho que contém informações sobre o relatório. Esta planilha não faz referência a nenhum dos dados em outras partes da pasta de trabalho. Com esta folha selecionada, salvei e fechei o modelo. Os relatórios produzidos usando este modelo mais recente não alteram a formatação da célula quando o relatório é gerado e, em seguida, aberto.
Agora também noto que outras planilhas, semelhantes àquelas que têm problemas de formatação, não têm células aleatoriamente reformatadas, pois não eram a planilha 'ativa' quando o modelo foi salvo / fechado.
Isso me faz pensar que é uma falha no Excel e nada a ver com o meu código; e embora contorne o problema por enquanto eu gostaria de encontrar uma solução, ou pelo menos, uma explicação desse comportamento curioso.