Problème ouverture fichier.xls
lermite222 Messages postés 9042 Statut Contributeur -
J'ai développé une petite application pour un export de fichier excel , en VB.NET
J'arrive à ouvrir ces fichiers excel avec Excel 2010 mais absolument pas avec excel 2003 alors que mon fichier s'appelle "fichier.xls"
wbExcel.SaveAs("fichier.xls")
Quelqu'un a t il une idée pour me permettre d'ouvrir ce fichier avec Excel 2003?
Cordialement
27 réponses
- 1
- 2
Le problème concerne l’export d’un fichier Excel en VB.NET qui s’ouvre sous Excel 2010 mais pas sous Excel 2003, malgré l’extension .xls et wbExcel.SaveAs("fichier.xls"), indiquant une incompatibilité éventuelle. Des réponses suggèrent d’utiliser l’identifiant de format Excel8 (56) ou la constante xlExcel8 lors du SaveAs pour produire un fichier compatible avec Excel 2003 notamment. En principe, remplacer par SaveAs("fichier.xls", xlExcel8) ou déclarer Const xlExcel8 = 56 permet une ouverture plus fiable sur les postes utilisant Excel 2003 et autres versions. Des détails supplémentaires indiquent que les méthodes et propriétés utilisées dépendent du framework et de l’OS cible (XP, Vista, 7), ce qui peut expliquer les écarts de compatibilité entre Excel 2010 et 2003.
-
Remplace par 56
ou déclare la constante
Const xlExcel8 = 56
En principe ça devrait fonctionner.
-
Bonjour,
wbExcel.SaveAs "fichier.xls", xlExcel8
A+ -
Bonjour,
la ligne que vous donnez permet d'enregistrer un fichier, mais pas de l'ouvrir ???
Cordialement. -
oui, je sais, j'exporte le fichier ;-)
et après, je ne l'affiche pas tout de suite
En fait, c'est un autre utilisateur qui va chercher le fichier dans le répertoire et qui cherche ensuite à l'afficher sur son propre poste
Cdt -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Ca me dit que xlExcel8 n'est pas déclaré...
Est ce normal?
En tout cas merci ;-) -
Super merci !!
Et sinon, autre petite question, j'ai dans mon application la fonction
BorderAround2() pour permettre de mettre des bordures aux cellules
quand je lance l'application depuis un poste avec Excel 2010, cette fonction fonctionne à merveille
Avec le poste avec la version 2003, le programme plante
Pour info, le programme sert à exporter des données via un programme vb.net et donc mon poste est en Excel 2010 alors que celui des personnes pour qui je bosse est en Excel 2003...
Celà est il lié ?
Dois je crée un autre sujet ?
En tout cas un grand merci pour l'aide !! -
Dois je crée un autre sujet ?
Pas nécessaire.
Certaines propriétés et fonctions de 2010 n'existe pas en version 2003, tu dois en tenir compte.
Le mieux c'est de développer sur la version la plus basse utilisée, dans ton cas 2003.
Pour que ta macro fonctionne quand même tu peu mettre un
On Error Resume Next
Avant les lignes qui plante, mais cela va influencer le design dans le 2003
A+
Edit: Je ne l'ai même pas dans le 2007
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques. -
Tu pourrais aussi faire une double macro en fonction de la version de l'appli.
-
Oui il faudrait peut être faire deux macros
j'ai trouvé sur internet que la "library" que j'utilise dans mon application est trop "élevée" pour Excel 2003.
Dans ce cas, ne devrais je pas télécharger une library compatible ?
Si oui, y a t il un endroit ou je peux la trouver ?
Cdt -
Non, faut pas ajouter de bibliothèque.
pour connaitre la version de l'application..Dim V V = Application.Version
Pour le 2000 c'est "9.0" pour le 2007 c'est "12.0" pour le 2010 ?? je ne l'ai pas
et je verrais le code qui flanche..
if Application.Version = "XX.0" le code du 2010
Le code qui va dans ton 2010
Else
Le code qui va dans le 2003
End if
Éventuellement enlever le Option Explicit en haut de la page. -
d'accord, je vais essayer ca :)
mais j'ai besoin de mon BorderAround2 dans la version 2003, je fais comment avec cette méthode ?
Cdt -
Quel type de bordure ça fait ?
Je pourrais voir pour transcrire ce code en 2003 -
des bordures toutes simples en fait un trait noir fin
ah d'accord merci beaucoup
Cependant, pourrais je utiliser la microsoft excel 9.0 livrary depuis mon poste pour développer cette application ou pas du tout ?
Cdt ;-) -
pas du tout et tu ne saurais pas installer le 2003, excel refuserait en disant qu'il y a une plus récente. Je le sais parce que quand j'ai changer de PC je vouais le 2000 et le 2007, j'ai du installer le 2000 en premier et ensuite le 2007 en gardant le 2000 (il pose la question).
Même en désinstallant ton 2010 ça n'irais pas, y reste des fichiers et tu pourras pas mettre le 2003.
Seul solution, développer sur un PC qui a le 2003.
des bordures toutes simples en fait un trait noir fin
Cadre sur la plage ou toutes les cellules? -
Je ne peux pas développer sur le PC qui a le 2003 car ils sont tous utilisés... (je suis en stage dans l'entreprise)
"des bordures toutes simples en fait un trait noir fin
Cadre sur la plage ou toutes les cellules? "
Sur les plages définies dans le code ;-)-
-
-
Le texte de l'erreur ?
Rem c'est mettre en remarque >> Une ' (apostrophe devant la ligne) ...Ahh = Commentaire
Pour voir où est l'erreur...
mettre un point d'arrêt sur la ligne de code qui suit tes... commentaire
Pour mettre un point d'arrêt..Mettre le curseur sur la ligne de code et taper F9.
Lancer la macro>>elle va s'arrêter sur cette ligne, chaque frappe de F8 passe à la commande suivante. Examiner sur quel ligne ça plante.
Sinon, poste la macro en entier, je verrais si je comprend. -
-
-
-
Oui mais.....
Maintenant que tu avance...
Tu développe une appli VB.Net, qui fait appel à Excel 2010
Tu a fait un setup de ton appli pour la mettre sur un autre PC ???
Explique comment tu pratique, j'ai l'impression que tu "oublie" certaines étape. :-))
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques. -
oui j'ai fait un setup pour un autre PC
Alors en fait, au départ, je crée une application excel
je crée les "titre" de mes tableaux, je mets tout en page quoi (fusion de cellules, bordures etc)
je fais mes connexions avec la base de données, j'exporte mes données dans des datagrid, et je les mets dans le fichier excel
et j'enregistre
puis j'affiche
Sur excel 2010, tout fonctionne et sur 2003 ça plante...
et je ne sais pas où ca plante car les pc sur lesquels j'execute le projet n'ont pas de visual studio installé
Cdt ;-) -
Oui, les méthode du 2010 et 2003 ayant étés (provisoirement) ôtées, faut aussi voir si les méthodes/propriétés que tu met dans ton VB (pour lequel tu ne m'a toujours pas communiquer la version) sont supportées par le FrameWork des autre PC hôte.
Sous quel OS sont les autre PC ? XP, Vista ???
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques. -
euh je dirais Vista ou Seven mais j'ai un gros doute...
j'ai écris plus haut que c'était un visual studio 2010 :-)
Puis je vous dire ca demain car j'ai quitté le lieu du stage et ne cotoyant pas les postes tous les jours je ne le connais pas par coeur :/
Cordialement -
Bonjour, je reviens vers vous avec la configuration des postes
Alors la plupart des postes sont sous Windows Server 2003 avec Office 2000, ce sont des consoles
Et le reste sont sous XP
Cordialement
- 1
- 2