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

Macros et VBA Excel Discussion :

Macros Excel - Word


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Inscrit en
    Avril 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 6
    Par défaut Macros Excel - Word
    Bonjour à tous,

    J'ai une macro se trouvant dans un classeur Excel nommé "traitement excel" qui va récupérer des données dans un autre fichier Excel puis ensuite les reporte dans un document Word mais également la macro doit coller des photos dont le chemin d'accès se trouve en variable dans le classeur de traitement.

    J'ai deux petits soucis, un lié au presse papier lors de la recopie des données vers word, c'est tellement aléatoire que j'attends encore certaines vérifications avant de vous en parler et le second concerne la récupération du chemin pour les photos.


    J'ai commencé par monter un programme dans un document word qui va récupérer des photos dans un serveur et les copie dans son propre document : ce programme fonctionne à merveille.

    J'ai donc voulu le mettre dans ma macro Excel qui commande tout mon processus mais là je me heurte au fait que dans Excel quand je commande du word je mets devant mes instructions que je suis dans Word donc pour ce programme j'ai déclaré ma variable word objApplication et je note With objApplication et toutes mes lignes commencent par un point, seulement mes lignes de codes de ma macro word ne sont pas compatibles avec cette écriture qui commence par le point par exemple quand j'ajoute ma photo ma ligne est : set objShape = etc.... et pas plus qu'avec mon With objShap ..

    Du coup je me suis dit c'est pas grave je vais laisser ma macro dans mon Template Word et je l'appellerai d'Excel, cette configuration marche très bien mais le chemin de mes photos (ainsi que leur noms) sont des variables se trouvant renseignée dans mon Excel et je n'arrive pas à faire passer ces variable dans la macro du Word (j'ai essayé des trucs que j'ai vu sur le net mais sans succès) du coup je suis encore bloquée !!!


    Je vous aurai bien mis en ligne ma macro word mais je ne sais pas comment l'insérer dans le post.
    Je pense que vous aurez tout de même compris mon souci et j'espère que vous pourrez m'aider.

    Merci à tous
    Céline

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    mes lignes de codes de ma macro word ne sont pas compatibles
    Est-ce que dans ton projet Excel, tu as chargé la librairie Word ?
    Dans l'éditeur VBA Excel, sélectionne le module où se trouve la macro > Outils > Références > Cocher la bibliothèque "Microsoft Office 14.0 Object Library" (le "14" dépend de ta version d'Office).
    Et réciproquement si tu veux utiliser des objets dans une macro VBA dans Word.

    Sinon, VB ne reconnait pas les objets Word, même si tu signales qu'ils appartiennent à une application Word.


    Vérifie aussi (on ne sait jamais) que "Visual Basic for Applications" et "OLE Automation" aussi sont cochés.

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Inscrit en
    Avril 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 6
    Par défaut
    Oui c'est chargé dans les références.

  4. #4
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par cpretty Voir le message
    Je vous aurai bien mis en ligne ma macro word mais je ne sais pas comment l'insérer dans le post.
    Tu sélectionnes ton code dans l'éditeur VB > Ctrl+C
    Tu cliques dans l'éditeur de messages du forum > Ctrl+V
    Tu sélectionnes le code que tu viens de copier et tu cliques sur l'icone # pour placer des balises CODE qui le rendront plus lisible.

  5. #5
    Nouveau membre du Club
    Femme Profil pro
    Inscrit en
    Avril 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 6
    Par défaut
    Merci, donc voilà mon code macro Word dans mon document Word qui insère des photos à partir du serveur K écrit en dur, ce chemin doit être mis en variable tout comme le nom de la photo bien sûr, et les renseignements seront inscrit dans mon fichier Excel qui s'appelle Traitement Excel.

    Donc ce code soit je le copie dans mon programme Excel mais comment l'adapter au langage Excel, soit je peux le laisser dans le Template Word mais il faut lui passer les variables pour les photos.


    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
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    Sub INSERTION_PHOTOS_ACTUALISATION() 'Insère une image, la positionne et met une bordure, programme OK 
     
    'l'objet InlineShape est une image alignée sur le texte, cet objet permet des bordures mais pas un positionnement devant ou derrière le texte puisqu'il est aligné 
    'l'objet Shape est une image dans le document, l'image ne permet pas de bordure mais permet un positionnement selon le texte 
    'dans notre cas nous avons besoin des deux, du coup on insère une image alignée sur le texte pour lui mettre une bordure 
    'puis nous la convertissons en image shape afin de la position par rapport au texte 
     
    Dim objShape As InlineShape 'image en alignée texte 
    Dim image As Shape 'image 
    Dim PhotoUne As String 
    Dim PhotoDeux As String 
     
     
    'Photo 1 
    ' on recherche le signet dans Word pour se positionner 
    Selection.Goto What:=wdGoToBookmark, Name:="Sgn_P_Photo1" 
     
    Set objShape = Selection.InlineShapes.AddPicture(Filename:="K:\PHOTOS PLANS Dossiers individuels\PHOTOS et PLANS 2013 - Boîtes experts\EBOD\COSNES ET ROMAIN rue du Béarn\Photo 743.jpg") 
    * * With objShape 'créé des bordures 
    * * * * With .Borders(wdBorderTop) 
    * * * * * * .LineStyle = wdLineStyleSingle 
    * * * * * * .LineWidth = wdLineWidth150pt 
    * * * * * * .Color = wdColorAutomatic 
    * * * * * * .Color = -570359809 
    * * * * End With 
    * * End With 
    * 
    Set image = objShape.ConvertToShape 'converti l'image 
    With image 
    .RelativeHorizontalPosition = 1 'Position de départ du décompte de centimètres 1 = début de page 
    .RelativeVerticalPosition = 0 'Position de départ du décompte de centimètres 0 = début de marge 
    '2 début colonne, 4 marge gauche, 5 marge droite 
     
    .LockAspectRatio = msoTrue 
    * * If .Width > .Height Then 'condition pour redimmensionner différemment les photo paysage ou portrait 
    * * * * .Width = 170 
    * * * * .Left = CentimetersToPoints(12) '12 centimètres à partir de la page utiliser InchesToPoints pour les pouces 
    * * * * .Top = CentimetersToPoints(2.1) '2 centimètres à partir de la marge utiliser InchesToPoints pour les pouces 
    * * Else 
    * * * * .Height = 130 
    * * * * .Left = CentimetersToPoints(13.3) 
    * * * * .Top = CentimetersToPoints(2.1) 
    * * End If 
    * * 
    .ZOrder msoBringInFrontOfText 'met au premier plan devant le texte 
    '.ZOrder msoSendBehindText 'option pour image en arrière plan derrière le texte 
     
    End With 
     
     
     
    'Photo 2 
    ' on recherche le signet dans Word pour se positionner 
    Selection.Goto What:=wdGoToBookmark, Name:="Sgn_P_Photo2" 
     
    Set objShape = Selection.InlineShapes.AddPicture(Filename:="K:\PHOTOS PLANS Dossiers individuels\PHOTOS et PLANS 2013 - Boîtes experts\EBOD\COSNES ET ROMAIN rue du Béarn\Photo 737.jpg") 
    * * With objShape 'créé des bordures 
    * * * * With .Borders(wdBorderTop) 
    * * * * * * .LineStyle = wdLineStyleDouble 
    * * * * * * .LineWidth = wdLineWidth150pt 
    * * * * * * .Color = wdColorAutomatic 
    * * * * * * .Color = -570359809 
    * * * * End With 
    * * End With 
    * 
    Set image = objShape.ConvertToShape 'converti l'image 
    With image 
    .RelativeHorizontalPosition = 1 'Position de départ du décompte de centimètres 1 = début de page 
    .RelativeVerticalPosition = 0 'Position de départ du décompte de centimètres 0 = début de marge 
    '2 début colonne, 4 marge gauche, 5 marge droite 
     
    .LockAspectRatio = msoTrue 
    * * If .Width > .Height Then 'condition pour redimmensionner différemment les photo paysage ou portrait 
    * * * * .Width = 170 
    * * * * .Left = CentimetersToPoints(12) '12 centimètres à partir de la page utiliser InchesToPoints pour les pouces 
    * * * * .Top = CentimetersToPoints(8.1) '2 centimètres à partir de la marge utiliser InchesToPoints pour les pouces 
    * * Else 
    * * * * .Height = 130 
    * * * * .Left = CentimetersToPoints(13.3) 
    * * * * .Top = CentimetersToPoints(8.1) 
    * * End If 
    * * 
    .ZOrder msoBringInFrontOfText 'met au premier plan devant le texte 
    '.ZOrder msoSendBehindText 'option pour image en arrière plan derrière le texte 
     
    End With 
     
    End Sub

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 25
    Par défaut
    Bonjour à tous je reprends la conversation personne ne peut m'aider pour passer une variable d'Excel dans une macro Word ??

Discussions similaires

  1. [Debutant] Macro formulaire word -> excel
    Par Jidewe dans le forum VBA Word
    Réponses: 2
    Dernier message: 27/12/2006, 19h37
  2. Comment ouvrir word depuis macro excel ?
    Par megapacman dans le forum VBA Word
    Réponses: 4
    Dernier message: 15/11/2006, 15h59
  3. Mannipuler un Word pdt lancement macro Excel
    Par el_pilacho dans le forum VBA Word
    Réponses: 1
    Dernier message: 10/10/2006, 14h38
  4. Macro depuis word qui ferme un fichier excel
    Par max2245 dans le forum VBA Word
    Réponses: 7
    Dernier message: 13/01/2006, 09h57
  5. Comment insérer une macro excel dans une macro word?
    Par max2245 dans le forum VBA Word
    Réponses: 15
    Dernier message: 07/01/2006, 17h44

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