cs_Gegeleblond
Messages postés41Date d'inscriptionlundi 31 mars 2008StatutMembreDernière intervention 2 août 2010
-
14 mai 2008 à 20:50
cs_Gegeleblond
Messages postés41Date d'inscriptionlundi 31 mars 2008StatutMembreDernière intervention 2 août 2010
-
15 mai 2008 à 16:39
Bonjour,
Je sais qu avec la commande Workbooks.Open Filename:="C:\Documents\toto.xls", j ouvre un fichier deja existant avec VB6 mais j aimerais pouvoir creer mon propore fichier Excel.
Savez vous comment faire?
bigfish_le vrai
Messages postés1835Date d'inscriptionvendredi 13 mai 2005StatutMembreDernière intervention20 novembre 201315 14 mai 2008 à 22:48
...
NewXlFile
.Close False 'ferme le fichier sans aucun message d'alerte meme si il n'a pas ete sauvé
ExcelAppli.Quit 'ferme excel
Set
NewXlFile = Nothing 'vide la variable objet
Set
ExcelAppli
= Nothing
'vide la variable objet
pour les 2 dernieres lignes il est recommender de les avoirs en VB6, ne me demande pas pourquoi je ne suis pas un expert VB6 Par contre je te le deconseil en VBA. Le VBA n'aime pas du tout ca a tel point que la plus part du temps cela tue excel sans aucun message d'erreur.
Pas glop !
pile_poil
Messages postés682Date d'inscriptionvendredi 6 avril 2007StatutMembreDernière intervention 4 août 20126 14 mai 2008 à 23:05
mets le nom de ton fichier text dans une variable
et utilise cette variable pour enregistrer ton fichier excel
un truc du genre
toto = "c:\ monprog\test.sin"
NewXlFile.SaveAs left(toto, len(toto)-3) & "xls"
[reglement.aspx ]si c'est la solution, penser : REPONSE ACCEPTEE
donc comme te la expliqué pile_poil il te faut extraire le nom sans l'extension .sin
NomFichier = CommonDialog1.FileName
NomFichier = Left(NomFichier, Instr(NomFichier, ".") -1) 'instr renvoi la position du point
NewXlFile.SaveAs Filename:=
NomFichier, FileFormat:=xlNormal
pile_poil :
FileFormat:=xlNormal permet d'attribuer directement l'extension par defaut d'excel (.xls) donc je propose une autre solution mais la tienne marche aussi
pile_poil
Messages postés682Date d'inscriptionvendredi 6 avril 2007StatutMembreDernière intervention 4 août 20126 14 mai 2008 à 23:32
len(toto) te donne le nombre de caractères de la variable toto
donc left(toto, len(toto)-3) & "xls" prend la partie gauche de totode toute la longeur moins trois lettres (en l'occurence sin) et ajoute "xls " donc dans l'exemple que je te donnais
"c:\ monprog\test.sin" est transformé en "c:\ monprog\test.xls"
mais tu aurais pu pour savoir ce que voulait dire "len" mettre ton curseur sur ce mot dans VB6 et appuyer sur F1 pour avoir l'aide en ligne et donc toutes les explication
en réponse à ta deuxieme question :
quel est ton code pour ouvrir ton fichier *.sin ?
[reglement.aspx ]si c'est la solution, penser : REPONSE ACCEPTEE
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_Gegeleblond
Messages postés41Date d'inscriptionlundi 31 mars 2008StatutMembreDernière intervention 2 août 2010 14 mai 2008 à 22:53
Encore une autre question :
Pour etre clair, dans mon programme, j ouvre un fichier (par exemple test.sin), ensuite je créeun fichier Excel que je rempli avec des valeurs provenant de test.sin (ce que j ai pu faire grace à ton aide) mais je souhaiterai que ce fichier Excel prenne le meme nom et le meme emplacement que test.sin à l exception pres que son extension sera .xls (test.xls).
J ai essayé d utiliser CommonDialog1.FileName pour nommer mon fichier Excel puisque CommonDialog1.FileName est le nom du fichier selectionné lorsque je demande à mon programme d ouvrir un fichier mais je n y arrive pas. J ai ecrit
NewXlFile.SaveAs FileName = CommonDialog1.FileName, FileFormat:=xlNormal mais ca ne fonctionne pas.
cs_Gegeleblond
Messages postés41Date d'inscriptionlundi 31 mars 2008StatutMembreDernière intervention 2 août 2010 14 mai 2008 à 23:23
Euh je saisis pas trop le len(toto)-3... peux tu expliciter un peu?
En outre j ai pris test.sin comme exemple, en realite je dois etre capable de creer ce fichier excel (avec le meme nom et le meme emplacement) pour n importe quel fichier dont l extension est .sin. Or si je suis ta methode, je devrai à chaque fois revenir dans le code... C est pour ca que je tentais quelque chose avec CommonDialog1.FileName mais en vain...
pile_poil
Messages postés682Date d'inscriptionvendredi 6 avril 2007StatutMembreDernière intervention 4 août 20126 14 mai 2008 à 23:40
bigfish tu as raison de le souligner !
mais pour moi il y a longtemps, et ayant appris tout seul a programmer VB6, je ne connaissais pas fileformat et avais trouvé cette astuce et l'habitude aidant ..... je l'ai gardée !
[reglement.aspx ]si c'est la solution, penser : REPONSE ACCEPTEE
pile_poil
Messages postés682Date d'inscriptionvendredi 6 avril 2007StatutMembreDernière intervention 4 août 20126 15 mai 2008 à 09:18
salut jrivet !
le probleme d'ajouter le reférence c'est le X.X car quand tu installes ton .exe sur une machine qui n'a pas la même version d'excel tu te retrouves avec une erreur
par contre c'est vrai qu'au moment du dévellopement l'intellisense est pratique
il est donc intéressant de travailler en liaison tardive de se passer des constantes Excel ( ou d'utiliser leurs correspondances numériques si elles existent) et de supprimer la référence au moment de la création de l'exe de façon à rendre ton programme compatible avec toutes les versions excel
A moins qu'il existe un solution plus élégante que je ne connaitrais point !
[reglement.aspx ]si c'est la solution, penser : REPONSE ACCEPTEE