connessione excelword



  • connessione excel-word
    di george (utente non iscritto) data: 12/11/2015 09:16:43

    domanda:

    ho un file excel che con una macro copia i dati in un testo word:

    Sub Excel_Word()
    wArch = Foglio6.Range("F2").Text
    Set objWord = CreateObject("Word.Application")
    objWord.Visible = True
    objWord.Documents.Add Template:=wArch, NewTemplate:=False, DocumentType:=0
    For i = 1 To Foglio6.Range("F1").Value
    dati = Foglio6.Range("A" & i).Text
    rimp = Foglio6.Range("B" & i).Text
    With objWord.Selection.Find
    .Text = dati
    .Replacement.Text = rimp
    .Execute Replace:=2
    End With
    Next i
    objWord.Activate
    End Sub

    In F1 ho un numero che funge da contatore dei valori da copiare ed in F2 ho la posizione del file word, adesso il problema è che se sposto entrambi i file excel e word in una cartella condivisa sul server del lavoro e cambio il percorso per far si che rispecchi il nuovo, mi da errore dicendo che non trova il file word.

    Che ne pensate?



  • di Luca73 data: 12/11/2015 10:18:29

    Ciao secondo me se la posizione reciproca dei due file rimane costante (esempio nella stessa cella oppure nell stesse sottocartelle) allora potresti farti restituie dalla sub il percorso del file excel e successivamente crearti il percorso del file word inserendo in F2 la posizione relativa.

    Ciao
    Luca





  • di george (utente non iscritto) data: 12/11/2015 10:23:07

    Salve Luca,

    Potresti spiegarti con un esempio, please?



  • di Luca73 data: 12/11/2015 10:46:18

    Esempio
    File Excel in una directory (C:UsersmaXXX0-TRAVAINITravaini TEMP)
    a file word in una sottodirectory (C:UsersmaXXX0-TRAVAINITravaini TEMPwordMIO)
    File word che si chiama "miofile.docx"

    in F2 scriverai wordMIOmiofile.docx

    Il programma dovrebbe modificarsi come sotto

    Suggerimento aggiungi un OPTION Explicit all'inizio e dichiara tutte le variabili

     
    Sub Excel_Word() 
    Dim PathFile as string
    Pathfile=ActiveWorkbook.Path
    wArch = Foglio6.Range("F2").Text
    wArch =  Pathfile & wArch
    Set objWord = CreateObject("Word.Application") 
    objWord.Visible = True 
    objWord.Documents.Add Template:=wArch, NewTemplate:=False, DocumentType:=0 
    For i = 1 To Foglio6.Range("F1").Value 
    dati = Foglio6.Range("A" & i).Text 
    rimp = Foglio6.Range("B" & i).Text 
    With objWord.Selection.Find 
    .Text = dati 
    .Replacement.Text = rimp 
    .Execute Replace:=2 
    End With 
    Next i 
    objWord.Activate 
    End Sub 
    






  • di george (utente non iscritto) data: 12/11/2015 11:11:25

    Grazie Luca ho risolto con questo:

    patharch = ThisWorkbook.Path & "NOME FILE WORD.doc"

    Mi hai aperto la mente.

    Ti ringrazio.

    Saluti