stef68600
Messages postés42Date d'inscriptionvendredi 31 juillet 2009StatutMembreDernière intervention26 juillet 2013
-
10 mars 2010 à 20:24
stef68600
Messages postés42Date d'inscriptionvendredi 31 juillet 2009StatutMembreDernière intervention26 juillet 2013
-
12 mars 2010 à 15:04
Bonjour à tous,
je suis dans la panade...
je crée des fichiers xls via ces instructions :
oExcel = CreateObject("Excel.Application")
oBook = oExcel.Workbooks.Open(Filename:=nom_fichier)
oSheet = oExcel.ActiveSheet
le problème c'est qu'a l'origine les pc de la boite avait Excel 2003 tout allait bien.
depuis quelque temps Excel 2007 apparait ce qui ne pose pas de prob à la construction du fichier.
mais impossible d'ouvrir le fichier avec Excel 2003 et 2007.
Je pense que cela viens du système d'interpolation qui était en V11 pour Excel 2003 et est maintenant en V12 pour excel 2007.
ma question : comment continuer à fabriquer mes fichiers pour qu'il soit compatible en version 2003 et 2007 ???
stef68600
Messages postés42Date d'inscriptionvendredi 31 juillet 2009StatutMembreDernière intervention26 juillet 2013 11 mars 2010 à 20:36
Casy, ça à l'air ok.
suppression de la réference
et
oBook.Saveas(Filename:=nom_fichier, FileFormat:=56)
j'arrive à ouvrir, modifier, supprimer avec un excel 2007 sur le poste.
j'arrive a ouvrir le fichier en excel 2003 sur un autre poste.
il me reste à essayer une appli qui a excel 2003 et verifier si le fichier s'ouvre en 2007 pour être compatible à 100%
je regarde ça demain et te tiens au courant.
stef68600
Messages postés42Date d'inscriptionvendredi 31 juillet 2009StatutMembreDernière intervention26 juillet 2013 10 mars 2010 à 21:10
Bonsoir Casy,
ça c'est la théorie, mais en faite j'ai déja fait ce test et le fichier crée avec mon appli et excel 2007 installé.ben pour l'ouvrir avec excel 2003 et le convertisseur ça marche pas.
car c'est la que tu me mets sur une piste, c'est que le fichier continu à être crée en extension *.XLS
que je suis bête...
néanmoins malgré ma bétise, je pensais que mes commandes ( save=nomfichier) allais crée un fichier sous format excel 2003 avec 2007(comme enregistré sous "format excel 97-2003").
donc ce qu'il reste comme question :
1) comment détecter la version excel installer ?
2)comment forcer l'enregistrement sous "format excel 97-2003")si la détection trouve EXCEL 2007 ?
a moins que la version interpolation soit primordiale.
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 10 mars 2010 à 21:47
Dans l'exemple que tu donne, tu utilise Workbooks.Open. Tu ouvre donc un fichier déjà existant. Dans ce cas il sera ouvert dans le format ou il a été créé.
C'est plutôt au moment de la création qu'il faut faire attention
Quelques pistes :
sur ton objet oExcel, tu as une propriété Version qui va te donner la version d'Excel en cours d'utilisation qui pourra t'aider à déterminer l'extension d'un nouveau fichier.
Ou
Sur ton book tu as une propriété FileFormat, associée à la méthode SaveAs, tu devrais pouvoir forcer le format Excel 2003 lors de la création
[i][b]---- Sevyc64 (alias Casy) ----
[hr]# LE PARTAGE EST NOTRE FORCE #/b/i
Vous n’avez pas trouvé la réponse que vous recherchez ?
stef68600
Messages postés42Date d'inscriptionvendredi 31 juillet 2009StatutMembreDernière intervention26 juillet 2013 10 mars 2010 à 22:15
ok voila ce qui fonctionne :
avec chemin en dur
oBook.Saveas("c:\titi.xls", oExcel.FileFormat = "xlExcel8")
ou
oBook.Saveas("c:\toto.xls", oExcel.xlWorkbookNormal)
le problème c'est que ça passe pas en chemin relatif avec "filename:=monfichier" ça me dit filename n'est pas déclaré.
stef68600
Messages postés42Date d'inscriptionvendredi 31 juillet 2009StatutMembreDernière intervention26 juillet 2013 10 mars 2010 à 22:59
désolé,
je suis allé trop vite ça fonctionne pas en dur j'avais pas d'erreur à la compile .
erreur :
Le membre public 'FileFormat' du type 'ApplicationClass' est introuvable.
avec:
oBook.Saveas("c:\hotline\toto.xls", oExcel.FileFormat = "xlExcel8")
erreur : La méthode SaveAs de la classe Workbook a échoué.
avec:
oBook.Saveas("c:\hotline\toto.xls", FileFormat:="XlFileFormat.xlExcel8")
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 11 mars 2010 à 17:05
Après un peu de recherche, j'ai quelques explications.
En utilisant les liaisons tardives dans la création de tes objets Excel (ça, tu n'as as le choix pour pouvoir être compatible avec plusieurs versions) les constantes des énumérés ne sont pas reconnues car pas connues à l'avance.
Tu ne peux donc pas écrire ta ligne "SaveAs" avec l'énuméré xlExcel8. Il faut obligatoirement y mettre à la place directement la valeur numérique de l'énuméré correspondant soit 56 dans le cas présent.
Si tu souhaite quand même utiliser une valeur littérale (car plus lisible), la solution est de créer une constante ayant pour valeur 56 :
Const XLEXCEL8 As Integer = 56
Dim oExcel As Object
Dim oBook As Object
oExcel = CreateObject("Excel.Application")
oBook = oExcel.Workbooks.Add()
oBook.SaveAs(Filename:="C:\temp\toto.xls", FileFormat:=XLEXCEL8)
oBook.Close()
oExcel.Quit()
oExcel = Nothing
[i][b]---- Sevyc64 (alias Casy) ----
[hr]# LE PARTAGE EST NOTRE FORCE #/b/i
stef68600
Messages postés42Date d'inscriptionvendredi 31 juillet 2009StatutMembreDernière intervention26 juillet 2013 11 mars 2010 à 17:29
merci casy, de ton aide.
cette remarque est très pertinante et je vais l'appliquer.
par contre (je poste aussi sur develloper.XXX) on c'est apercu qu'il manquait la ref de la dll d'interpolation.
maintenant j'ai ajouté cette ref , mais l'imports ne fonctionne pas (déclaration).
as-tu une idée, ça me dit ref introuvable.
Merci pour tes recherches et ton temps que tu me consacre.
Cordialement