IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Comment ouvrir un fichier Excel


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    355
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 355
    Par défaut Comment ouvrir un fichier Excel
    Bonjour
    Je voudrais ouvrir, et travailler avec un fichier Excel.
    Quelqu'un peut-il m'aider SVP
    J'utilise VS2017
    Merci de votre réponse

  2. #2
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Bonjour,

    Ceci devrait t'aider (attention, ne pas oublier d'ajouter la référence Microsoft.Office.Interop.Excel) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    Imports Excel = Microsoft.Office.Interop.Excel
     
    Public Class FBase
     
        'La feuille Excel n'est pas ouverte (si déjà ouverte, alors approche un peu différente
        Private Sub BExcel_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles BExcel.Click
            XLSAPP = New Excel.Application
            XLSAPP.Visible = True
            XLSAPP.Workbooks.Open("D:\Tmp\ProbExcel\Test.xls")  'ouvir le fichier XLS
     
            ' Il est possible de programmer en VB ce qu'on ferait en Macro
            XLSAPP.Range("C4").Select()                 'sélectionner une cellule
            XLSAPP.ActiveCell.FormulaR1C1 = "127"   'y placer la valeur 127
     
            'Il est aussi possible de lancer une macro du fichier XLS
            '        XLSAPP.Run("MaMacro") 'exécuter la macro MaMacro sans argument
            'XLSAPP.Run("UneMacro", "Coucou")  ' appel de la macro UneMacro avec arguments ....
    ' ... ... ...
    Nom : Excel01.jpg
Affichages : 3680
Taille : 79,6 Ko

    Bonne soirée,

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    355
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 355
    Par défaut
    Bonjour Phil Rob
    Merci de ton aide
    VS2017 m'a obligé de rajouter certains aménagements, mais cela semble fonctionner.
    Il reste un petit problème et une interrogation

    Petit problème : à l’instruction [XLSAPP.Visible = True], une page EXCEL vierge s'ouvre,
    et ensuite à l'instruction [XLSAPP.Workbooks.Open("E:\Bureau\Nouvel Anniversaire\Anniversaires.xlsm")] le bon fichier s'ouvre par dessus.
    Seulement à l'instruction [XLSAPP.Workbooks.Close] le bon fichier se ferme mais le précédent reste ouvert et je dois le fermer manuellement

    Une interrogation : je n'ai pas trouvé la bonne instruction pour sélectionner une feuille particulière ( cela ne me gène pas pour l'instant mais j'aimerais le savoir)

    Voici le début du programme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    Imports Microsoft.Office.Interop
    Imports Microsoft.Office.Interop.Excel
     
    Module Module1
        Public Property XLSAPP As Object
        Public i, R, NbrLignes As Integer
        Public DateJour, JourAnniv, JourVeille As Integer
        Public Nom As String
        Public DateAnniv, DateVeille As Date
     
        Public Sub Main()
            XLSAPP = New Excel.Application
            XLSAPP.Visible = True
            XLSAPP.Workbooks.Open("E:\Bureau\Nouvel Anniversaire\Anniversaires.xlsm")
            'XLSAPP.WorkSheet.Select = "Feuil1"
            For i = 2 To 100
                Nom = XLSAPP.Cells(i, 2).Value
                If Nom = "" Then
                    Exit For
                End If
                NbrLignes = i - 1
            Next
     
            For i = 2 To NbrLignes + 1
                DateAnniv = XLSAPP.Cells(i, 3).Value
                DateVeille = DateAdd(DateInterval.Day, -1, DateAnniv)
                DateJour = Microsoft.VisualBasic.DateAndTime.Day(Now)
                JourAnniv = Microsoft.VisualBasic.DateAndTime.Day(DateAnniv)
                JourVeille = Microsoft.VisualBasic.DateAndTime.Day(DateVeille)
                If Month(DateAnniv) = Month(Today) And JourAnniv = DateJour Then
     
                End If
            Next
            XLSAPP.Workbooks.Close
        End Sub
    End Module
    Merci de ta réponse

  4. #4
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Bonjour,

    Je n'ai pas le problème que tu relates avec le Visible = True et si on l'enlève, Excel ne fonctionne pas.

    Je t'envoie le fichier ProbExcel.zip qui est un petit programme de tests. Le fichier Excel Test.Xls s'y trouve aussi, il faudra probablement quer tu modifies le chemin d'accès dans le code (ce n'est probablement pas D:\Tmp\ ... sur ton ordi). Attention, tu devras sans doute aussi retirer la référence Microsoft.Office.Interop.Excel et la rajouter aussitôt.

    Tu pourras examiner comment je déclare ce dont j'ai besoin en Excel, (je te signale au passage que Public Property XLSAPP As Object est un non sens, Property ne sert pas à cela et en plus, pourquoi Object alors que tu sais très bien que c'est d'Excel qu'il s'agit).

    Tu constateras aussi que les codes diffèrent selon qu'on veut faire une première ouverture d'Excel, ou d’accéder à une feuille déjà ouverte par ton programme, ou encore d’accéder à une feuille déjà ouverte mais,par un autre programme. Un résumé des trois situations se trouve dans le fichier CodeOK.TXT.

    Pour ce qui est des codes "Excel" écrits dans mon code, il s'agit de VBA Excel. Ainsi, si tu veux savoir comment faire telle ou telle chose sous Excel, le plus simple, et sans connaissance particulière, est d'enregistrer sous Excel la macro qui fait ce travail et puis, de regarder la macro et de reporter ses codes dans VB, ou mieux (peut-être) puisque mes exemples l'illustrent, appeler cette macro à partir de VB.

    Bon travail,

  5. #5
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Pour zigonner un fichier Excel en .net, même sans avoir Excel

    https://github.com/closedxml/closedxml

    EPPlus

    NPOI

  6. #6
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Par défaut
    Citation Envoyé par clementmarcotte Voir le message
    Bonjour,

    Pour zigonner un fichier Excel en .net, même sans avoir Excel

    https://github.com/closedxml/closedxml

    EPPlus

    NPOI
    Hello clementmarcotte, tu as une préférence entre les 3?
    J'utilise EPPlus mais il a un gros défaut, on ne peut pas actualiser le cache des tableaux croisés dynamiques. Serais-tu si un des deux autres le fait par hasard?

  7. #7
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    À vrai dire, je ne les connais pas assez pour donner un avis crédible. J'ai plutôt joué directement avec Le SDK OpenXML. sur lequel ils sont basés.

  8. #8
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Par défaut
    Merci. J'essaierai d'y jeter un oeil un de ces jour pour voir s'il permet de le faire car c'est assez embêtant pour les utilisateurs qui reçoivent les Excel par emails, ils sont obligé de les ouvrir pour que le tableau s'affiche. Ca ne passe pas en aperçu.

Discussions similaires

  1. comment ouvrir plusieurs fichiers excel?
    Par julianauribe dans le forum MATLAB
    Réponses: 6
    Dernier message: 16/04/2009, 15h45
  2. Comment ouvrir un fichier excel dans le même onglet
    Par jlppap dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 24/09/2008, 08h50
  3. [VBA-OOo] Comment ouvrir un fichier Excel en basic ?
    Par asoka13 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 01/06/2006, 17h19
  4. [VBA] Word - Comment ouvrir un fichier excel
    Par le_sonic dans le forum VBA Word
    Réponses: 5
    Dernier message: 28/12/2005, 09h33
  5. comment ouvrir un fichier excel ?
    Par vdavid1982 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 13/07/2005, 12h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo