Panodrek
Messages postés130Date d'inscriptionlundi 16 mars 2009StatutMembreDernière intervention16 juillet 2009
-
1 juil. 2008 à 10:28
Panodrek
Messages postés130Date d'inscriptionlundi 16 mars 2009StatutMembreDernière intervention16 juillet 2009
-
3 juil. 2008 à 11:23
Bonjour tout le monde. Alors voici mon probleme du jour (oui, j'ai un pb chaque jours...):
Le code suivant me permet d'ouvrir une boite de dialogue où je selectionne un fichier à ouvrir. Je voudrais ouvrir ce document sous Excel. Est-ce qu'en selectionnant simplement le document et en appuyant sur "Ouvrir", Excel est sensé se lancer, ou dois-je apporter un supplément à mon code pour lui dire d'ouvrir ce document avec Excel?
Private Sub Ouvrir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Ouvrir.Click
Dim OpenFichierExcel As New OpenFileDialog()
OpenFichierExcel.Filter = "Fichiers CSV| *.csv"
OpenFichierExcel.Title = "Selectionner le .csv à traiter (Extrait de REMEDY)"
If OpenFichierExcel.ShowDialog() = DialogResult.OK Then
Dim sr As New System.IO.StreamReader(OpenFichierExcel.FileName)
MessageBox.Show(sr.ReadToEnd)
sr.Close()
PCPT
Messages postés13280Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201848 1 juil. 2008 à 10:52
essaye, tu verras que non
le code fourni sert à lancer le programme associé "implicitement" en indiquant juste le nom du fichier à ouvrir...
(ce que te retourne la boite de dialogue)
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 1 juil. 2008 à 13:23
salut,
sinon, déclarer les objets Excel et Classeur, puis tu ouvres le fichier csv avec l'objet classeur avec Set pour lié la variable objet au fichier
(cherche du côté de Microsoft.Office.Interop.Excel.Application)
PCPT
Messages postés13280Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201848 1 juil. 2008 à 13:56
... çà change rien, tu as tout de même 2 solutions
startprocess "chemin_complet.csv"
ou avec l'objet excel par obj excel (et pas set obj excel, mais c'est strictement pareil. VB doit même naturellement supprimer le mot SET ; pas d'erreur pour autant)
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
Panodrek
Messages postés130Date d'inscriptionlundi 16 mars 2009StatutMembreDernière intervention16 juillet 2009 1 juil. 2008 à 15:50
C'est encore moi ^^
Juste une petite question qui me passait par la tête, mais j'ai pas encore eu le temps de tester:
Est-ce que en valeur du startprocess je peux mettre une variable?
En gros est-ce que [ startprocess sr ] est susceptible de fonctionner (d'après la partie du code que j'ai montré toute à l'heure)?
Bon aller, cette fois le travail m'appelle, je repasserais vers 17h pour voir si quelqu'un a rep :)
PCPT
Messages postés13280Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201848 1 juil. 2008 à 16:42
si SR est une string uniquement, donc non pour SR, oui pour une variable STRING
(oublie de suite ton envie de passer LE CONTENU du fichier en param !!!)
Panodrek
Messages postés130Date d'inscriptionlundi 16 mars 2009StatutMembreDernière intervention16 juillet 2009 2 juil. 2008 à 08:30
En fait je ne souhaite pas récupérer le contenu du mon document excel pour le mettre dans une variable, je souhaiterais récupérer l'adresse du document sélectionner pour le stocker dans une variable, pour apres pouvoir la placer apres un "startprocess". C'est possible?
Panodrek
Messages postés130Date d'inscriptionlundi 16 mars 2009StatutMembreDernière intervention16 juillet 2009 2 juil. 2008 à 09:44
Bon alors y'a un plus et un moins:
le plus c'est que j'ai plus d'erreurs et que tout est "reconnu";
le moins, c'est qu'après avoir appuyer sur le bouton "Ouvrir" de la boite de dialogue (donc après avoir sélectionner mon fichier à ouvrir), rien ne se passe. J'ai fais l'exécution en "Pas à pas détaillé", et je remarque qu'en cliquant sur le bouton "Ouvrir" de la boite de dialogue, je ne rentre pas dans le If.
(Je remet ici le code que j'ai utilisé, pour éviter de retourner tout au début)
Public Class Form1
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Public Sub StartProcess(ByVal sFile As String, Optional ByVal sParameters As String = vbNullString)
ShellExecute(0&, "open", sFile, sParameters, vbNullString, 1&)
End Sub
Private Sub Ouvrir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Ouvrir.Click
Dim OpenFichierExcel As New OpenFileDialog()
OpenFichierExcel.Filter = "Fichiers CSV| *.csv"
OpenFichierExcel.Title = "Selectionner le .csv à traiter (Extrait de REMEDY)"
If OpenFichierExcel.ShowDialog() = DialogResult.OK Then
StartProcess(OpenFichierExcel.FileName())
End If
End Sub
End Class
J'avoue ne pas avoir trop compris le code de la déclaration de ShellExecute, mis à part le fait que c'est ce qui apparamment servirait à fare en sorte à ce que StartProcess ouvre le .csv dans excel... mais je suis vraiment pas sur :s