Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Message d'erreur à l'ouverture : erreur fichier perte de données

17 réponses
Avatar
Sophie
Bonjour,
J'ai un gros programme VBA développé sous Excel 5 à l'origine, réenregistré
sous excel 2003.
A l'ouverture d'un des fichiers du programme sous excel 2007, j'ai erreur
fichier, risque de perte de données et en effet, il me supprime plein de
formules de calculs et les remplace par #N/A.
Existe-t-il une solution?
Merci d'avance.

10 réponses

1 2
Avatar
Misange
Bonjour

c'est assez surprenant, le VBA n'ayant pas changé entre 2003 et 2007 à
quelques bricoles près . Ce fichier s'ouvre toujours sans problème sur
2003 ?
Si c'est le cas, il faut isoler la macro qui pose un pb. Fais une copie
de ton classeur dans 2003, sans macro et vérifie tout d'abord qu'il
s'ouvre bien dans 2007.
Ensuite réincorpore tes macros jusqu'à isoler la fautive si c'est bien
là l'origine du pb. Sinon ton fichier a peut être attrapé la vérole, ça
arrive, surtout sur les gros fichiers. Une petite reconstruction par
copie dans un nouveau classeur est souvent la meilleure solution même si
ce n'est pas le plus satisfaisant intellectuellement.

Misange migrateuse
http://www.excelabo.net : Participez à un travail collaboratif sur excel !


Sophie a écrit :
Bonjour,
J'ai un gros programme VBA développé sous Excel 5 à l'origine, réenregistré
sous excel 2003.
A l'ouverture d'un des fichiers du programme sous excel 2007, j'ai erreur
fichier, risque de perte de données et en effet, il me supprime plein de
formules de calculs et les remplace par #N/A.
Existe-t-il une solution?
Merci d'avance.



Avatar
Sophie
Merci de ta réponse.
En fait, c'est une usine à gaz développée avec une quinzaine de classeurs
liés les uns aux autres.
Le code VBA fonctionne bien sous excel 2007, puisque ce programme accepte de
tourner une première fois et enregistre à un moment le fameux fichier sans
probleme sous un nouveau nom via du code VBA.
C'est lors de la réouverture de ce fichier qui vient d'être enregistré sous
2007 que le problème survient, c'est le même vba que lors du premier
lancement du code, on dirait que le format d'enregistrement via vba sous
excel 2007 pose problème ou est plus lourd à réouvrir que sur les vieilles
versions.
J'ouvre sans probleme ce fichier sous les autres versions d'excel.

"Misange" a écrit :

Bonjour

c'est assez surprenant, le VBA n'ayant pas changé entre 2003 et 2007 à
quelques bricoles près . Ce fichier s'ouvre toujours sans problème sur
2003 ?
Si c'est le cas, il faut isoler la macro qui pose un pb. Fais une copie
de ton classeur dans 2003, sans macro et vérifie tout d'abord qu'il
s'ouvre bien dans 2007.
Ensuite réincorpore tes macros jusqu'à isoler la fautive si c'est bien
là l'origine du pb. Sinon ton fichier a peut être attrapé la vérole, ça
arrive, surtout sur les gros fichiers. Une petite reconstruction par
copie dans un nouveau classeur est souvent la meilleure solution même si
ce n'est pas le plus satisfaisant intellectuellement.

Misange migrateuse
http://www.excelabo.net : Participez à un travail collaboratif sur excel !


Sophie a écrit :
> Bonjour,
> J'ai un gros programme VBA développé sous Excel 5 à l'origine, réenregistré
> sous excel 2003.
> A l'ouverture d'un des fichiers du programme sous excel 2007, j'ai erreur
> fichier, risque de perte de données et en effet, il me supprime plein de
> formules de calculs et les remplace par #N/A.
> Existe-t-il une solution?
> Merci d'avance.
>



Avatar
Sophie
Après maintes recherches, il semble que le problème est connu depuis 2 ans
mais non résolu.
Ce classeur est truffé de fonctions qui proviennent de la macro
complémentaire utilitaire d'analyse ATPVBAEN.XLA, il y a des =convert()
partout.
Je ne peut pas convertir ces fichiers en 2007, sous peine que ce programme
ne marche plus pour les utilisateurs antérieurs à 2007.

Une solution a t-elle été trouvé?

Merci d'avance.
Avatar
Misange
Aie aie aie tu es mal...
Je ne sais pas ce qu'il en sera dans les prochaines versions d'excel
mais aujourd'hui ceci est un réel problème.
Tu peux : soit réécrire le classeur 2003 en contournant l'utilisation
des fonctions de l'utilitaire d'analyse, solution maintes fois
préconisées ici même et ailleurs, bien avant que la version 2007 ne
sorte, justement pour des raisons de compatibilité. Tu peux t'aider de
ces pages :
http://www.dailydoseofexcel.com/archives/2004/12/18/replacing-the-analysis-toolpak-addin-part-1/%3Cbr%20/%3E

Tu peux aussi faire 2 versions de ton classeur, à distribuer suivant le
poste de l'utilisateur.

Tiens nous au courant, je pense que tu n'es pas la seule dans ce cas...
Bon courage

Misange migrateuse
http://www.excelabo.net : Participez à un travail collaboratif sur excel !


Sophie a écrit :
Après maintes recherches, il semble que le problème est connu depuis 2 ans
mais non résolu.
Ce classeur est truffé de fonctions qui proviennent de la macro
complémentaire utilitaire d'analyse ATPVBAEN.XLA, il y a des =convert()
partout.
Je ne peut pas convertir ces fichiers en 2007, sous peine que ce programme
ne marche plus pour les utilisateurs antérieurs à 2007.

Une solution a t-elle été trouvé?

Merci d'avance.


Avatar
Sophie
En effet, je crois que je suis très très mal!!!
C'est une appli qui gère tout le bilan comptable à partir d'un import d'un
logiciel comptable, développement qui a duré 1 an avec des dizaines de
milliers de cellules sur une vingtaine de classeur, puisque historique de 4
ans...
N'étant pas comptable, c'est imbuvable!
Bon, il est où le premier pont dans le 17ème à PARIS? ;-)

Merci de tes réponses quand même.
Avatar
Misange
Non ce n'est pas forcément la peine de sauter du haut d'un pont quand
même :-)
le fait qu'il y ait des dizaines de milliers de cellules ne change pas
grand chose quand il faut faire une seule fois un rechercher remplacer.
Ce qu'il faut d'abord c'est que tu identifies quelles sont les fonctions
de l'utilitaire d'analyse que tu utilises.
Si par exemple tu utilises fin.mois
Fin.mois qui "envoie le numéro séquentiel de la date du dernier jour du
mois précédant ou suivant la date_départ du nombre de mois indiqué."
(jargon de l'aide d'excel...)
=FIN.MOIS(date_départ;mois)

Au lieu d'utiliser cette fonction prédéfinie et qui pose le problème
évoqué, tu définis ta propre fonction perso en VBA que tu appelles par
exemple fin.de.mois avec les mêmes paramètres.
Il te suffit ensuite de rechercher dans ton classeur =fin.mois( et de le
remplacer par =fin.de.mois(

Si maintenant tu me dis que tu n'a pas le droit au VBA dans ton classeur
alors je te renvoie à la fonction = fin de moi (sans s cette fois ;-))


Misange migrateuse
http://www.excelabo.net : Participez à un travail collaboratif sur excel !


Sophie a écrit :
En effet, je crois que je suis très très mal!!!
C'est une appli qui gère tout le bilan comptable à partir d'un import d'un
logiciel comptable, développement qui a duré 1 an avec des dizaines de
milliers de cellules sur une vingtaine de classeur, puisque historique de 4
ans...
N'étant pas comptable, c'est imbuvable!
Bon, il est où le premier pont dans le 17ème à PARIS? ;-)

Merci de tes réponses quand même.



Avatar
Sophie
Je crois effet que je suis bonne pour créer mes propres fonctions.
Mais comment trouver rapidement les fonctions liée à la macro complémentaire
dans cette usine à gaz?
et puis, j'ai oublié de te dire un truc : cette appli est multipliée par ...
300 clients, chacun ayant les 20 classeurs avec les milliers de cellules.
Il faut pouvoir réouvrir un bilan de l'année précédente pour chaque client,
je ne peux pas corriger 6000 classeurs de plusieurs milliers de cellules.
Avatar
Modeste
Bonsour® Sophie avec ferveur ;o))) vous nous disiez :

Je crois effet que je suis bonne pour créer mes propres fonctions.
Mais comment trouver rapidement les fonctions liée à la macro
complémentaire dans cette usine à gaz?
et puis, j'ai oublié de te dire un truc : cette appli est multipliée
par ... 300 clients, chacun ayant les 20 classeurs avec les milliers
de cellules. Il faut pouvoir réouvrir un bilan de l'année précédente
pour chaque client, je ne peux pas corriger 6000 classeurs de
plusieurs milliers de cellules.



question importante :
quel est ton role dans cette société ????
une application comptable est stratégique pour une entreprise, on ne déploie pas une application de cette ampleur (développement qui a duré 1 an , 300 clients) sans quelques précautions : maintenance, assistance, évolution, adaptations au contexte.

cela sous-entend : un chef de projet, un chargé d'assistance, un chargé de maintenance
ces 3 roles peuvent etre tenus par la même personne, mais cela veux dire aussi que la personne est compétente dans ces domaines (comptable, bureautique, programmation)

Si tu n'as pas lettre de mission pour ces fonctions, ou que ton niveau d'expertise est insuffisant (usine à gaz) informes-en sans tarder ta hiérarchie, demande une assistance ou formation complémentaire.

-((
on ne s'improvise pas analyste-programmeur et encore moins debuggeur.
Excel est par essence un logiciel de productivité personnelle, que l'on peut étendre au contexte "local" d'une petite entreprise.
En tant que décideur vouloir en faire un outil de pilotage réparti c'est prendre des risques inconsidérés...
:-((
Avatar
MichDenis
J'avais publié un message sur ce fil mais il ne s'est jamais affiché (au moins chez moi)
En voici une variante...

| Le code VBA fonctionne bien sous excel 2007, puisque ce programme accepte de
| tourner une première fois et enregistre à un moment le fameux fichier sans
| probleme sous un nouveau nom via du code VBA.

**** Habituellement, lorsque tu ouvres un fichier d'une version antérieure,
Excel 2007 ouvre le fichier en mode compatibitlité c'est à dire que les
caractéristiques propres à excel 2007 ne sont pas accessibles.

**** Le fichier devient vraiment un fichier 2007 lorsque tu l'as enregistré
avec une extexions xlsx ou xlsm. De plus, suite àl'enregistrement, le fichier
doit être fermé et rouvert. Ce n'est qu'à ce moment que le fichier est
vraiment un fichier version 2007. Et là, tu dis que cela ne fonctionne plus !

À ma grande surprise, dans un classeur 2003, j'ai choisi au hasard quelques
formules émanant de l'utilitaire d'analyse et je l'ai inséré dans une feuille
de calcul pour mener un petit test. Utilisation très standard. J'ai enregistré
le fichier sous la version Excel 2003. Voici les fonctions utilisées.
No.Semaine() , Arrondi.au.Multiple() , Fin.Mois(), Serie.jour.ouvre()
Alea.Entre.Bornes()

Dans un second temps, j'ai ouvert le classeur et sans intervenir dans le fichier
je l'ai simplement enregistré sous Excel 2007 avec une extension xlsm ou xlsx.
J'ai refermé le classeur sans intervenir dans ce dernier et je l'ai ouvert à nouveau.
Là, j'avais vraiment un fichier 2007. Et bien à ma grande surprise, toutes ces
formules de l'utilitaire d'analyse version antérieur d'excel fonctionne très bien.
Pas besoin de passer les cellules contenant ces formules en mode édition pour
qu'elles reprennent leur aplomb. (il est encore très tôt heure du Québec ce matin
il y possible que je sois sous l'influence d'un rêve !!! )








"Sophie" a écrit dans le message de groupe de
discussion :
Bonjour,
J'ai un gros programme VBA développé sous Excel 5 à l'origine, réenregistré
sous excel 2003.
A l'ouverture d'un des fichiers du programme sous excel 2007, j'ai erreur
fichier, risque de perte de données et en effet, il me supprime plein de
formules de calculs et les remplace par #N/A.
Existe-t-il une solution?
Merci d'avance.
Avatar
Sophie
En effet, j'ai fait la même expérience et ça marche.
Le problème, c'est la nouvelle extension en 2007.
Le code VBA contient des références aux noms des classeurs avec leur
extensions .XLS
Dans mon cas, j'ai 6000 classeurs déjà nommés en .xls contenant du code qui
fait appel à des fichiers en .xls
Même si je change toutes les extensions des fichiers en .xlsm, il faut
encore changer tout le code VBA dans les 6000.

"MichDenis" a écrit :

J'avais publi un message sur ce fil mais il ne s'est jamais affich (au moins chez moi)
En voici une variante...

| Le code VBA fonctionne bien sous excel 2007, puisque ce programme accepte de
| tourner une premire fois et enregistre un moment le fameux fichier sans
| probleme sous un nouveau nom via du code VBA.

**** Habituellement, lorsque tu ouvres un fichier d'une version antrieure,
Excel 2007 ouvre le fichier en mode compatibitlit c'est dire que les
caractristiques propres excel 2007 ne sont pas accessibles.

**** Le fichier devient vraiment un fichier 2007 lorsque tu l'as enregistr
avec une extexions xlsx ou xlsm. De plus, suite l'enregistrement, le fichier
doit tre ferm et rouvert. Ce n'est qu' ce moment que le fichier est
vraiment un fichier version 2007. Et l, tu dis que cela ne fonctionne plus !

ma grande surprise, dans un classeur 2003, j'ai choisi au hasard quelques
formules manant de l'utilitaire d'analyse et je l'ai insr dans une feuille
de calcul pour mener un petit test. Utilisation trs standard. J'ai enregistr
le fichier sous la version Excel 2003. Voici les fonctions utilises.
No.Semaine() , Arrondi.au.Multiple() , Fin.Mois(), Serie.jour.ouvre()
Alea.Entre.Bornes()

Dans un second temps, j'ai ouvert le classeur et sans intervenir dans le fichier
je l'ai simplement enregistr sous Excel 2007 avec une extension xlsm ou xlsx.
J'ai referm le classeur sans intervenir dans ce dernier et je l'ai ouvert nouveau.
L, j'avais vraiment un fichier 2007. Et bien ma grande surprise, toutes ces
formules de l'utilitaire d'analyse version antrieur d'excel fonctionne trs bien.
Pas besoin de passer les cellules contenant ces formules en mode dition pour
qu'elles reprennent leur aplomb. (il est encore trs tt heure du Qubec ce matin
il y possible que je sois sous l'influence d'un rve !!! )








"Sophie" a crit dans le message de groupe de
discussion :
Bonjour,
J'ai un gros programme VBA dvelopp sous Excel 5 l'origine, renregistr
sous excel 2003.
A l'ouverture d'un des fichiers du programme sous excel 2007, j'ai erreur
fichier, risque de perte de donnes et en effet, il me supprime plein de
formules de calculs et les remplace par #N/A.
Existe-t-il une solution?
Merci d'avance.




1 2