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 :

Créer un word à partir de plusieurs autres [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 22
    Par défaut Créer un word à partir de plusieurs autres
    Bonjour à tous,
    Je cherche, je cherche...et je ne trouve pas.
    Je dois à partir d'Excel
    - créer un nouveau document word
    - y "injecter" plusieurs documents 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
     
    ' Je créé un nouveau doc word
    Dim oWdApp As Object
    Dim oWdNew As Object
    Dim oWdOpen As Object
    Set oWdApp = CreateObject("Word.Application")
    oWdApp.Visible = True
    Set oWdNew = oWdApp.documents.Add
     
    ' Je parcours mon tableau
    While Range("A" & i) <> ""
    ' Si la case est cochée j'ouvre le fichier word correspondant
        If Range("B" & i) = "X" Then
            Set oWdOpen = oWdApp.documents.Open(ThisWorkbook.Path & "\words\" & Feuil2.Range("A" & i))
    ' J'en copie l'integralité
            oWdOpen.content.Copy
    ' Je colle dans le nouveau et je le ferme
            oWdNew.content.Paste
            oWdOpen.Close
            Set oWdOpen = Nothing
        End If
        i = i + 1
    Wend
    Le problème c'est que le "content.paste" ne colle pas à la suite de ce que j'avais deja collé mais remplace tout. Quelqu'un sait quelle méthode existe pour coller à la suite du contenu du fichier?

    Merci beaucoup, j'ai essayé à peu prés 200 autres méthodes qui ne fonctionnent pas (j'avance à taton, je ne suis pas un pro)

    Mat.

  2. #2
    Membre Expert
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 875
    Par défaut
    essaie avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    oWdNew.content.end.paste
    pas testé

    sinon pour les boucles de cellules pense au for each ou aux cells, c'est plus propre

  3. #3
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 22
    Par défaut
    Salut,

    Merci pour ta réponse. Malheureusement ca ne fonctionne pas, j'ai une erreur 424 "Objet requis"...

  4. #4
    Membre éclairé Avatar de Basicnav
    Profil pro
    Inscrit en
    Février 2008
    Messages
    245
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2008
    Messages : 245
    Par défaut
    Une idée peut-être

    tu places un ou plusieurs signets dans ton word avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    owdNew.Bookmarks.Add ("nomSignet")
    et tu viens à chaque fois selectionner ce signet avant de faire coller.

    J'avais posté un truc sur le sujet il y à 1 mois environ, la seule différence pour moi était que mon document word existait déjà.

  5. #5
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 22
    Par défaut
    Salut,
    Je viens de trouver comment faire à l'instant!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    oWdOpen.Activate
    oWdApp.Selection.WholeStory
    oWdApp.Selection.Copy
    oWdNew.Activate
    oWdApp.Selection.Paste
    Je ne sais pas si les "activate" et tout ca sont necessaires mais cela fonctionne. Une dernière question, quelqu'un sait comment je pourrai insérer un saut de page entre chaque insertion de nouveau document.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    selection.TYpeParagraph
    me permet de faire un saut de ligne, mais je trouve pas le saut de page.

    Merci beaucoup,

    Mat.

  6. #6
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 22
    Par défaut
    Je fais ma propre réponse : pour ajouter un saut de page il faut ecrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    oWdApp.Selection.insertbreak
    The End.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 20/01/2011, 01h10
  2. Réponses: 0
    Dernier message: 27/05/2009, 11h16
  3. Créer un bitmap à partir de plusieurs autres
    Par MiJack dans le forum Delphi
    Réponses: 4
    Dernier message: 08/06/2006, 13h47
  4. [Excel] Créer un tableau à partir d'un autre
    Par Ouguiya dans le forum Excel
    Réponses: 3
    Dernier message: 30/03/2006, 10h34
  5. Créer une table à partir d'une autre dans un script
    Par Dam)rpgheaven dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 24/06/2005, 10h55

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