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

Développement Office System .NET Discussion :

Activation macros lors de la creation d'un excel.application


Sujet :

Développement Office System .NET

  1. #1
    Membre habitué
    Homme Profil pro
    Consultant informatique
    Inscrit en
    mars 2014
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Conseil

    Informations forums :
    Inscription : mars 2014
    Messages : 34
    Points : 179
    Points
    179
    Par défaut Activation macros lors de la creation d'un excel.application
    Bonjour à tous,

    Je rencontre un souci sur lequel je bute depuis un moment.

    Le but de mon code est d'ouvrir l'application EXCEL, d'ouvrir un document précis (que j'ai paramétré) dans mon "fexcel", d'importer une donnée d'une application tierce (un code numérique) puis de lancer une macro VBA présente dans mon classeur EXCEL.

    Or, dès que j'arrive à la ligne d’exécution de ma macro du fichier EXCEL, j'ai ce message d'erreur "Impossible d'exécuter la macro 'Compétences.xlsm!Feuul1.MAJClasseur'. Il est possible qu'elle ne soit pas disponible dans ce classeur ou que toutes les macros soient désactivées."

    A noter que ma macro complémentaire que j'essaie de lancer avant : "Builder5.xlam" ne s’exécute pas non plus mais j'imagine que les 2 problèmes sont liés.

    La ligne en question : appExcel.Run(xls.Name & "!Feuil1.MAJClasseur")

    Mon code complet :
    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    Private Sub SimpleButton4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SimpleButton4.Click
     
            Dim appExcel As Excel.Application 'Declaration Application Excel'
            Dim xls As Excel.Workbook           'Declaraton Classeur Excel'
            Dim wsExcel As Excel.Worksheet    'Feuille Excel'
            Dim codeaidant As String
     
            appExcel = CType(CreateObject("Excel.Application"), Excel.Application)
            appExcel.AutomationSecurity = Microsoft.Office.Core.MsoAutomationSecurity.msoAutomationSecurityForceDisable
     
            Dim patht As String = appExcel.LibraryPath.Replace("LIBRARY", "XLSTART") 'copie du codeaidant'
            appExcel.Workbooks.Open(appExcel.LibraryPath & "\Builder5.xlam")      'Ouvre la macro complementaire Builder5.xlam'
            appExcel.Workbooks("Builder5.xlam").RunAutoMacros(1)
     
     
            xls = appExcel.Workbooks.Open(My.Settings.fexcel, 0, False, 5, "", "", False, Excel.XlPlatform.xlWindows, "", True, False, 0, True, False, False)
            '\\sfich01\Public\Report One\Tableaux de bords\Compétences.xlsm
            'wsExcel correspond à la première feuille du fichier
            'worksheets(1) correspond à la feuille 1 du fichier Excel'
            wsExcel = xls.Worksheets(1)
     
            If typedemande.TrimEnd = "I" Then
                codeaidant = divers.formatecode(code, divers.strtaillecodeaidant)
            Else
                codeaidant = ""
            End If
     
            'Import de données'
            appExcel.Visible = True
            xls.Worksheets(1).range("B3").Value = codeaidant
            appExcel.Run(xls.Name & "!Feuil1.MAJClasseur")
     
            'lancement de la macro dans le fichier excel ouvert'
            On Error Resume Next
            If appExcel.Version < "12.0" Then
                appExcel.Run("Builder5.xla!CustomMAJ5", "workbook")
                If Err.Number <> 0 Then
                    appExcel.Run("Viewer5.xla!CustomMAJV5", "workbook")
                End If
            Else
                appExcel.Run("Builder5.xlam!CustomMAJ5", "workbook")
                If Err.Number <> 0 Then
                    appExcel.Run("Viewer5.xlam!CustomMAJV5", "workbook")
                End If
            End If
     
        End Sub
    Merci d'avance de votre aide !

  2. #2
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur
    Inscrit en
    mars 2014
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : mars 2014
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    D'après moi c'est cette ligne qui désactive tes macros...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
            appExcel.AutomationSecurity = Microsoft.Office.Core.MsoAutomationSecurity.msoAutomationSecurityForceDisable
    Essayes plutôt avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
            appExcel.AutomationSecurity = Microsoft.Office.Core.MsoAutomationSecurity.msoAutomationSecurityByUI
    ou alors
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
            appExcel.AutomationSecurity = Microsoft.Office.Core.MsoAutomationSecurity.msoAutomationSecurityLow

  3. #3
    Membre habitué
    Homme Profil pro
    Consultant informatique
    Inscrit en
    mars 2014
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Conseil

    Informations forums :
    Inscription : mars 2014
    Messages : 34
    Points : 179
    Points
    179
    Par défaut
    Bonjour DcnVince,

    Honnêtement, je ne m'attendais plus à une réponse

    Merci pour votre réponse

    J'ai trouvé la solution de moi-même.

    J'ai en effet mis en commentaire cette ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    appExcel.AutomationSecurity = Microsoft.Office.Core.MsoAutomationSecurity.msoAutomationSecurityForceDisable
    Et je me suis aussi rendu compte qu'en plaçant ma macro complémentaire dans le dossier ADDINS et non XLSTART a suffit a résoudre mon problème car il s'agissait d'un EXCEL en version 32 bits et non 64 bits.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    mars 2008
    Messages
    357
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : mars 2008
    Messages : 357
    Points : 417
    Points
    417
    Par défaut
    Bonjour El-Macho,

    Comment fais-tu pour lancer Builder5 sans avoir à renseigner le mot de passe ?
    Ne possédant pas la licence Messenger de MyReport, j'aimerai également pouvoir mettre à jour mes états automatiquement

  5. #5
    Membre habitué
    Homme Profil pro
    Consultant informatique
    Inscrit en
    mars 2014
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Conseil

    Informations forums :
    Inscription : mars 2014
    Messages : 34
    Points : 179
    Points
    179
    Par défaut
    Bonjour David,

    Non ce n'est pas possible de lancer Builder5 sans passer par l'étape "d’authentification"...
    En lancant le Builder comme çela, l'utilisateur aura à s'identifier lors de la première connexion.
    Il ne me semble pas que celà soit possible de lancer la mise à jours sans passer par l'étape d'authentification excepté via MyReportMessenger.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    mars 2008
    Messages
    357
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : mars 2008
    Messages : 357
    Points : 417
    Points
    417
    Par défaut
    Bonjour El-Macho,

    J'ai finalement trouvé une méthode via un batch
    Il suffit de de renseigner le chemin du Builder, "Maj" pour demander une mise à jour d'un classeur, le login, le mot de passe et le classeur à mettre à jour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    C:\"Program Files (x86)"\ReportOne\MyReport5\Builder5.exe Maj login:admin password: "file:C:\test.xlsm"

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

Discussions similaires

  1. Lancer une macro lors de l'activation d'un onglet
    Par Berzerk_ dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 30/08/2010, 16h44
  2. lors de la creation d'un document word ajouter automatiquement une macro
    Par nsqualli dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 10/08/2010, 18h31
  3. [XL-2007] Affichage des macros lors de l'ouverture du fichier excel
    Par Saridro dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 25/02/2010, 19h51
  4. activation macro lors d'une ouverture fichier Excel
    Par mirumoto dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 12/05/2005, 15h08
  5. [SAX] erreur lors de la creation du XMLReader
    Par vir dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 19/08/2004, 01h12

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