Piloter word depuis excel

Résolu
mimi -  
 raphal78 -
Bonjour,

je suis bloquée depuis plusieurs jours sur un problème.
j'ai besoin de piloter Word à partir des macro VBA d'Excel pour ouvrir un fichier existant, le parcourir jusqu'à trouver la fin, puis y copier des plages de cellules d'un fichier excel.
voici mon code:

Open "C:\testWord.doc" For Input As #1
Do While Not EOF(1)
AppWord.Selection.MoveDown Count:=1
Loop

or ça ne marche pas. il ne trouve pas la fin du fichier. lorsque j'observe le fichier après l'exécution du code, je vois que la boucle n'est pas terminée et qu'il cherche toujours la fin du fichier.
Je ne comprends pas ce qu'il se passe.
Est ce que quelqu'un pourrait m'aider?
merci...

7 réponses

  1. mohammed
     
    Salut mimi,
    je crois que votre pblème vien du nom de fichier
    do while not.eof(1) c'est quoi 1?
    un nom de fichier ne peut pas être un numéro.
    BONNE cHANCE
    MERCI
    1
    1. mimi
       
      lorsque j'utilise la méthode EOF il me demande un int en argument qui correspond au numéro de fichier. J'ai donc attribué à mon fichier le numéro 1 pour l'utiliser ensuite comme ça.
      c'est une méthode que j'ai vu sur plusieurs codes que j'ai trouvés sur internet.
      si tu connais une autre façon d'écrire ça est ce que tu peux m'aider parce que je trouve plus quoi faire...
      merci
      0
  2. mohammed
     
    salut,
    sub essai()
    dim dbs as database, rst as DAO.recordset
    set dbs = currentdb
    set rst=dbs.openrecordset("<nom de la table>")
    do while not rst.eof
    instructions
    loop
    end sub
    Bonne chance.MERCI
    0
    1. hugo
       
      Salut !
      Je suis en galère sur un point assez précis, pourrais tu m'aider ?

      Je cherche à parcourir un fichier word à la recherche d'une expression particuliere type {cke:*} ( la découverte de cette expression lancera un traitement..).

      As tu une idée ??? Merci d'avance ! ;-)

      hugo
      0
      1. Mimi > hugo
         
        Salut,

        je n'ai jamais eu à faire ce qui te pose problème mais voila ce que j'ai trouvé:

        1/ L'exemple suivant montre comment rechercher toutes les occurrences du mot « salut » dans le document actif et les remplacer par « bonjour ».

        Set myRange = ActiveDocument.Content
        myRange.Find.Execute FindText:="salut", ReplaceWith:="bonjour", _
        Replace:=wdReplaceAll

        2/ L'exemple suivant montre comment localiser la première occurrence du mot « bleu » dans le document actif. Si ce mot est trouvé dans le document, myRange est redéfini et la mise en forme gras est appliquée au mot « bleu ».»

        Set myRange = ActiveDocument.Content
        myRange.Find.Execute FindText:="bleu", Forward:=True
        If myRange.Find.Found = True Then myRange.Bold = True



        j'espère que ça pourra t'aider...

        bonne chance!
        0
  3. mimi
     
    bonjour,

    c'est pas exactement ce que j'essayais de faire. Je voulais lire un fichier pas une base de données. Mais c'est bon j'ai réussi à faire ce que je voulais hier.
    Merci beaucoup pour ton aide en tout cas.
    0
    1. BEN
       
      Salut,

      Je souhaite ouvrir un fichier word existant et copier dans ce dernier
      des lignes en fin de fichier puis les coller sous excel..
      Peut tu me donnner le bout de programme que tu as utilisé
      merci d avance
      0
      1. Mimi > BEN
         
        salut,

        voila des bouts de mon code j'espère que ça t'aidera

        ouvre ton doc word
        Dim appword As Word.Application
        Set appword = New Word.Application
        Application.DisplayAlerts = True
        appword.ShowMe
        appword.Visible = True
        appword.Documents.Open FileName:="fichierAouvrir"

        va en fin de fichier
        appword.Selection.EndKey Unit:=wdStory

        selectionne les 3 dernieres lignes
        appword.Selection.MoveUp Unit:=wdLine, Count:=3, Extend:=wdExtend
        With appword.Selection.Copy
        End With

        copie ds excel
        Worksheets("NomPageExcel").Activate
        range("a1").PasteSpecial



        voila! bonne chance!
        0
      2. Ben > Mimi
         
        Merci!!
        Je suis parvenu a faire ce que je voulais mais merci qd meme
        @++
        0
  4. mohammed
     
    Salut,
    BRAVO :)
    Bonne chance.
    Merci
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. sab
     
    Bonjour,

    J'aimerais copier une cellule d'excel dans l'ENTETE d'un fichier Word comment faire ?
    Je sais copier dans le corps du document Word :
    doc_word.Selection.Paste
    Mais je ne sais pas comment faire pour l'entête....

    Merci
    sab
    0
    1. Mimi
       
      salut!

      tu peux retrouver ce genre d'instruction à partir des macros de word. tu fais outils macro nouvelle macro et ça va t'enregistrer tout ce que tu fais après ça. alors si tu ouvres un entête et que tu copies qqch dedans tu verras le code qui s'affiche dans la macro en faisant macro modifier.

      j'ai essayé ce que tu as demandé et je trouve ça. essaye le et si ça marche pas fais comme je t'ai dit. voila ma macro:

      If ActiveWindow.View.SplitSpecial <> wdPaneNone Then
      ActiveWindow.Panes(2).Close
      End If
      If ActiveWindow.ActivePane.View.Type = wdNormalView Or ActiveWindow. _
      ActivePane.View.Type = wdOutlineView Then
      ActiveWindow.ActivePane.View.Type = wdPrintView
      End If
      ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
      Selection.PasteAndFormat (wdPasteDefault)

      bonne chance!
      0
  7. brunoooooo Messages postés 11 Statut Membre
     
    tout le monde seche sur mon sujet,

    je vous explique ...

    on a une super application excel qui fait plein de chose, imprime, enregistre, fait des traitement de rappro, genere des mails ... et le pb se pose lorsqu'on utilise un copier en metafichier de excel pour l application word ( tout etant piloter par excel ) le pb c'est que l'image metafichier wondows simple est nikel mail lors de la generation de word, gestion de l autre application à partir d excel, l image est trop importante, il suffirait de la reduire au niveau taille et de virer les marges par defaut du nouveau document word qui sont trop importante,
    Il est assez simple à partir de word, mais juska present impossible en pilotant excel et en gérant l'application word,

    Le top se serait de reduire le coller qui atterit sur word à 80% et mettre des marge de 1 de partourt sur word,

    deja pouvez vous me dire si on est tous a se prendre la tete sur un truc impossible ?

    Je vous remercie de ton aide et suggestion,

    cf echantillon de la macro qui copie la préconfirmation de traitement de deal sur une feuille excel, utilise l application word pour coller en metafichier ...mais la mise en page ca passe pas ( reduction taille image, et gestion des marge word =toujours à partir d excel

    J espere que j ai ete assez precis, concret ...

    Merci,

    Bruno,

    Sheets("confirm" ).Select

    Range("a1:J93" ).Copy

    'Sheets("collar" ).Select

    Set WW = CreateObject("word.application" )
    WW.Visible = True
    WW.documents.Add
    '''' mise en page word
    'WW.Selection.Paste Special
    'celle que j utilise maintenant

    WW.Selection.PasteSpecial DataType:=wdPasteMetafilePicture

    End Sub
    -1
    1. raphal78
       
      Bonjour Bruno,

      As-tu résolu ton PB de copie de métafichier depuis excel vers word?
      Si oui je suis preneur de ta solution car j'ai le même soucis;
      Après copie spéciale en métafichier mon graphique qui vient de word est tout petit??

      D'avance merci pour ta réponse.

      Cdlt Rafal78
      0