Ouverture d'un document .csv sur excel

Résolu
Panodrek Messages postés 130 Date d'inscription lundi 16 mars 2009 Statut Membre Dernière intervention 16 juillet 2009 - 1 juil. 2008 à 10:28
Panodrek Messages postés 130 Date d'inscription lundi 16 mars 2009 Statut Membre Dernière intervention 16 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()

        End If
End Sub

18 réponses

mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
1 juil. 2008 à 13:55
pas grave, suffit de ne pas le mettre.

Sert toi de ce snippet de Drikce06, t'as juste la méthode Add à ne pas utiliser et à remplacer par Open :
http://www.codyx.org/snippet_comment-ouvrir-classeur-excel-vierge-depuis-vb6_202.aspx

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA
3
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
2 juil. 2008 à 08:46
tu as tous les éléments depuis le début...

If OpenFichierExcel.ShowDialog() = DialogResult.OK Then _
    startprocessOpenFichierExcel.FileName

<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp  
3
Panodrek Messages postés 130 Date d'inscription lundi 16 mars 2009 Statut Membre Dernière intervention 16 juillet 2009
3 juil. 2008 à 11:23
C'est bon, j'ai trouvé pourquoi rien ne s'affichait: j'avais oublié "appExcel.Visible = True" ...
Merci à tous de m'avoir aidé :)
3
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
1 juil. 2008 à 10:37
salut,

ton code actuel récupère le contenu du fichier, excel risque de ne s'ouvrir que si le client clique dessus, çà ne serait que pure coïncidence ^^

http://www.codyx.org/snippet_ouvrir-document-lancer-executable_25.aspx#69

++
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp  
0

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

Posez votre question
Panodrek Messages postés 130 Date d'inscription lundi 16 mars 2009 Statut Membre Dernière intervention 16 juillet 2009
1 juil. 2008 à 10:49
Est-ce qu'un simple ajout de ceci pourrait regler mon probleme?
StartProcess 
"C:\...\Excel.exe"
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
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)
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
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)

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
1 juil. 2008 à 13:32
(me semble qu'il n'y a plus de SET en .net, à vérifier)
0
Panodrek Messages postés 130 Date d'inscription lundi 16 mars 2009 Statut Membre Dernière intervention 16 juillet 2009
1 juil. 2008 à 13:47
Apparamment pas de SET en .net :s
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
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  
0
Panodrek Messages postés 130 Date d'inscription lundi 16 mars 2009 Statut Membre Dernière intervention 16 juillet 2009
1 juil. 2008 à 15:06
Oki merci à vous 2, des que j'ai un peu de temp je vais tester vos différentes méthodes et je vous tien au courant :)

Thx bye !!!
0
Panodrek Messages postés 130 Date d'inscription lundi 16 mars 2009 Statut Membre Dernière intervention 16 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 :)
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
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 !!!)
0
Panodrek Messages postés 130 Date d'inscription lundi 16 mars 2009 Statut Membre Dernière intervention 16 juillet 2009
1 juil. 2008 à 17:05
*oubli*

C'est fait... ^^"
0
Panodrek Messages postés 130 Date d'inscription lundi 16 mars 2009 Statut Membre Dernière intervention 16 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?
0
Panodrek Messages postés 130 Date d'inscription lundi 16 mars 2009 Statut Membre Dernière intervention 16 juillet 2009
2 juil. 2008 à 08:49
Ouais mais j'y connais pratiquement rien en VB, je me lance là, donc je comprend pas tout :s
En tout cas merci :)
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
2 juil. 2008 à 08:54
c'est l'éternel problème des copier/coller :)
si on copie sans comprendre, souvent un moment, "çà marche pas" ^^

ps : si une ou des réponses te conviennent, pense à les valider
0
Panodrek Messages postés 130 Date d'inscription lundi 16 mars 2009 Statut Membre Dernière intervention 16 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
0
Rejoignez-nous