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

VBA Word Discussion :

Comment insérer une macro excel dans une macro word?


Sujet :

VBA Word

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 79
    Points : 35
    Points
    35
    Par défaut Comment insérer une macro excel dans une macro word?
    Bonsoir,

    J'aimerais créer une macro word qui va chercher un fichier
    .xls commençant par "Syn" dans le même répertoire,
    pui souvre le fichier "Syn" et enfin exécute la macro sous le fichier
    excel et ensuite rapatrie les les cellules d'excel sous word!

    Quelqu'un peut il me donner des idées merci!

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 144
    Points
    20 144
    Par défaut
    bonjour

    j'espere que cet exemple pourra t'aider pour la 1ere partie de ta question (rechercher un classeur commençant par "Syn" dans un repertoire , l'ouvrir et lancer une macro "Test" qu'il contient )
    L'exemple ne gere pas les erreurs si le repertoire ne contient pas de classeur "Syn...)


    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
    Option Explicit
    Option Compare Text
     
    Sub pilotageClasseur_depuisWord()
    'necessite d'activer la reference Microsoft Excel xx.x Object Library
    'dans l'editeur de macros
    'Menu Outils
    'References
    'coches la ligne "Microsoft Excel xx.x Object Library"
    'Cliques sur OK pour valider
    '
    Dim Fichier As String, Repertoire As String
    Dim AppXl As Excel.Application
    Dim Wb As Excel.Workbook
     
    Repertoire = "C:\Documents and Settings\michel\excel\"
     
    'boucle sur les classeur du Repertoire
    Fichier = Dir(Repertoire & "*.xls")
    Do While Fichier <> ""
    If Left(Fichier, 3) = "SYN" Then Exit Do
    Fichier = Dir
    Loop
     
    'ouverture classeur Excel
    Set AppXl = CreateObject("Excel.Application")
    AppXl.Visible = True 'mettre False pour qu'Excel reste masqué
    Set Wb = AppXl.Workbooks.Open(Repertoire & Fichier)
     
    AppXl.Run ("Module1.test")
    'Wb.Close True 'fermeture du classeur en sauvegardant les modifications
    'AppXl.Quit
     
    End Sub

    pour l'import dans Word , tu ne precises pas s'il s'agit
    de copier un tableau global
    de transferer les donnees dans un tableau Word existant
    de transferer les données vers des signets
    ...etc...


    bonne journée
    michel

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 79
    Points : 35
    Points
    35
    Par défaut suite!
    merci pour ton aide,
    Comment fait-on pour activer l'objet librairy dans excel;

    En fait je soutairerais faire un collage special sans mise en forme
    d'une feuille excel sous word.

    Donne moi ton email tu comprendras mieux lorsque je t'envverai le fichier!

    A tout de suite!

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 79
    Points : 35
    Points
    35
    Par défaut excel
    j'ai vu que sous excel l'option etait bien coché!

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 79
    Points : 35
    Points
    35
    Par défaut
    apparemment en lançant le debugueur sous VB word
    il n'aime pas trop

    Dim AppXl As Excel.Application

    Il ne le reconnaït

  6. #6
    Membre éprouvé
    Avatar de ridan
    Inscrit en
    Avril 2003
    Messages
    710
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Avril 2003
    Messages : 710
    Points : 1 126
    Points
    1 126
    Par défaut
    Salut,

    Citation Envoyé par max2245
    apparemment en lançant le debugueur sous VB word
    il n'aime pas trop

    Dim AppXl As Excel.Application

    Il ne le reconnaït
    Outils >> Références >> Cocher : Microsoft Excel 11.0 Object Library

    Bon courage
    @ bientôt

    :: Ressources VB : Cours | FAQ | Sources et surtout La recherche sur le forum

    :: Pour un forum plus propre ...

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 79
    Points : 35
    Points
    35
    Par défaut
    ok ca j'ai reussi à faire et c'etait deja coché!
    Le seul souci c'est qui ne reconnait pas le type appxl
    defini au début!

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 79
    Points : 35
    Points
    35
    Par défaut
    peut on me corriger le code?
    Notamment Dim appxl as excel.application qui plante

    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
     
    Sub Syntheseword()
     
    'necessite d'activer la reference Microsoft Excel xx.x Object Library
    'dans l'editeur de macros
    'Menu Outils
    'References
    'coches la ligne "Microsoft Excel xx.x Object Library"
    'Cliques sur OK pour valider
    '
    Dim Fichier As String, path As String
    Dim AppXl As Excel.Application
    Dim Wb As Excel.Workbook
     
    path = ThisDocument.path
     
    'boucle sur les classeur du Repertoire
    Fichier = Dir(path & "*.xls")
    Do While Fichier <> ""
    If Left(Fichier, 3) = "SYN" Then Exit Do
    Fichier = Dir
    Loop
     
    'ouverture classeur Excel
    Set AppXl = CreateObject("Excel.Application")
    AppXl.Visible = True 'mettre False pour qu'Excel reste masqué
    Set Wb = AppXl.Workbooks.Open(path & "\" & Fichier)
     
    AppXl.Run ("Module1.test")
    Wb.Close = True 'fermeture du classeur en sauvegardant les modifications
    AppXl.Quit
     
    End Sub

  9. #9
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    Salut

    Évite les multi-post. Efface l'autre avant que quelqu'un n'y réponde sans savoir et remets le ici (copier-coller).

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 79
    Points : 35
    Points
    35
    Par défaut
    Dans ma macro sous excel j'utilise


    path = ThisWorkbook.path

    pour chercher d'autres ficher dans le même répertoire
    que celui sur lequel je travaille

    sous word est ce

    path = ThisDocument.path

    ?

  11. #11
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 144
    Points
    20 144
    Par défaut
    rebonjour

    Vérifies de nouveau que tu as bien activé la reference "Microsoft Excel xx.x Object Library " dans Word

    sinon voici une adaptation qui copie la plage A1:GA0 et colle les données dans Word


    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
    Option Explicit
    Option Compare Text
     
    Sub Syntheseword()
     
    'necessite d'activer la reference Microsoft Excel xx.x Object Library
    'dans l'editeur de macros
    'Menu Outils
    'References
    'coches la ligne "Microsoft Excel xx.x Object Library"
    'Cliques sur OK pour valider
    '
    Dim Fichier As String, path As String
    Dim AppXl As Excel.Application
    Dim Wb As Excel.Workbook
     
    path = ThisDocument.path & "\"
     
    'boucle sur les classeur du Repertoire
    Fichier = Dir(path & "*.xls")
    Do While Fichier <> ""
    If Left(Fichier, 3) = "Syn" Then Exit Do
    Fichier = Dir
    Loop
     
    'ouverture classeur Excel
    Set AppXl = CreateObject("Excel.Application")
    AppXl.Visible = True 'mettre False pour qu'Excel reste masqué
    Set Wb = AppXl.Workbooks.Open(path & Fichier)
     
    AppXl.Run ("Module1.test")
     
    'copie plage de cellule Excel
    Wb.Sheets("Feuil1").Range("A1:G10").Copy
     
    'collage dans le document Word
    ActiveDocument.Range.PasteSpecial wdPasteText
     
    AppXl.CutCopyMode = False
    Wb.Close True 'fermeture du classeur en sauvegardant les modifications
    AppXl.Quit
     
    End Sub

    attention , il y a 2 erreurs dans ton message de 16:37

    remplace par et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    path = ThisDocument.path
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    path = ThisDocument.path & "\"

    bon week end
    michel

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 79
    Points : 35
    Points
    35
    Par défaut
    ok merci j'avais coche dans excel mais pas dans word,

    sinon pour le \ je l'ai ajouté apres

    mais je vais le mettre où tu l'as mis cela sera mieux!

    Je te dis ce qu'il en ait!

    Merci pour otn aide

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 79
    Points : 35
    Points
    35
    Par défaut
    Bon il plante ici

    Set Wb = AppXl.Workbooks.Open(path & "\" & Fichier)

    apparemment il va les chercher dans un autre repertoire que
    le reppertoire courant

    Apparemment il faut changer le path

    tu as une idee!

    JE vais le faire en manule pour voir si ca marche

  14. #14
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 144
    Points
    20 144
    Par défaut
    rebonjour

    autant pour moi , je me suis mélangé les pinceaux entre les differentes versions

    remplaces

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set Wb = AppXl.Workbooks.Open(path & "\" & Fichier)
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set Wb = AppXl.Workbooks.Open(path & Fichier)


    bonne soiree
    michel

  15. #15
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 79
    Points : 35
    Points
    35
    Par défaut
    j'ai rentre le répertoire en manuel, la il a lancé la macro,

    Donc le path = thisdocument.path c'est pas ca!

    Sinon tu peux faire un collage special sans la mise en forme?

  16. #16
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 79
    Points : 35
    Points
    35
    Par défaut
    Il y a encore deux petits soucis:

    j'ai été obligé rentrer le chemin en manuel

    car path = thisdocument.path il ne comprend pas

    et pr ailleurs j'aimerais faire un collage spécial
    sans qu'il me colle les cellules d'excel seulement
    le contenu,

    ActiveDocument.Range.PasteSpecial wdPasteText

    IL faudrait changer cette dernière ligne.

    J'aimerais aussi chosir la place où il y a du texte d'écrit
    et pas le reste!

    Sinon à part ca cela marche bien!

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

Discussions similaires

  1. utilisation d'une macro Excel dans une macro Word
    Par Tommy24 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 05/05/2011, 14h36
  2. Réponses: 8
    Dernier message: 26/03/2010, 08h16
  3. Réponses: 6
    Dernier message: 13/11/2009, 16h06
  4. Utiliser une fonction excel dans une macro et proprièté range
    Par bebel9313 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 11/08/2007, 14h25
  5. Réponses: 9
    Dernier message: 30/05/2006, 17h55

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