Utilisation des fichiers du projet [Résolu]

bobarman 34 Messages postés mardi 27 avril 2004Date d'inscription 22 juin 2011 Dernière intervention - 17 juin 2011 à 15:32 - Dernière réponse : bobarman 34 Messages postés mardi 27 avril 2004Date d'inscription 22 juin 2011 Dernière intervention
- 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
Afficher la suite 

Votre réponse

15 réponses

Meilleure réponse
ehjoe 728 Messages postés samedi 4 avril 2009Date d'inscription 30 mars 2014 Dernière intervention - 22 juin 2011 à 11:59
3
Merci
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.

Merci ehjoe 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 69 internautes ce mois-ci

Commenter la réponse de ehjoe
ehjoe 728 Messages postés samedi 4 avril 2009Date d'inscription 30 mars 2014 Dernière intervention - 17 juin 2011 à 20:49
0
Merci
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.
Commenter la réponse de ehjoe
bobarman 34 Messages postés mardi 27 avril 2004Date d'inscription 22 juin 2011 Dernière intervention - 21 juin 2011 à 11:51
0
Merci
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
Commenter la réponse de bobarman
ehjoe 728 Messages postés samedi 4 avril 2009Date d'inscription 30 mars 2014 Dernière intervention - 21 juin 2011 à 14:14
0
Merci
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.
Commenter la réponse de ehjoe
bobarman 34 Messages postés mardi 27 avril 2004Date d'inscription 22 juin 2011 Dernière intervention - 22 juin 2011 à 09:01
0
Merci
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
Commenter la réponse de bobarman
ehjoe 728 Messages postés samedi 4 avril 2009Date d'inscription 30 mars 2014 Dernière intervention - 22 juin 2011 à 09:53
0
Merci
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.
Commenter la réponse de ehjoe
bobarman 34 Messages postés mardi 27 avril 2004Date d'inscription 22 juin 2011 Dernière intervention - 22 juin 2011 à 10:01
0
Merci
Finalement je n'ai qu'un seul fichier avec plusieurs feuille dedans.


Clement B
Commenter la réponse de bobarman
bobarman 34 Messages postés mardi 27 avril 2004Date d'inscription 22 juin 2011 Dernière intervention - 22 juin 2011 à 10:05
0
Merci
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
Commenter la réponse de bobarman
bobarman 34 Messages postés mardi 27 avril 2004Date d'inscription 22 juin 2011 Dernière intervention - 22 juin 2011 à 10:06
0
Merci
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
Commenter la réponse de bobarman
ehjoe 728 Messages postés samedi 4 avril 2009Date d'inscription 30 mars 2014 Dernière intervention - 22 juin 2011 à 10:31
0
Merci
Clément,

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

Dans cette attente, cordialement.

Joe.
Commenter la réponse de ehjoe
bobarman 34 Messages postés mardi 27 avril 2004Date d'inscription 22 juin 2011 Dernière intervention - 22 juin 2011 à 10:35
0
Merci
ben comme je l'ai marqué et comme tu l'as suggéré c'est le fichier nouveau.xls

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


Clement B
Commenter la réponse de bobarman
ehjoe 728 Messages postés samedi 4 avril 2009Date d'inscription 30 mars 2014 Dernière intervention - 22 juin 2011 à 12:07
0
Merci
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.
Commenter la réponse de ehjoe
bobarman 34 Messages postés mardi 27 avril 2004Date d'inscription 22 juin 2011 Dernière intervention - 22 juin 2011 à 12:16
0
Merci
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
Commenter la réponse de bobarman

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.