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 :

Fonction VB.net appel d'une Macro VBA dans Libre Office Calc


Sujet :

VB.NET

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2018
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Septembre 2018
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Fonction VB.net appel d'une Macro VBA dans Libre Office Calc
    Bonjour,

    Je travaille actuellement sur un projet d'appel de Macro au sein d'une application codée en Vb.net avec Visual Studio.
    Je voudrais créer un bouton codé en VB.NET pour lancer une Macro VBA dans Libre Office Calc.
    Je ne sais pas si c'est réalisable.
    Voici le l'extrait du code pour le Bouton d'appel de la Macro :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub cmdAction_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdAction.Click
            Classeur.Zoom(75)
            Classeur.lockController()
            Classeur.activerCorrecteurOrthographe(False)
    Merci d'avance pour votre aide.

  2. #2
    Membre émérite 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
    Points : 2 865
    Points
    2 865
    Par défaut Le test avec Excel
    Bonjour Jeremy,
    Il est possible d’exécuter des Macros stockées dans une feuille Libre Office Calc, et même de programmer le VBA de la feuille directement dans VB.Net, à la condition de trouver les références nécessaires à ces objets.
    Pour faire cela en Excel, j’ai besoin de référencer Microsoft Excel 15.0 Object Library (illustration ci-dessous), de faire les imports adéquats et de déclarer un objet de type Excel.Application. Je peux alors faire tout ce que je veux avec cette feuille de calcul, y compris lancer ma macro nommée MaMacro dont voici le code simpliste (juste pour l’exemple)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Sub MaMacro()
        Range("F7").Select
        ActiveCell.FormulaR1C1 = "123"
        Range("F8").Select
        ActiveCell.FormulaR1C1 = "321"
        Range("F9").Select
    End Sub
    Et voici le code du test en VB.Net :
    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
     
    Imports System
    Imports System.Reflection
    Imports Microsoft.Office.Interop
    ‘………………………
    Public Class FormTestExcel
        Dim XLSAPP As Excel.Application
    ‘………………………
        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\Test.xls")  'ouvrir 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
     
            XLSAPP.ActiveWorkbook.Save() 'une sauvegarde
            XLSAPP.ActiveWorkbook.Close() 'fermer Excel, sinon Excel sera fermé à la fermeture de cette applcatioin VB.Net
        End Sub
    ‘………………………
    Et voici l'illustration promise ...
    Pièce jointe 410814)

Discussions similaires

  1. Réponses: 4
    Dernier message: 28/06/2018, 23h59
  2. Gérer une macro VBA dans un projet C#
    Par kaijin dans le forum C#
    Réponses: 9
    Dernier message: 08/08/2014, 09h28
  3. Réponses: 3
    Dernier message: 14/04/2014, 15h04
  4. [AC-2007] Appel d'une macro 2007 dans une macro en VBA
    Par evema dans le forum IHM
    Réponses: 1
    Dernier message: 13/12/2011, 22h35
  5. [XL-2003] Appel d'une macro VBA directement d'une cellule
    Par Toto_le_héros38 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 09/01/2011, 00h21

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