Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème Automation Excel avec VB.Net

    22 février 2021 à 23:37:42

    Bonjour,

    J'ai testé ce code :

    Option Strict On
    
    Imports Microsoft.Office.Interop
    
    Public Class Form1
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            'Créer une instance de Excel
            Dim ApExcel As New Excel.Application
            Dim wbExcel As New Excel.Worksheet
            Dim chpath As String = "E:\_temp\"
            Dim nom As String = "test"
            'Créer un nouveau classeur
            ApExcel.Workbooks.Add()
            'Ouvrir un  classeur
            'ApExcel.Workbooks.Open("chemin classeur.xls")
            'rendre le classeur visible
            ApExcel.Visible = True
            ApExcel.Range("A1").Formula = "Bonjour" 'Ajouter du texte à une cellule
            ApExcel.ActiveWorkbook.SaveAs(chpath & nom & ".xlsx")
            ApExcel.Workbooks.Close() 'on ferme le classeur
            ApExcel.Visible = False
            ApExcel.Quit() 'on ferme Excel
        End Sub
    End Class
    

    Le débogage  se passe bien, mais quand j'appuie sur le bouton, j'obtient ce message:

    System.IO.FileNotFoundException : 'Could not load file or assembly 'office, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c'. Le fichier spécifié est introuvable.'

    Merci d'avance pour votre aide.
    • Partager sur Facebook
    • Partager sur Twitter
      23 février 2021 à 10:02:05

      Une raison particulière pour utiliser cette cochonnerie d'Automation plutôt que l'utilisation d'un framework Office ?

      Par Automation, c'est piloter un autre programme (ici Excel) comme un marionnettiste.

      Pour que cela "fonctionne", il faut :

      - Que le programme "marionnette" soit correctement installé

      - Qu'une version compatible du programme avec votre code soit utilisé, aussi bien en terme de chronologie de version que de langue, etc...

      - Que les outils d'Automation (les fils du marionnettiste) soient correctement installés ET qu'ils soient compatibles avec la version choppée par hasard sur la machine.

      etc...

      En résumé, arrêtez d'utiliser cette "technologie" vielle de 30 ans. Vous êtes programmeur par nécromancien.

      P.S.: le message d'erreur c'est juste pour vous dire que le programme n'arrive pas à trouver un assembly dont il a besoin pour piloter la marionnette.

      • Partager sur Facebook
      • Partager sur Twitter
      Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
        23 février 2021 à 23:24:42

        Ok, bon, bin, les composants .NET de génération de fichiers Office, ça se compte par centaines, mais autant prendre le SDK maintenu par M$ directement, si vous n'avez pas de besoin "particulier" : OOXML SDK.

        https://docs.microsoft.com/fr-fr/office/open-xml/open-xml-sdk

        • Partager sur Facebook
        • Partager sur Twitter
        Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
          24 février 2021 à 23:39:26

          Merci beaucoup, je vais l'essayer
          • Partager sur Facebook
          • Partager sur Twitter

          Problème Automation Excel avec VB.Net

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown