Utilisation des fichiers du projet

Résolu
bobarman Messages postés 29 Date d'inscription mardi 27 avril 2004 Statut Membre Dernière intervention 22 juin 2011 - 17 juin 2011 à 15:32
bobarman Messages postés 29 Date d'inscription mardi 27 avril 2004 Statut Membre Dernière intervention 22 juin 2011 - 22 juin 2011 à 12:16
Bonjour,

Le programme que je développe, utilise deux fichiers Excel. J'ai donc créé un répertoire "ExcelFile" dans le projet dans l'explorateur de solution.

Après je veux les ouvrir, il me faut le chemin d’accès et j'ai naïvement cru que ceci marcherait:

System.Environment.CurrentDirectory.ToString & "\ExcelFile\TOTO.xls"

Mais quand il compile ce CO###D ne copie pas le répertoire pour le mettre avec l'application. Par contre si je copie ExcelFile dans le répertoire Debug, ça marche.

Qu'est ce que je rate pour qu'il fasse tout, tout seul?

Clement B

15 réponses

ehjoe Messages postés 728 Date d'inscription samedi 4 avril 2009 Statut Membre Dernière intervention 30 mars 2014 4
22 juin 2011 à 11:59
Clément,

Voici le code :

------------------
Option Explicit On
Public Class Form1

Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim existe As Boolean = System.IO.File.Exists(My.Application.Info.DirectoryPath & "\nouveau.xls")
If existe = False Then System.IO.File.WriteAllBytes(My.Application.Info.DirectoryPath & "\nouveau.xls", My.Resources.nouveau)
End Sub

End Class
----------------

En mode debug c'est dans BIN, une fois installé ce sera dans le répertoire de l'exe du programme, attention, les deux lignes de code sont longues, ne les coupe pas.

Au plaisir, cordialement.

Joe.
3
ehjoe Messages postés 728 Date d'inscription samedi 4 avril 2009 Statut Membre Dernière intervention 30 mars 2014 4
17 juin 2011 à 20:49
Bonjour,

My.Application.Info.DirectoryPath & "\nomFichier.ext"

Il faut mettre le répertoire cntenant les fichiers Excel dans celui de l'application, et dans Bin (peut être), durant le debugage.

A la distribution, faudra rajouter ce répertoire.

Si les données Excel sont fixes, tu peux aussi le mettre en ressources.

Cordialement.
0
bobarman Messages postés 29 Date d'inscription mardi 27 avril 2004 Statut Membre Dernière intervention 22 juin 2011 1
21 juin 2011 à 11:51
Quand tu dis ajouter le répertoire à la distribution, tu entends le faire après avoir installer le programme, ou un truc dans les propriétés du projet avant la publication?

et le coup des ressources, comment ça marche?

Clement B
0
ehjoe Messages postés 728 Date d'inscription samedi 4 avril 2009 Statut Membre Dernière intervention 30 mars 2014 4
21 juin 2011 à 14:14
Bonjour,

En réponse et comme tu dis :

Un truc dans les propriétés du projet avant la publication.

Le plus simple pour toi sera de mettre les fichiers en ressources, ainsi ils seront distribués, ensuite à chaque lancement tu testes leur pésence, s'ils existent : tu passe à la suite du code, et s'ils n'existent pas tu les copies dans le répertoire courant de l'application (quand tout sera installé ça marchera ainsi).

Mais... en mode debug, c'est dans le répertoire bin par défaut que tout se passe, mais ensuite quand tu en auras fait une application installée tout se passera, enfin, pourra se passer dans le répertoire de ton exe.

Pour mettre en ressources, tu ouvres l'explorateur de solutions, tu double-cliques sur "my project", ce qui va t'ouvrir une interface, tu cliques sur l'onglet "ressources", puis tu cliques en haut en déroulant le combo sur "ajouter une ressource" puis sur "ajouter un fichier existant", un explorateur va s'ouvrir, tu lui indiques tes deux fichiers et tu valides, puis tu enregistre dans vbNet (enregistrer tout), puis tu ferme linterface, désormais tu pourras t'adresser à tes fichiers ressource depui le code, les sortir des ressources, il seront automatiquement empaquetés avec ton installation sans rien faire d'autre...

Si tu ne sais pas écrire le code pour gérer ensuite, tu me le dis, je te l'écrirais, tu me donneras le nom de tes fichiers seulement (excel).

Faudrait aussi me dire ce que tu veux ensuite faire de ces fichiers, est-ce que tu a pévu décrire dedans ou est-ce seulement de la lecture/affichage, et pourquoi as-tu pris des fichiers excel, ils continnent quoi, de quelle taille ?

Réponds bien à tout, cordialement.

Joe.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
bobarman Messages postés 29 Date d'inscription mardi 27 avril 2004 Statut Membre Dernière intervention 22 juin 2011 1
22 juin 2011 à 09:01
En fait il n'y as pas grand chose, si j'utilise des fichier excel c'est pour me facilité l'impression (je ne sais pas imprimer en VB) donc, un classeur avec 8 feuilles car en-tête et pieds de pages différents.

Dans le fichier il n'y a quasiment rien du tout. J'ai fais la mise en page, je vais la remplir par le code et je laisse l'utilisateur imprimer.

le fichier s'appelle New.xls, je l'ai ajouté dans les ressources, il apparait comme "_New"

Après, ce que je voudrait, c'est ouvrir excel un peu comme ça:

Dim excel As New Microsoft.Office.Interop.Excel.Application
excel.Workbooks.Open(" Le chemin d’accès au fichier ressource ")

Quelle est le chemin d'accès?
Clement B
0
ehjoe Messages postés 728 Date d'inscription samedi 4 avril 2009 Statut Membre Dernière intervention 30 mars 2014 4
22 juin 2011 à 09:53
Bonjour,

Alors il faut renommer ta ressource car tu lui a donné le nom d'un mot clef "new", suffit de lappeler "nouveau" par exemple (tu supprimee tout code qui y ferait référence dans ce que tu as écrit, puis tu supprime la ressource via la méthode indiqué pour l'y mettre, tu enregistre bien tout, ensuite tu renomme ton new, et tu recommence), c'est pas que ça ne marchera pas mais faut éviter ça pour des raisons de confusion, mais tu ne savais pas, normal.

Et le second fichier lui, il sert à quoi et se nomme comment (je te demande ça pour écrire le code) ?

Donc :
- Me dire comment se nomme tes deux fichiers dont l'un renommé (_new) ?
- Tu confirmes que donc il n'y aura rien à écrire dans ces fichirs excel, ce qui implique que tu les berrouille en écriture (read only) ?

Dès que j'aurais, je técris le code pour les sortir des ressources après installation, et les laisser pésents en permanence.

Cordialement.

Joe.
0
bobarman Messages postés 29 Date d'inscription mardi 27 avril 2004 Statut Membre Dernière intervention 22 juin 2011 1
22 juin 2011 à 10:01
Finalement je n'ai qu'un seul fichier avec plusieurs feuille dedans.


Clement B
0
bobarman Messages postés 29 Date d'inscription mardi 27 avril 2004 Statut Membre Dernière intervention 22 juin 2011 1
22 juin 2011 à 10:05
donc un fichier nouveau, je pense que c'est pour éviter les confusion que VB2008 à renommer New.xls en _New.

L'utilisateur ne fait pas modif, il ne fais qu'imprimer.


Clement B
0
bobarman Messages postés 29 Date d'inscription mardi 27 avril 2004 Statut Membre Dernière intervention 22 juin 2011 1
22 juin 2011 à 10:06
j'ai trop honte des fautes :

donc un fichier nouveau, je pense que c'est pour éviter les confusions que VB2008 a renommé New.xls en _New.

L'utilisateur ne fait pas de modif, il ne fait qu'imprimer.


Clement B
0
ehjoe Messages postés 728 Date d'inscription samedi 4 avril 2009 Statut Membre Dernière intervention 30 mars 2014 4
22 juin 2011 à 10:31
Clément,

Quand tu auras un nom définitif de fichier à me donner je te fais ton code ?

Dans cette attente, cordialement.

Joe.
0
bobarman Messages postés 29 Date d'inscription mardi 27 avril 2004 Statut Membre Dernière intervention 22 juin 2011 1
22 juin 2011 à 10:35
ben comme je l'ai marqué et comme tu l'as suggéré c'est le fichier nouveau.xls

Clement B
0
ehjoe Messages postés 728 Date d'inscription samedi 4 avril 2009 Statut Membre Dernière intervention 30 mars 2014 4
22 juin 2011 à 11:42
Clément, ok, je te fais ça, à bientôt. Joe.
0
bobarman Messages postés 29 Date d'inscription mardi 27 avril 2004 Statut Membre Dernière intervention 22 juin 2011 1
22 juin 2011 à 12:07
merci beaucoup


Clement B
0
ehjoe Messages postés 728 Date d'inscription samedi 4 avril 2009 Statut Membre Dernière intervention 30 mars 2014 4
22 juin 2011 à 12:07
Clément, suite, j'oubliais :

Ce n'est pas très catholique ce que tu fais car normalement en programmation on doit tout faire avec le code, si par exemple la personne n'a pas de quoi ouvrir excel ça va planter, en faisant ça c'est rendre ton programme moins autonome.

Si ça marche (ça devrait), et si tu veux ensuite, tu me passes ton fichier excel, on va essayer de mettre ses composants dans le code en ressources et de l'imprimer depuis le programme, ainsi il ne sera plus question de fichier !

Faut pas à mon sens rendre ton programmes plus dépendant qu'il ne doit, y en a qui saute la gestion de l'impression, comme toi en imprimant dans Word, d'autres qui sautent la gestion des fichirs en utilisant une base de données, en définitives ils ne savent pas faire grand chose et utilisent des artifices de type vbA et non vbNet, où normalement tout doit être en code et sortir du programme sans aucune autre dépendance de logiciels... c'est la différence ente le paramétrage vbA et la programmation, ici vbNet, on doit savoir gérer les fichier avec le code et aussi l'impression

A toi de voir, passe par mail, je suis à

montmartre75018
arobase
free
point
fr

Cordialement.

Joe.
0
bobarman Messages postés 29 Date d'inscription mardi 27 avril 2004 Statut Membre Dernière intervention 22 juin 2011 1
22 juin 2011 à 12:16
Merci pour ta proposition mais en fait Excel a l'avantage que l'utilisateur pourra changer 2/3 trucs facilement et les changements si je veux inclure ces changements dans mon code ca me prendra trop de temps par rapport à ma deadline.

donc je vais traficoter comme ça, c'est un bon compromis

Clement B
0
Rejoignez-nous