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 :

Problème ouverture page word depuis Excel [XL-365]


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Homme Profil pro
    BAC +3
    Inscrit en
    Octobre 2018
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : BAC +3

    Informations forums :
    Inscription : Octobre 2018
    Messages : 164
    Points : 92
    Points
    92
    Par défaut Problème ouverture page word depuis Excel
    Bonjour,

    Je crée une application Excel permettant entre autre de piloter le publipostage d'une macro créée dans Word.
    En essayant d'exécuter directement la macro Word depuis Excel, plusieurs problèmes se posent : il m'affiche que la source de données n'est pas au bon format alors que c'est un format XLSM et que cela fonctionne si on lance la macro depuis Word et quand ce problème n’apparaît pas, il y a un problème au niveau de l'envoi disant que les destinataires ne sont pas sélectionnés, message qui n’apparaît pas non plus e exécutant la macro depuis Word.
    J'ai donc décidé de faire en sorte que la macro Excel ne fasse qu'ouvrir le fichier sélectionné dans Word afin d'exécuter la macro depuis Word, ce qui permet aux utilisateurs d'éventuellement modifier les mails qu'ils souhaitent envoyer mais un message apparaît :
    " L'Ouverture de ce document exécute la commande SQL suivante :
    SELECT * FROM 'liste'$
    Des données de votre base de données seront insérés dans le document.Voulez-vous continuer ?
    Oui NON"

    Je n'ai pas réussi à ce que ce message ne se génère pas, le problème n'est pas là.En effet, lorsque Excel est en plein écran ou couvre le milieu de l'écran, ce message apparaît derrière et on ne peut pas y accéder et donc pas ouvrir le fichier Word correspondant, et l'on ne peut pas déplacer la fenêtre Excel puisque la macro est en cours d'exécution et lorsque que l'on n'exécute pas la macro depuis la fenêtre de VBA, on ne peut même pas arrêter le chargement et tout se retrouve bloqué par ce message caché.

    J'espère que vous pourrez m'aider sur l'un de ces problèmes.
    Merci
    Images attachées Images attachées  

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par BiRoy Voir le message
    Bonjour,

    Si vous faites de l'Excel vers Word, ce ne serait pas plus simple d'injecter directement vos valeurs dans des signets ?

  3. #3
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 940
    Points : 28 938
    Points
    28 938
    Billets dans le blog
    53
    Par défaut
    Bonjour Eric,
    Si vous faites de l'Excel vers Word, ce ne serait pas plus simple d'injecter directement vos valeurs dans des signets ?
    100% d'accord avec toi

    Ma première expérience en VBA Excel Word, il y a 20 ans, a été de créer une interface basée sur le publipostage, le parcours du combattant. Une première release pour 2003 a renvoyé un message d'alerte de sécurité.
    De plus à l'époque trouver des sites qui parlais du VBA pour Word était une véritable galère.

    Depuis j'utilise les signets. Un véritable bonheur.

  4. #4
    Membre régulier
    Homme Profil pro
    BAC +3
    Inscrit en
    Octobre 2018
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : BAC +3

    Informations forums :
    Inscription : Octobre 2018
    Messages : 164
    Points : 92
    Points
    92
    Par défaut
    Bonjour,

    Merci pour vos réponses. Je ne sais pas comment fonctionnent les signets, c'est pour cela que j'ai choisi cette méthode.
    Si vous pouvez m'expliquer en quelques mots, je serai ravie d'essayer.

    Merci

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par BiRoy Voir le message
    (Bonjour Philippe )

    Cette solution est suffisante dans le cas d'un document créé à partir d'un modèle et utilisé une seule fois (cas d'un publipostage). Si le document créé doit être mis à jour plusieurs fois, il faudra reconstruire le signet après remplacement. Ce point est bien expliqué par Olivier LEBEAU dans son tuto VBA 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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
     
    Option Explicit
     
    Sub CreerLesDocuments()
     
    'Dim WApp As Word.Application, DocWord As Word.Document
    Dim WApp As Object, DocWord As Object  ' En late binding
    Dim LigneEncours As Long, DerniereLigne As Long
    Dim AireDocuments As Range
     
        With Sheets("Feuil1")
             DerniereLigne = .Cells(.Rows.Count, 1).End(xlUp).Row
             Set AireDocuments = .Range(.Cells(2, 1), .Cells(DerniereLigne, 1))
        End With
     
        Set WApp = CreateObject("word.application")
        With WApp
             .Visible = True
             For LigneEncours = 1 To AireDocuments.Count
                 With AireDocuments(LigneEncours)
                      Set DocWord = WApp.Documents.Add(Template:=ThisWorkbook.Path & "\Modèle courrier.dotx")
                      MajSignets DocWord, AireDocuments(LigneEncours)
                      DocWord.SaveAs Filename:=ThisWorkbook.Path & "\" & AireDocuments(LigneEncours).Value & ".docx", FileFormat:=12
                      DocWord.Close
                 End With
             Next LigneEncours
        End With
        WApp.Quit
     
        MsgBox "Fin de création des courriers !", vbInformation
     
        Set DocWord = Nothing
        Set WApp = Nothing
        Set AireDocuments = Nothing
     
    End Sub
     
     
    Sub MajSignets(ByVal DocAModifier As Word.Document, ByVal CelluleEnCours As Range)
     
    Dim ColEnCours As Integer
     
        ColEnCours = CelluleEnCours.Column
     
        With DocAModifier
             .Bookmarks("Date_étab").Range.Text = CelluleEnCours.Offset(0, 1 - ColEnCours)
             .Bookmarks("Ref").Range.Text = CelluleEnCours.Offset(0, 2 - ColEnCours)
             .Bookmarks("Nom").Range.Text = CelluleEnCours.Offset(0, 3 - ColEnCours)
             .Bookmarks("Prénom").Range.Text = CelluleEnCours.Offset(0, 4 - ColEnCours)
             .Bookmarks("Adresse").Range.Text = CelluleEnCours.Offset(0, 5 - ColEnCours)
             .Bookmarks("Complément").Range.Text = CelluleEnCours.Offset(0, 6 - ColEnCours)
             .Bookmarks("CP").Range.Text = CelluleEnCours.Offset(0, 7 - ColEnCours)
             .Bookmarks("Ville").Range.Text = CelluleEnCours.Offset(0, 8 - ColEnCours)
             .Bookmarks("Traité_par").Range.Text = CelluleEnCours.Offset(0, 9 - ColEnCours)
        End With
     
    End Sub

  6. #6
    Membre régulier
    Homme Profil pro
    BAC +3
    Inscrit en
    Octobre 2018
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : BAC +3

    Informations forums :
    Inscription : Octobre 2018
    Messages : 164
    Points : 92
    Points
    92
    Par défaut
    Merci beaucoup !!
    Je vais essayer ce morceau de code et je mettrai le problème comme résolu dès que ce sera bon pour moi

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

Discussions similaires

  1. Imprimer des pages Word depuis Excel
    Par touche_a_tout dans le forum VBA Word
    Réponses: 5
    Dernier message: 06/05/2019, 19h54
  2. Protéger une page Word depuis Excel
    Par Patouillou dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/02/2018, 07h57
  3. Ouverture d'un fichier Word depuis Excel
    Par franck71 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 05/07/2008, 23h33
  4. en-tête et pied de page dans Word depuis Excel
    Par fabfaz dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 09/04/2008, 20h28
  5. Ouverture d'un template Word depuis Excel
    Par modus vivendi dans le forum VBA Word
    Réponses: 1
    Dernier message: 14/08/2005, 10h29

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