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 :

Activer un bouton Macro excel


Sujet :

VB.NET

  1. #1
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2019
    Messages : 249
    Par défaut Activer un bouton Macro excel
    Bonjour à tous,

    j'aimerais savoir s'il est possible d'activer un bouton contenant une macro dans excel depuis VB.net.

    Merci

  2. #2
    Membre chevronné Avatar de r.morel
    Homme Profil pro
    Dessinateur CAO
    Inscrit en
    Août 2014
    Messages
    339
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Dessinateur CAO
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2014
    Messages : 339
    Par défaut
    Salut,
    Tu peux directement lancer une Macro à partir de vb.net :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim Excel_App As New Excel.Application
    Dim Excel_Wb As Excel.Workbook
     
    Excel_Wb = Excel_App.Workbooks.Open(Chemin_classeur)            
    Excel_App.Run(Nom_Macro)
    '...

  3. #3
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2019
    Messages : 249
    Par défaut
    bonjour cela ne fonctionne pas voici mon code il me dit que le nom de la macro n'est pas déclarée

    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
     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim XlApp As Microsoft.Office.Interop.Excel.Application = New Microsoft.Office.Interop.Excel.Application()
            Dim XLDestBook As Microsoft.Office.Interop.Excel.Workbook
            Dim XLSheet As Microsoft.Office.Interop.Excel.Worksheet
            Dim XlRange As Microsoft.Office.Interop.Excel.Range
     
            XLDestBook = XlApp.Workbooks.Open("C:\Users\Asus\Desktop\Dossier final - Copie.xlsm")
            XLSheet = XLDestBook.Sheets(1) 'Indique le numéro de la feuille souhaitée
            XlRange = XLSheet.Cells(5, 2)
            XlRange.Value = TextBox1.Text
            XlRange = XLSheet.Cells(1, 1)
            TextBox2.Text = XlRange.Value
     
     
            XlApp.Run(test)
            '...
     
     
            Xlapp.DisplayAlerts = False
            XLDestBook.Save()
            XLDestBook.Close()
            XlApp.DisplayAlerts = True
            XlApp.Quit()

  4. #4
    Membre chevronné Avatar de r.morel
    Homme Profil pro
    Dessinateur CAO
    Inscrit en
    Août 2014
    Messages
    339
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Dessinateur CAO
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2014
    Messages : 339
    Par défaut
    Que fais ta macro ?
    Il serait certainement plus pertinent de faire les modifications dans ton appli.

  5. #5
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2019
    Messages : 249
    Par défaut
    ma macro permet de sortir la fonction de la courbe de tendance sur le graphique et de la mettre sur une cellule

    voici ma macro :

    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
    Sub test()
    Dim Graph As Chart, Feuille As Worksheet, Trendline
    Dim Equation As String
     
    Set Feuille = ActiveSheet
    With Feuille.ChartObjects(1).Chart
        .HasTitle = True
        .ChartTitle.Text = "Loi de weibull"
        '.SeriesCollection(1).Trendlines.Add
     
        With .SeriesCollection(1).Trendlines(1)
      Range("C1").Value = Format(Now, "dd.m.yyyy")
     
            .DisplayEquation = True
            .DisplayRSquared = False
            ActiveSheet.Cells(4, 16).Value = .DataLabel.Text
        End With
        End With
    End Sub

  6. #6
    Membre chevronné Avatar de r.morel
    Homme Profil pro
    Dessinateur CAO
    Inscrit en
    Août 2014
    Messages
    339
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Dessinateur CAO
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2014
    Messages : 339
    Par défaut
    Essaye çà :
    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
    Dim Excel_App As New Excel.Application
     
    Dim Excel_Wb As Excel.Workbook =  Excel_App.Workbooks.Open(Chemin_de_ton_fichier_Excel)
    Dim Excel_Ws As Excel.Worksheet = Excel_Wb.Worksheets(1) 'Indique le numéro de la feuille souhaitée ou son nom
     
    Dim Graph As Chart
     
    Dim Equation As String
     
     
    With Excel_Ws.ChartObjects(1).Chart
     
        .HasTitle = True
     
        .ChartTitle.Text = "Loi de weibull" 
        With .SeriesCollection(1).Trendlines(1)
     
            Excel_Ws.Range("C1").Value = DateAndTime.Now.Day & "." & DateAndTime.Now.Month & "." & DateAndTime.Now.Year
            .DisplayEquation = True
            .DisplayRSquared = False
            Excel_Ws.Cells(4, 16).Value = .DataLabel.Text
        End With
     
    End With

  7. #7
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2019
    Messages : 249
    Par défaut
    Bonjour,
    Je m'excuse de m'être absenté si longtemps j’étais en période de concours.
    Les concours finis je me remets à fond dans ma programmation.

    Je prends note de cette astuce mais j'ai plusieurs macros toutes différentes et je souhaiterais les diriger via VB.net si possible merci.

  8. #8
    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,

    Dans la foulée de r.morel.

    VB.net qui lance la macro Histogramme du classeur Excel Ouvert (authentique):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      XLSAPP.Run("histogramme")
    À moins que tu les aient ajoutés plus tard, tu ne sembles pas avoir mis le nom de ta macro entre guillemets.

    P.S. Un truc qui marche avec Excel et avec Word. Tu peux utiliser les enregistreurs de macros pour avoir, du moins la plupart du temps, des canevas de procédure en VBA que tu peux facilement adapter en VB.net ou en C#. Peu importe que langage .net, ou VBA, les objets spécifiques de Word et Excel sont constants. Et n'oublie pas l'IntelliSense. Quand tu utilises les Primary Interop Assemblies (les dll Microsoft.interop.Excel, et Microsoft.interop.word), l'IntelliSense fonctionne avec Excel et Word dans VisualStudio..

  9. #9
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2019
    Messages : 249
    Par défaut
    est-ce possible que mes interop (références) puissent lire un fichier Excel classique mais pas un avec des macros ?

    Nom : Capture.PNG
Affichages : 391
Taille : 52,4 Ko

  10. #10
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2019
    Messages : 249
    Par défaut
    Non en effet je pense que mon erreur vient de là.

    J'utilise déjà ces interop, fin du moins celle d'excel et en langage de programmation j'avoue que je débute à peine mais je trouve ça intéressent et pour l'instant je connais le VBA d'Excel ( macro ) et très peu le VB.net. en tout cas merci pour l'aide cela m'est vraiment utile

  11. #11
    Membre chevronné Avatar de r.morel
    Homme Profil pro
    Dessinateur CAO
    Inscrit en
    Août 2014
    Messages
    339
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Dessinateur CAO
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2014
    Messages : 339
    Par défaut
    Salut,
    Apparemment, ton fichier Excel n'existe pas.
    Tu peux tester la présence d'un fichier avec la classe System.Io.File et la méthode Exists. Attention aux remarques sur cette méthode, et notamment celles sur le chemin et le répertoire.
    Bon code...

  12. #12
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2019
    Messages : 249
    Par défaut
    Le problème c'est que même avec les anciens fichiers qu'il ouvrait il ne les reconnait plus donc je ne sais pas du tout pourquoi et je n'arrive pas à comprendre le code pour vérifier qu'un fichier existe et si jamais il n'existe pas comment lui redonner son existence ?

  13. #13
    Membre chevronné Avatar de r.morel
    Homme Profil pro
    Dessinateur CAO
    Inscrit en
    Août 2014
    Messages
    339
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Dessinateur CAO
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2014
    Messages : 339
    Par défaut
    Je te joins un exemple de projet qui fonctionne.
    J'espère que cela t'aidera.
    Fichiers attachés Fichiers attachés

  14. #14
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2019
    Messages : 249
    Par défaut
    Merci je vais essayer ça ce soir car j'ai des réunions.
    J'ai trouvé quelques fichiers qui s'ouvre dont celui dont j'ai besoin mais la macro même avec les guillemets ne se déclenche pas peut être car j'ai mis le nom de la macro et pas celui du fichier je vous tiens informé ce soir de l'avancement.

  15. #15
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            With New Microsoft.Office.Interop.Excel.Application()
                With .Workbooks.Open(System.Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + "\Dossier final - Copie.xlsm")
                    .Sheets(1).Cells(5, 2).Value = TextBox1.Text
                    TextBox2.Text = .Sheets(1).Cells(1, 1).Value
                    .application.Run("test")
                    .application.DisplayAlerts = False
                    .Save()
                    .Close()
                    .application.DisplayAlerts = True
                End With
                .Quit()
            End With
        End Sub
    Dernière modification par Invité ; 28/05/2019 à 07h46.

  16. #16
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2019
    Messages : 249
    Par défaut
    r.morel je télécharge les interop pour tester mes fichiers mais j'aimerais savoir comment un fichier existant peut être inexistant ?

    et pour ton code dysorthographie j’essaierais demain là il est tard mais je le rajouterais surement sur un second bouton.

    je vous dis toute l'évolution demain matin merci pour votre précieuse aide.

  17. #17
    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,

    Ton message d'erreur parle du fichier, mais en fait l'erreur peut toucher le fichier lui-même et/ou le chemin d'accès.

    Si tu peux suivre le chemin d'accès dans l'Explorateur Windows et que le fichier est bien là, cela pourrait être un problème de droits d'accès géré par Windows. C'est le genre de coup de cochon qu'une mise à jour de Windows peut provoquer.

    Un petit utilitaire très bien pour copier-coller des chemins d'accès. Une fois installé, il y a deux entrées de menu contextuel pour l'utiliser.

  18. #18
    Membre chevronné Avatar de r.morel
    Homme Profil pro
    Dessinateur CAO
    Inscrit en
    Août 2014
    Messages
    339
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Dessinateur CAO
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2014
    Messages : 339
    Par défaut
    Salut,
    Une petite erreur dans le lien de clementmarcotte : https://pathcopycopy.github.io/
    As-tu essayé le projet que j'ai envoyé ?

  19. #19
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2019
    Messages : 249
    Par défaut
    J'ai peut-être trouvé une nouvelle piste ma macro ne se lance pas peut-être car elle n'est pas enregistrée dans le classeur ou non visible mais je ne sais pas comment visualiser tout cela.

    ça vous semble possible que le problème provienne de là ?

    https://www.developpez.net/forums/d1...pplication-vb/

  20. #20
    Membre chevronné Avatar de r.morel
    Homme Profil pro
    Dessinateur CAO
    Inscrit en
    Août 2014
    Messages
    339
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Dessinateur CAO
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2014
    Messages : 339
    Par défaut
    Dans mon exemple la macro est situé dans un module et exécuter sans problème.
    As-tu seulement regardé ?

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [XL-2010] Bouton macro excel qui s'incrémente automatiquement
    Par maxleb1300 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 09/05/2016, 17h10
  2. Bouton macro sur excel
    Par linel dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 16/09/2007, 23h35
  3. Activation de Macros, Excel 2007
    Par alec-- dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 08/07/2007, 10h13
  4. Activation automatique des macros excels
    Par Rgent dans le forum Excel
    Réponses: 2
    Dernier message: 27/06/2007, 15h54

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