Tenho algumas planilhas do Excel que usam caixas de seleção ActiveX para controlar certas atividades. Trabalharam recentemente mas hoje começaram a dar erros. Fui alertado sobre isso por um colega, mas ele ainda estava funcionando no meu computador. Eu verifiquei sua versão do Excel com a minha e a dele era mais recente. Percebi que havia novas atualizações do Windows, então fiz a atualização. Depois de aplicar as atualizações pendentes, agora não funciona mais no meu computador. Não consigo mais marcar as caixas de seleção ActiveX e, como parte da tentativa de depuração, parece que não consigo mais adicionar um controle ActiveX a nenhuma planilha, mesmo a uma nova planilha. Recebo uma caixa de diálogo de erro que diz: "Não é possível inserir o objeto." (Ainda posso adicionar controles de formulário, mas não ActiveX.) Alguém mais experimentou isso após uma atualização recente? Alguma sugestão?
Obrigado,
Mike
Respostas:
Em outros fóruns, aprendi que isso se deve ao MS Update e que uma boa correção é simplesmente excluir o arquivo MSForms.exd de qualquer subpasta Temp no perfil do usuário. Por exemplo:
C:\Users\[user.name]\AppData\Local\Temp\Excel8.0\MSForms.exd
C:\Users\[user.name]\AppData\Local\Temp\VBE\MSForms.exd
C:\Users\[user.name]\AppData\Local\Temp\Word8.0\MSForms.exd
Obviamente, o aplicativo (Excel, Word ...) deve ser fechado para excluir este arquivo.
fonte
Aqui está a melhor resposta que encontrei no Blog da Equipe de Suporte do Microsoft Excel
Fonte
fonte
Era KB2553154 . A Microsoft precisa lançar uma correção. Como desenvolvedores de aplicativos Excel, não podemos acessar todos os computadores de nossos clientes e excluir arquivos deles. Estamos sendo culpados por algo que a Microsoft causou.
fonte
Sou um desenvolvedor de Excel e definitivamente senti dor quando isso aconteceu. Felizmente, consegui encontrar uma solução alternativa renomeando os arquivos MSForms.exd no VBA mesmo quando o Excel estava em execução, o que também pode corrigir o problema. Os desenvolvedores do Excel que precisam distribuir suas planilhas podem adicionar o seguinte código VBA a suas planilhas para torná-los imunes à atualização do MS.
Coloque este código em qualquer módulo.
A sub-rotina RenameMSFormsFiles tenta renomear os arquivos MSForms.exd nas pastas
C:\Users\[user.name]\AppData\Local\Temp\Excel8.0\
eC:\Users\[user.name]\AppData\Local\Temp\VBE\
para MSForms - Copy.exd.Em seguida, chame a sub-rotina RenameMSFormsFiles no início do evento Workbook_Open.
A planilha tentará renomear os arquivos MSForms.exd quando for aberta. Obviamente, esta não é uma solução perfeita:
Pelo menos por enquanto, os desenvolvedores do Excel podem continuar a distribuir seu trabalho com essa solução alternativa até que a Microsoft libere uma correção.
Eu postei essa solução aqui .
fonte
Com o Windows 8.1, não consegui encontrar nenhum arquivo .exd usando a pesquisa do Windows. Por outro lado, um comando cmd
dir *.exd /S
encontrou um arquivo em meu sistema.fonte
Conselhos em KB e acima não funcionaram para mim. Descobri que se um usuário do Excel 2007 (com ou sem a atualização de segurança; não tenho certeza das circunstâncias exatas que causam isso) salva o arquivo, o erro original retorna.
Descobri que a maneira mais rápida de reparar o arquivo novamente é excluir todo o código VBA. Salve . Em seguida, substitua o código VBA (copiar / colar). Salve . Antes de tentar fazer isso, eu excluo os arquivos .EXD primeiro, caso contrário, recebo um erro ao abrir.
No meu caso, não posso atualizar / atualizar todos os usuários do meu arquivo Excel em vários locais. Como o problema volta depois que alguns usuários salvam o arquivo do Excel, terei que substituir o controle ActiveX por outro.
fonte
Instruções simplificadas para usuários finais. Sinta-se à vontade para copiar / colar o seguinte.
Veja como resolver o problema quando ele surgir:
Pode ser necessário esperar até que o problema ocorra para que essa correção funcione. Aplicá-lo prematuramente (antes que o Windows Update seja instalado em seu sistema) não ajudará.
fonte
A melhor fonte de informações e atualizações sobre esse problema que pude encontrar está nos Blogs do TechNet »O Blog da Equipe de Suporte do Microsoft Excel (conforme mencionado):
Os controles de formulário param de funcionar após as atualizações de dezembro de 2014 (atualizado em 10 de março de 2015)
Em março de 2015, um hotfix foi lançado , além das instruções automáticas e manuais, e também está disponível no Windows Update.
A última atualização e correção da Microsoft: 3025036 Erro "Não é possível inserir objeto" em uma solução personalizada do Office ActiveX após instalar a atualização de segurança MS14-082
Informações gerais sobre o problema:
Soluções manuais e adicionais:
fonte
Finalmente encontrei esta resposta na base de conhecimento oficial da Microsoft:
http://support.microsoft.com/kb/3025036/EN-US
Nenhuma informação nova aqui além das respostas anteriores, mas pelo menos reconhece que a Microsoft está ciente do problema.
fonte
Eu sei que muitas respostas já foram postadas para isso, mas nenhuma delas funcionou independentemente para o meu site. Então aqui está o que funcionou para mim:
Etapa 1: desinstale as seguintes atualizações - KB2920789, KB2920790, KB2920792, KB2920793, KB2984942, KB2596927
Etapa 2: ocultar essas atualizações para que não sejam instaladas nas reinicializações subsequentes
Etapa 3: exclua a pasta Excel8.0 de C: \ Users \ <> \ AppData \ Local \ Temp
Etapa 4: reinicie a estação de trabalho (eu também certificaria que os KBs mencionados acima não foram aplicados inadvertidamente)
fonte
Eu quero dar uma resposta que funcionou como a única coisa para mim (eu percebo que posso ser o único). Eu tinha em uma macro que estava chamando usando a faixa de opções. Ele tinha o seguinte código:
Eu não sabia que isso gerava um erro, então fiquei perplexo e tentei de tudo aqui. O botão simplesmente parou de funcionar e eu não conseguia fazê-lo funcionar. Quando percebi o erro e o corrigi para:
Começou a funcionar novamente. Absolutamente estranho se você me perguntar, mas talvez ajude alguém lá fora que estava tão desesperado quanto eu.
fonte