Aprire un documento Word da un altro documento Word con VBA

Anonimo
2024-03-18T16:28:21+00:00

Salve a tutti,

vorrei chiedere se potete aiutarmi per fare una macro che da un documento di word ne apre un altri, click su pulsante va bene.

quello che vorrei fare è copiare dei campi contenuti in alcune tabelle del DOC1 e copiarle nel DOC2.

il DOC2 è quello che apre il DOC1 con la macro.

grazie a tutti

buona serata

Giovanni

Microsoft 365 e Office | Word | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

3 risposte

Ordina per: Più utili
  1. Anonimo
    2024-03-20T09:03:27+00:00

    Ciao Sacristani G!

    Si prega di provare questo:

    Sub ApriFileWord() Dim objWord come oggetto Dim objDoc come oggetto Dim filePath come stringa

    ' Ottenere la directory corrente in cui si trova la cartella di lavoro di Excel Dim currentDir come stringa currentDir = CurDir

    ' Costruisci il percorso verso lo "0. Cover.docx" relativo alla directory corrente filePath = currentDir & "\0. Cover.docx"

    ' Creare un'istanza di Word e aprire il menu "0. Cover.docx" Impostare objWord = CreateObject("Word.Application") Imposta objDoc = objWord.Documents.Open(percorsofile)

    ' Rendi visibile Word objWord.Visible = Vero Fine sottomarino

    Per favore fatemi sapere come va e se avete bisogno di altra assistenza e sarò più che felice di aiutarvi ulteriormente.

    Grazie

    Migliori saluti Shakiru

    Questa risposta è stata tradotta automaticamente. Di conseguenza, potrebbero esserci errori grammaticali o espressioni strane.

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2024-03-19T10:28:16+00:00

    Buongiorno Shakiru,

    per qualche motivo il tuo codice mi manda in blocco le macro e quindi cercando un po ho trovato questa soluzione molto simile ma funziona.

    Sub ApriFileWord()

    Dim objWord

    Dim objDoc

    Set objWord = CreateObject("Word.Application")

    Set objDoc = objWord.Documents.Open("C:\Users\gsacristani\Desktop\SPEC STD 2024\TEST\0. Cover.docx")

    objWord.Visible = True

    End Sub

    a questo punto vorrei chiedere un passo in piu, siccome saremo in tanti ad usare il file vorrei che ognuno copiasse il file 0. Cover (che poi è quello che chiamavamo DOC1) nella sua cartella di lavoro... ovunque egli desideri.

    nella cartella ci sarà anche quello che abbiamo chiamato DOC2 (quello che contiene lo script sopra).

    io vorrei puntare alla directory attuale dove si sta lavorando, in questo modo funziona sempre a prescindere dalla path.

    es:

    Set objDoc = objWord.Documents.Open("ActiveDir\0. Cover.docx")

    ovviamente nn credo che funzioni cosi è solo per spiegarmi

    grazie

    Giovanni

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2024-03-18T17:19:53+00:00

    Ciao Sacristani G!

    Sono Shakiru, un consulente indipendente e un utente come te, e sono felice di aiutarti oggi.

    È possibile creare una macro in DOC2 per aprire DOC1 ed eseguire azioni quali la copia di campi dalle tabelle in DOC1 a DOC2.

    Prova questo codice:

    Sub OpenAndCopyDataFromOtherDocument() Dim wdApp come oggetto Dim wdDoc1 come oggetto Dim wdDoc2 come oggetto Dim tbl come oggetto Dim cel come oggetto

    ' Aprire DOC1 Impostare wdApp = CreateObject("Word.Application") Impostare wdDoc1 = wdApp.Documents.Open("C:\Path\To\Your\DOC1.docx") ' Sostituisci con il percorso del tuo DOC1

    ' Attiva DOC1 wdDoc1.Attiva

    ' Accesso e copia dei dati dalle tabelle in DOC1 Per ogni tbl in wdDoc1.Tables ' Supponendo che si vogliano copiare i dati da tutte le tabelle, è possibile modificare questa condizione in base alle esigenze Per ogni cel In tbl. Intervallo.Celle ' Copia i dati da ogni cella della tabella ' Qui è possibile eseguire l'operazione di copia o qualsiasi altra manipolazione dei dati ' Ad esempio: ' cel. Intervallo.Copia ' Selection.Paste ' Incolla i dati copiati in DOC2 Prossimo cel Prossimo tbl

    ' Apri DOC2 (questo sarà il documento in cui vuoi incollare i dati copiati) Imposta wdDoc2 = Documents.Open("C:\Path\To\Your\DOC2.docx") ' Sostituisci con il percorso del tuo DOC2

    ' Attiva DOC2 wdDoc2.Attiva

    ' Chiudere DOC1 senza salvare le modifiche (opzionale) wdDoc1.Close False

    ' Pulisci gli oggetti Imposta wdDoc1 = Niente Imposta wdDoc2 = Niente Imposta wdApp = Niente Fine sottomarino

    Si prega di notare:

    Assicurarsi di abilitare le macro in Word per eseguire questo codice. Inoltre, assicurati sempre di salvare i tuoi documenti prima di eseguire qualsiasi macro.

    Sostituisci "C:\Path\To\Your\DOC1.docx" e "C:\Path\To\Your\DOC2.docx" rispettivamente con i percorsi dei file DOC1 e DOC2.

    La macro apre DOC1, scorre ogni tabella in DOC1 e quindi scorre ogni cella di ogni tabella per eseguire l'operazione di copia (è possibile modificarla in base alle esigenze).

    Dopo aver copiato i dati da DOC1, apre DOC2 (il documento di destinazione) e incolla i dati copiati.

    Infine, chiude DOC1 senza salvare le modifiche (è possibile regolarlo in base alle esigenze).

    Per favore fatemi sapere come va e se avete bisogno di altra assistenza e sarò più che felice di aiutarvi ulteriormente.

    Grazie

    Migliori saluti Shakiru

    Questa risposta è stata tradotta automaticamente. Di conseguenza, potrebbero esserci errori grammaticali o espressioni strane.

    La risposta è stata utile?

    0 commenti Nessun commento