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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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
    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.

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

  9. #9
    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.

  10. #10
    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é ?

  11. #11
    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/

  12. #12
    Invité
    Invité(e)
    Par défaut
    Tu mets visible en commentaire.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    With GetObject("Excel.Application")
                '.visible = True

  13. #13
    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
    C'est parfait ça fonctionne correctement merci beaucoup.
    C'est exactement ce que je souhaitais.
    Existe t'il un moyen pour que le fichier Excel ne s'ouvre qu'avec VB ?
    Et une fonction qui permet que j'installe un groupe de données (fichier VB et Excel sur un autre bureau sans avoir à changer le parcours pour que VB trouve Excel ?

  14. #14
    Invité
    Invité(e)
    Par défaut
    Bonjour Clément,
    En fait si on regarde l'imprimer écran, on se rend compte que les instruction Application au niveau du classeur on fonctionnées sauf celle après close ce qui est légitime vue que par définition le classeur est fermé !

    Utiliser application du classeur permet en autre que Run concerne bien une macro du classeur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    .application.Run("test")
    .application.DisplayAlerts = False
    .Save()
    .application.DisplayAlerts = True
    .Close(False)
    Dernière modification par Invité ; 05/06/2019 à 07h53.

  15. #15
    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
    dysorthographie c'est parfait ça marche mille merci par contre maintenant mon fichier Excel s'ouvre j'aimerais qu'il reste non visible si possible.

    Merci beaucoup à tous pour toute l'aide apporté.

+ Répondre à la discussion
Cette discussion est résolue.

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