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.

7 réponses

1 2
Avatar
Sophie
J'ai aussi plein de formules de calculs qui font références aux fichiers
externes en .xls.
Avatar
MichDenis
c'est possible de modifier la source d'une liaison en VBA
assez facilement (enfin ce l'était en version 2003) je suppose
que la chose doit aussi se faire en 2007



"Sophie" a écrit dans le message de groupe de
discussion :

J'ai aussi plein de formules de calculs qui font références aux fichiers
externes en .xls.
Avatar
Misange
Salut Denis

Ce que tu constates est tout à fait normal et le problème se produit en
fait dans l'autre sens.
Prends un classeur 2007, écris = fin.mois(..). Enregistre le en format
2007. Si tu le passes à quelqu'un travaillant sous une autre langue, pas
de problème, la fonction fin.mois qui est codée "en langage machine est
traduite dans la langue de ton utilisateur.
Maintenant enregistre le même classeur en format compatible 97-2003.
Il n'y a que les anglophones qui l'ouvriront sans problème ! tous les
autres verront une valeur d'erreur car la formule devient =eomonth() qui
n'est pas comprise par excel en version non anglophone...

Donc, soit tu recodes tous tes classeurs en te passant des fonctions de
l'utilitaire d'analyse et de cette manière, tu peux enregistrer en
format compatible et garder l'extension xls. Soit tu ne recodes rien et
tu enregistres en format 2007 et ça roule impec tant que tu restes dans
2007 (sauf effectivement dans le cas présent à devoir changer les
extensions xls en xlsm dans tout le code vba).

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


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 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
Misange
pour suivre :
Ron de bruin, a mis heureusement sur son site l'add-in "analysis tool
pack translator" fait par Eric Desart
http://www.rondebruin.nl/atptranslator.htm

Pour ton problème avec tes clients, tu n'échapperas pas à une mise à
jour de toutes façons. Le mieux serait bien sur de les convaincre de
passer sur 2007. Dans ce cas, un simple rechercher remplacer de xls en
xlsm dans le code vba et dans les formules te fera le boulot. Avec une
macro qui parcours tes fichiers cela devrait se faire assez vite (une
bonne occase d'aller boire un café !).

Sinon développe une version 2003 (tu l'as déjà) et une 2007...
La seule situation vraiment impossible c'est si un client a les deux
versions et ne veux pas homogénéiser son parc.

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


Sophie a écrit :
J'ai aussi plein de formules de calculs qui font références aux fichiers
externes en .xls.


Avatar
Sophie
Mais c'est malheureusement mon cas. les 300 clients sont gérés en interne
par mes collègues. Je suis dans un cabinet d'expertise comptable.
Sur les 30 PC du parc, il y a à la fois Office 2000, 2002, 2003 et
maintenant 2007 sur les nouveaux PC achetés.
Jamais ils accepteront de migrer tout le parc vers office 2007.
Avatar
MichDenis
Je reconnais là le côté "diablesse" de notre mi-ange ! ;-))

Perso, je reconnais à tort avoir énoncé dans des messages précédents
que lorsque l'on passait d'une version Excel 2003 et Excel 2007, il
fallait dans Excel 2007 passer chacune des cellules en mode édition
pour qu'excel 2007 soit en mesure de "comprendre" la fonction inscrite.

À ma plus grande honte (Je beurre épais sur ce coup ;-) ), j'étais dans
l'erreur et mon message précédent remet les pendules à l'heure.

Ceci étant dit, seulement 39 fonctions de la macro complémentaire
d'analyse ont été ajoutées à excel 2007 comme fonction de base. Mais
cette macro complémentaire existe encore et on peut encore l'ajouter
pour accéder au reste des fonctions qu'elle contient.
(Gros bouton office en haut à l'extrême gauche de l'application /
Options Excel / Compléments / bas de la fenêtre / Gérer : Compléments Excel /
bouton atteindre)

Attention la fonction EoMonth() n'appartient pas à la macro complémentaire
d'analyse mais bien à la macro complémentaire d'analyse VBA. Lorsque cette
dernière est cochée, le fichier responsable de cette dernière est chargé sous
excel 2003
Project atpvbaen.xls
C:Program FilesMicrosoft OfficeOFFICE11BibliothèqueAnalyseATPVBAEN.XLA

Cela nous donne accès à toutes les fonctions que ce fichier possède directement dans
la feuille. Cependant, ces dernières ne font pas parti de la liste initiale disponible
lorsque
l'on clique sur le "crochet" pour appeler la fenêtre des fonctions pour effectuer son
choix.
Cependant, il est facile de se laisser berner car si on connaît par coeur une fonction en
anglais comme EoMonth() et qu'on l'utilise dans une feuille, cette fonction s'ajoutera
d'elle-même dans la liste des fonctions disponibles pour le choix subséquent. Une
différence
existe cependant car si nous retenons la version anglaise dans la liste qui nous est
présenté
nous n'aurons pas droit aux explications des paramètres comme c'est le cas en français.

Après cette brève introduction, tous (ou presque) savent qu'excel sous les versions
précédentes
à excel 2007, ne font pas la traduction des fonctions d'une langue à l'autre lorsqu'elles
émanent
de la macro complémentaire utilitaire d'analyse. Ceci est vrai pour toutes les langues. À
cause
de la macro complémentaire d'analyse VBA (qui elle fut écrite pour être utilisé en VBA ,
donc en
anglais, ceci pour nous laisser l'impression que c'est différent pour le Français et
l'anglais.

J'arrête ici... je veux m'en garder un peu pour mon livre !!!!
;-)))






"Misange" a écrit dans le message de groupe de discussion :

Salut Denis

Ce que tu constates est tout à fait normal et le problème se produit en
fait dans l'autre sens.
Prends un classeur 2007, écris = fin.mois(..). Enregistre le en format
2007. Si tu le passes à quelqu'un travaillant sous une autre langue, pas
de problème, la fonction fin.mois qui est codée "en langage machine est
traduite dans la langue de ton utilisateur.
Maintenant enregistre le même classeur en format compatible 97-2003.
Il n'y a que les anglophones qui l'ouvriront sans problème ! tous les
autres verront une valeur d'erreur car la formule devient =eomonth() qui
n'est pas comprise par excel en version non anglophone...

Donc, soit tu recodes tous tes classeurs en te passant des fonctions de
l'utilitaire d'analyse et de cette manière, tu peux enregistrer en
format compatible et garder l'extension xls. Soit tu ne recodes rien et
tu enregistres en format 2007 et ça roule impec tant que tu restes dans
2007 (sauf effectivement dans le cas présent à devoir changer les
extensions xls en xlsm dans tout le code vba).

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


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 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
Misange
Je n'aurais qu'un mot (c'est faux d'ailleurs ça fait 2)
quel B...
Merci microsoft, tous ceux qui ne bossent pas en anglais sont dans la
mouise avec ce truc.
Tes explications sont ma foi fort complètes et montrent bien la
complexité du truc.
On ne peut que réitérer le conseil : évitez comme la peste les fonctions
de l'utilitaire d'analyse !

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


MichDenis a écrit :
Je reconnais là le côté "diablesse" de notre mi-ange ! ;-))

Perso, je reconnais à tort avoir énoncé dans des messages précédents
que lorsque l'on passait d'une version Excel 2003 et Excel 2007, il
fallait dans Excel 2007 passer chacune des cellules en mode édition
pour qu'excel 2007 soit en mesure de "comprendre" la fonction inscrite.

À ma plus grande honte (Je beurre épais sur ce coup ;-) ), j'étais dans
l'erreur et mon message précédent remet les pendules à l'heure.

Ceci étant dit, seulement 39 fonctions de la macro complémentaire
d'analyse ont été ajoutées à excel 2007 comme fonction de base. Mais
cette macro complémentaire existe encore et on peut encore l'ajouter
pour accéder au reste des fonctions qu'elle contient.
(Gros bouton office en haut à l'extrême gauche de l'application /
Options Excel / Compléments / bas de la fenêtre / Gérer : Compléments Excel /
bouton atteindre)

Attention la fonction EoMonth() n'appartient pas à la macro complémentaire
d'analyse mais bien à la macro complémentaire d'analyse VBA. Lorsque cette
dernière est cochée, le fichier responsable de cette dernière est chargé sous
excel 2003
Project atpvbaen.xls
C:Program FilesMicrosoft OfficeOFFICE11BibliothèqueAnalyseATPVBAEN.XLA

Cela nous donne accès à toutes les fonctions que ce fichier possède directement dans
la feuille. Cependant, ces dernières ne font pas parti de la liste initiale disponible
lorsque
l'on clique sur le "crochet" pour appeler la fenêtre des fonctions pour effectuer son
choix.
Cependant, il est facile de se laisser berner car si on connaît par coeur une fonction en
anglais comme EoMonth() et qu'on l'utilise dans une feuille, cette fonction s'ajoutera
d'elle-même dans la liste des fonctions disponibles pour le choix subséquent. Une
différence
existe cependant car si nous retenons la version anglaise dans la liste qui nous est
présenté
nous n'aurons pas droit aux explications des paramètres comme c'est le cas en français.

Après cette brève introduction, tous (ou presque) savent qu'excel sous les versions
précédentes
à excel 2007, ne font pas la traduction des fonctions d'une langue à l'autre lorsqu'elles
émanent
de la macro complémentaire utilitaire d'analyse. Ceci est vrai pour toutes les langues. À
cause
de la macro complémentaire d'analyse VBA (qui elle fut écrite pour être utilisé en VBA ,
donc en
anglais, ceci pour nous laisser l'impression que c'est différent pour le Français et
l'anglais.

J'arrête ici... je veux m'en garder un peu pour mon livre !!!!
;-)))






"Misange" a écrit dans le message de groupe de discussion :

Salut Denis

Ce que tu constates est tout à fait normal et le problème se produit en
fait dans l'autre sens.
Prends un classeur 2007, écris = fin.mois(..). Enregistre le en format
2007. Si tu le passes à quelqu'un travaillant sous une autre langue, pas
de problème, la fonction fin.mois qui est codée "en langage machine est
traduite dans la langue de ton utilisateur.
Maintenant enregistre le même classeur en format compatible 97-2003.
Il n'y a que les anglophones qui l'ouvriront sans problème ! tous les
autres verront une valeur d'erreur car la formule devient =eomonth() qui
n'est pas comprise par excel en version non anglophone...

Donc, soit tu recodes tous tes classeurs en te passant des fonctions de
l'utilitaire d'analyse et de cette manière, tu peux enregistrer en
format compatible et garder l'extension xls. Soit tu ne recodes rien et
tu enregistres en format 2007 et ça roule impec tant que tu restes dans
2007 (sauf effectivement dans le cas présent à devoir changer les
extensions xls en xlsm dans tout le code vba).

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


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 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.







1 2