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

Lazarus Pascal Discussion :

[COMOBJ] Copier/coller dans des documents Word


Sujet :

Lazarus Pascal

  1. #1
    Membre habitué
    [COMOBJ] Copier/coller dans des documents Word
    Bonjour à tous,
    Je cherche désespérément à utiliser le copier coller de la totalité du texte d'un premier document WORD dans un second document WORD , tous deux gérés par l'intermédiaire de COMOBJ.
    J'ai pu créer et ouvrir les deux documents sans problème particulier mais mes tentatives de copier-coller par code entre ces documents ont été vaines, que ce soit par l'intermédiaire d'une macro VBA de Word ou en passant par le presse papier.
    Le code actuel est le suivant :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    vWDocument := vwDocuments.Add;
      vWDocument.saveAs(NouvDoc) ;  // le document word dans lequel doit être collé le texte du document word dont le nom est OuvrDoc
      vWDocument := vWDocuments.Open(OuvrDoc);
      vWDocument.Activate;
      Texte1 := vWDocument.Content.select ;
      ClipBoard.Clear ;
      Clipboard.AsText := ' ceci est un essai' ; // Ce texte est un texte d'essai. En réalité le texte à copier est le contenu de la variable Texte1 qui est censé être le texte du document Word        OuvrDoc
      vWDocument.Close ;
      vWDocument := vWDocuments.open(NouvDoc) ;
      vWDocument.Activate;
      vWDocument.Content := ClipBoard.AsText ;
      vWDocument.Close ;


    Je vous remercie par avance pour les solutions qui pourront m'être proposées.

    Cordialement

    R.O.

  2. #2
    Membre habitué
    ComObj - Copier Collere dans des documents Word
    Bonjour à tous,

    Depuis mon message, le code a un peu évolué et il permet effectivement de récupérer le texte du document 'OuvrDoc' dans le presse papier (vérifié après un coller dans Notepad). Il reste maintenant à faire accepter le texte par le document 'NouvDoc' avec une nouveauté : après avooir sélectionné le texte de OuvrDoc, le document est verrouillé en lecture seule ce qui est ennuyeux. Comment le libérer de ce verrouillage ?

    le nouveau code :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     vWDocument := vwDocuments.Add;
      vWDocument.saveAs(NouvDoc) ;
      vWDocument := vWDocuments.Open(OuvrDoc); // le document Word dont la totalité du texte doit être copié
      vWDocument.Activate;
      vWDocument.Content.select ; 
      vWDocument.Content.Copy ; 
      vWDocument.Close ;  //fermeture du document OuvrDoc . Peut-être faut-il déselectionner le texte  avant de fermer le document
      vWDocument := vWDocuments.open(NouvDoc) ; // Le document vierge qui doit recevoir le texte contenu dans le presse papier 
      vWDocument.Activate;
      vWDocument.Content := ClipBoard.AsText ;  // L'instruction censé injecter le contenu du presse-papier dans le document vierge -- RIEN NE SE PASSE 
      ClipBoard.Clear ;
      vWDocument.Close ;


    cela a donc avancé un peu.... mais si peu !!!
    Merci pour vos suggestions.
    Cordialement


    R.O.

  3. #3
    Membre habitué
    ComObj - Copier Coller dans des documents Word
    Re.. BOnjour,

    Il semble que poster sur le forum stimule car en remplaçant la ligne 10 du code le contenu du document es bien collé.
    IL reste donc le problème du verrouillage et la fermeture de Word à gérer.
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
      vWDocument := vWDocuments.open(NouvDoc) ;
      vWDocument.Activate;
      vWDocument.Content := ClipBoard.AsText ;
      vWDocument.Close ;

    devient :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
     vWDocument := vWDocuments.open(NouvDoc) ;
     vWDocument.Activate;
      vWDocument.Content.paste ; 
      vWDocument.Close ;


    Cordialement
    R.O.

###raw>template_hook.ano_emploi###