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

Windows Forms Discussion :

[VB.net]Piloter excel à parter d'un executable VB


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 102
    Par défaut [VB.net]Piloter excel à parter d'un executable VB
    Voila,
    J'aimerai concevoir une appli VB qui ouvre Excel (facile) des fichiers excel (heuuu faisable je pense) mais aussi qui lance des macros excels et qui remplisse des cellules a l'aide de valeurs de variables VB.

    Et là, je sais pas trop si c'est possible.

  2. #2
    Rédacteur/Modérateur
    Avatar de Skalp
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 694
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 694
    Par défaut
    Citation Envoyé par sk8bcn Voir le message
    ouvre Excel (facile)
    facile
    Citation Envoyé par sk8bcn Voir le message
    ouvre des fichiers excel (heuuu faisable je pense)
    faisable
    Citation Envoyé par sk8bcn Voir le message
    lance des macros excels
    faisable (théoriquement. Je n'ai jamais essayé)
    Citation Envoyé par sk8bcn Voir le message
    remplisse des cellules a l'aide de valeurs de variables VB.
    faisable

    Voilà deux articles qui pourront t'être d'une grande aide :
    http://dotnet.developpez.com/cours/office/ (C# et VB)
    http://skalp.developpez.com/tutoriel...tomationexcel/ (C# seulement, mais avec des informations supplémentaires)

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 102
    Par défaut
    merci!

    Je vais lire, tester puis envoyer le feedback

  4. #4
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 102
    Par défaut
    mince, le lien du cours marche pas.

  5. #5
    Bz
    Bz est déconnecté
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 176
    Par défaut
    vla les 3 fonctions que j'ai créé dont je me sers
    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
     
     Public Shared Sub CreerExcel(ByVal pStrCheminFichier As String, ByRef pObjDocWindows As Object, ByRef pObjWorkbook As Object)
            Dim objExcel As New Object
            Try
                objExcel = GetObject(, "Excel.Application")
            Catch e As Exception
                objExcel = CreateObject("Excel.Application")
            End Try
            objExcel.Visible = True
            objExcel.WindowState = 2  'Max=2, min=1
            pObjWorkbook = objExcel.Presentations.Add(VBA_MSOTRUE)
            pObjDocWindows = objExcel.ActiveWindow
            pObjWorkbook.SaveAs(pStrCheminFichier)
        End Sub
        Public Shared Sub OuvrirExcel(ByVal pStrCheminFichier As String, ByRef pObjDocWindows As Object, ByRef pObjWorkbook As Object)
            Dim objExcel As New Object
            Try
                objExcel = GetObject(, "Excel.Application")
            Catch e As Exception
                objExcel = CreateObject("Excel.Application")
            End Try
            objExcel.Visible = True
            objExcel.WindowState = 2  'Max=2, min=1
            pObjWorkbook = objExcel.Workbooks.open(pStrCheminFichier)
            pObjDocWindows = objExcel.ActiveWindow
        End Sub
        Public Shared Sub FermerExcel()
            Dim prc As System.Diagnostics.Process() = Process.GetProcessesByName("excel")
            If Not prc Is Nothing Then
                For i As Integer = 0 To prc.GetUpperBound(0)
                    prc(i).CloseMainWindow()
                Next
            End If
            prc = Nothing
        End Sub
    l'interet de passer par des object et pas par la reference excel, c'est que ca marche quelque soit la version d'Excel

  6. #6
    Rédacteur/Modérateur
    Avatar de Skalp
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 694
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 694
    Par défaut
    sk8bcn, tu veux parler du premier lien ? Il fonctionne très bien de mon cote.

    Citation Envoyé par Bz Voir le message
    l'interet de passer par des object et pas par la reference excel, c'est que ca marche quelque soit la version d'Excel
    Sauf si tu utilises une méthode ou une propriété qui n'existe pas dans la version que tu pilotes
    Outre le fait que, d'après moi, c'est inélégant et moins performant, le désavantage de travailler avec des objects, c'est que tu ne bénéficies pas de l'intellisense explorateur d'objet de VS.

    PS : la méthode FermerExcel() ferme toutes les instances d'Excel. Même celles ouvertes par un utilisateur.

  7. #7
    Membre confirmé Avatar de Momodedf
    Inscrit en
    Juillet 2007
    Messages
    246
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Juillet 2007
    Messages : 246
    Par défaut
    Citation Envoyé par sk8bcn Voir le message
    Voila,
    mais aussi qui lance des macros excels
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.Run MacroName:="ma_macro"
    Citation Envoyé par sk8bcn Voir le message
    Voila,
    et qui remplisse des cellules a l'aide de valeurs de variables VB.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my_workbook = ma_feuille.cells(ligne, colone).value = ma_variable_vb


  8. #8
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 102
    Par défaut
    merci à tous pour les réponses!

    Je vais bien regarder ça dès que j'ai terminé les macros excels que je dois programmer d'abord en urgence.

    Finir le tout par un bel enrobage en .exe viendra ensuite. Je taguerai en résolu dès que j'y serai et que je pourrais faire le feedback de ce que j'ai essayé.

    Merci pour l'aide

  9. #9
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 102
    Par défaut
    ftp://ftp2.developpez.be/developps/d...e/OfficeVb.pdf

    c'est ce lien qui refuse de marcher :/

  10. #10
    Rédacteur/Modérateur
    Avatar de Skalp
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 694
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 694
    Par défaut
    Citation Envoyé par sk8bcn Voir le message
    ftp://ftp2.developpez.be/developps/d...e/OfficeVb.pdf

    c'est ce lien qui refuse de marcher :/
    Quand je fais clic droit "Enregistrer la cible sous..." ça fonctionne très bien.
    Quel navigateur utilises-tu ?

  11. #11
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 102
    Par défaut
    Il me dit qu'IE ne peut télécharger ce document et que le serveur est actuellement indisponible.

    Et le tout sur I.E.6

Discussions similaires

  1. Réponses: 8
    Dernier message: 28/05/2015, 09h38
  2. Piloter Excel depuis vb.net
    Par l_achraf dans le forum VB.NET
    Réponses: 7
    Dernier message: 02/04/2009, 20h05
  3. piloter excel depuis un site ASP.NET
    Par sergio94 dans le forum Général Dotnet
    Réponses: 4
    Dernier message: 22/01/2008, 15h25
  4. [VB.NET] DataGrid, Excel et encodage
    Par franculo_caoulene dans le forum Windows Forms
    Réponses: 5
    Dernier message: 19/10/2004, 15h11
  5. [VB.NET] Fichier Excel vérouillé avec mot de passe
    Par rafano dans le forum ASP.NET
    Réponses: 2
    Dernier message: 10/06/2004, 14h36

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