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 6 et antérieur Discussion :

Exécuter une macro de VB a Excel


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 48
    Par défaut Exécuter une macro de VB a Excel
    Bonjour, j'aimerais savoir s'il est possible de faire fonctionner une macro sur VB (en l'occurance ConstruitTCD()).

    Sinon j'aimerais savoir s'il est possible d'ouvrir un fichier excel contenant les macros en question et faire un Workbooks.OpenText dessus !

    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
    Public Sub Go()
     
    'Déclaration des variables
    Dim appExcel As Excel.Application 'Application Excel
    Dim wbExcel As Excel.Workbook 'Classeur Excel
    Dim wsExcel As Excel.Worksheet 'Feuille Excel
     
    'Ouverture de l'application
    Set appExcel = CreateObject("Excel.Application")
    'Ouverture d'un fichier Excel
    Workbooks.OpenText FileName:=App.Path & "\rq.txt", Origin:=xlWindows, _
    StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlNone, _
    ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(1, 1), TrailingMinusNumbers:=True
     
    '
    Set wbExcel = appExcel.ActiveWorkbook
    Set wsExcel = wbExcel.ActiveSheet
    ConstruitTCD
    'Rendre excel visible
    appExcel.Visible = True
     
    'appExcel.Quit
    'Désallocation mémoire
    Set wsExcel = Nothing
    Set wbExcel = Nothing
    Set appExcel = Nothing
     
    End Sub
    ---
    Sub ConstruitTCD()
    Range("A1").CurrentRegion.Select
    ActiveWorkbook.Names.Add "BD", RefersToR1C1:=Selection
        ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
            "BD").CreatePivotTable TableDestination:="", TableName:= _
            "TCD"
        ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
         ActiveSheet.Cells(3, 1).Select
            ActiveSheet.PivotTables("TCD").AddFields RowFields:="A" _
            , ColumnFields:="B"
        ActiveSheet.PivotTables("TCD").PivotFields("C"). _
            Orientation = xlDataField
    End Sub

  2. #2
    Membre expérimenté
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2008
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2008
    Messages : 155
    Par défaut
    Salut!!
    Le code ci-dessous se base sur un fichier modèle (monmodele.xls) qui lui contient la macro et toutes les config que tu veux. Il va ensuite créer une copie de ce fichier, faire tourner la macro "Go" et sauvegarder ce nouveau fichier...
    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
    Private Function SendExceltoFile() As Boolean
            On Error GoTo ErrorHandler
            Dim ReturnCode As Integer
            Dim oExcel As Object
            Dim oBook As Object
     
            Dim ParameterName As String
            Dim ParameterValue As String
     
            On Error Resume Next
            Set oExcel = GetObject(, "Excel.Application")
            On Error GoTo 0
            If oExcel Is Nothing Then Set oExcel = CreateObject("Excel.Application")
     
            Set oBook = oExcel.Workbooks.Open("C:\usertemp\monmodele.xls)
     
            'Make Wordfile invisible
            oExcel.Visible = False
     
     
            On Error Resume Next
            oExcel.Run "Go" 'Execution de la macro
            On Error GoTo 0
     
            oBook.SaveAs "C:\usertemp\monresultat.xls"
            oBook.Close 0
            Set oBook = Nothing
            Set oExcel = Nothing
     
            SendExceltoFile = True
            Exit Function
     
    ErrorHandler:
            SendExceltoFile = False
    End Function
    J'espère que cela t'aidera

Discussions similaires

  1. [XL-2002] Exécuter une macro dans un objet Excel OLE.
    Par lafg1 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 30/10/2014, 13h37
  2. [XL-2003] Exécuter une macro sur 2 fichiers excel en même temps..
    Par visto94 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 28/07/2010, 14h09
  3. Réponses: 11
    Dernier message: 29/05/2008, 16h26
  4. [VBA] Exécuter une macro Access Via Excel
    Par zenix dans le forum VBA Access
    Réponses: 1
    Dernier message: 05/05/2007, 00h11
  5. outre passer excel et quand même exécuter une macro excel : possible en VB ?
    Par chapeau_melon dans le forum VB 6 et antérieur
    Réponses: 17
    Dernier message: 08/11/2006, 20h59

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