Discussione:
Aprire un file word da macro excel
(troppo vecchio per rispondere)
Graziano Ruggiero
2022-05-11 19:33:48 UTC
Permalink
Buonasera a tutti avrei un quesito a doppia domanda da porre:
1) Come fare aprire a Mia_Macro (NON-REGISTRATA!) un file word nuovo basato su un modello preesistente da me creato?
2) E se Mia_Macro fosse lanciata da Excel?

Grazie per il contributo
casanmaner
2022-05-17 05:39:42 UTC
Permalink
Post by Graziano Ruggiero
1) Come fare aprire a Mia_Macro (NON-REGISTRATA!) un file word nuovo basato su un modello preesistente da me creato?
2) E se Mia_Macro fosse lanciata da Excel?
Grazie per il contributo
Sub ApriNuovoDocDaModello()
Dim oAppWord As Object
Dim oDocWord As Object
Dim sPath As String
Dim sNomeFileModello As String
sPath = "C:\percorsomodello\"
sNomeFileModello = "miomodelloword.docx"

Set oAppWord = CreateObject("Word.Application")
With oAppWord
.Visible = True
Set oDocWord = .Documents.Add(Template:=sPath & sNomeFileModello, NewTemplate:=False, DocumentType:=0)
With oDocWord
'.... eseguire le istruzioni relative al documento word
End With
End With
End Sub


ovviamente dovrai indicare il percorso dove è salvato il documento che fa da modello e il nome del file che fa da modello nelle due variabili "sPath" e "sNomeFileModello"
RE.MOTO
2022-05-17 09:49:17 UTC
Permalink
Grazie Casanmaner esposizione, abbastanza chiara e indicazioni guida concrete. Lo testo non appena sono operativo. si si abbastanza chiaro! Un grazie fragoroso :)
Post by casanmaner
sPath = "C:\percorsomodello\"
qui per me diventa un pò più "per prove ed errori" ... avendo un MAC non mi è ancora chiara la notazione MAC in raffronto alla notazione DOS che so usare bene (credo).
Post by casanmaner
sNomeFileModello = "miomodelloword.docx"
qui invece chiedo, ma l'estensione dovrebbe essere ".dot" essendo un modello word?

Ancora grazie

RE.MOTO
casanmaner
2022-05-17 13:09:21 UTC
Permalink
Grazie Casanmaner esposizione, abbastanza chiara e indicazioni guida concrete. Lo testo non appena sono operativo. si si abbastanza chiaro! Un grazie fragoroso :)
Post by casanmaner
sPath = "C:\percorsomodello\"
qui per me diventa un pò più "per prove ed errori" ... avendo un MAC non mi è ancora chiara la notazione MAC in raffronto alla notazione DOS che so usare bene (credo).
Qui non saprei dirti in verità perché non ho avuto mac.
Post by casanmaner
sNomeFileModello = "miomodelloword.docx"
qui invece chiedo, ma l'estensione dovrebbe essere ".dot" essendo un modello word?
Non necessariamente. L'istruzione crea un nuovo documento in base a ciò che viene indicato come modello, che può essere anche un normale documento.
Ma non verrà aperto il documento ma una "copia" basata su quel documento.

ciao
RE.MOTO
2022-05-17 19:24:37 UTC
Permalink
Perfetto era proprio il mio obiettivo fare aprire ad una macro Excel un documento Word, nuovo, basato su un modello .dot. Quindi quell'assegnazione "x" nel codice è sufficiente a far generare il nuovo doc basato sul modello.
Grazie
Ciao
RE.MOTO
2022-05-17 21:12:34 UTC
Permalink
Allora Casanmaner ho provato la routine ma restituisce un codice errore su questa riga:

Set oDocWord = .Documents.Add(Template:=sPath & sNomeFileModello, NewTemplate:=False, DocumentType:=0)

Come potrei risolvere? ho provato a "guastare" un pò il codice senza esiti. Attualmente la routine apre solo il word e un doc basato sul classico normal.dotx.
Poi la routine restituisce un secondo errore se si è eseguita la macro con il Word già in esecuzione. L'errore restituito è sulla riga :
Set oAppWord = CreateObject("Word.Application")

Spero si possa risolvere
casanmaner
2022-05-18 07:19:00 UTC
Permalink
Post by casanmaner
Set oDocWord = .Documents.Add(Template:=sPath & sNomeFileModello, NewTemplate:=False, DocumentType:=0)
Come potrei risolvere? ho provato a "guastare" un pò il codice senza esiti. Attualmente la routine apre solo il word e un doc basato sul classico normal.dotx.
Set oAppWord = CreateObject("Word.Application")
Spero si possa risolvere
Probabilmente il "problema" dipende dal diverso sistema operativo.
Ho appena provato ad aprire un nuovo documento basato su un documento ".doc" e viene aperto normalmente.
E anche e Word è già aperto non viene dato alcun errore ma viene creata una nuova e ulteriore istanza all'applicazione.

Comunque per questa evenienza, gestendo l'eventuale presenza di un errore tramite le istruzioni on error resume next e If Err.Number <> 0 potresti provare con

Set oAppWord = GetObject(, "Word.Application")
RE.MOTO
2022-05-18 17:54:19 UTC
Permalink
OTTIMO Casanmaner. Avevo avuto sentore anche io che la "problematica" afferisse al S.O. leggendo i codici di errore restituiti. In particolare mi è accaduto su una macro che aveva il compito di eliminare tutti i Pulsanti tranne alcuni. Su macchine DOS funzionava senza problemi.
Ora proverò le tue indicazioni. Grazie.

RE.MOTO
RE.MOTO
2022-05-21 07:31:06 UTC
Permalink
Ciao Casanmaner, non so se può ancora interessati. Ho testato i suggerimenti che mi ha fornito. La routine svolge il suo percorso senza fermarsi riuscendo però solo ad aprire il Word senza aprire il file indicato ... Ritieni ci possano essere soluzioni alternative? Grazie.
casanmaner
2022-05-23 08:07:07 UTC
Permalink
Post by RE.MOTO
Ciao Casanmaner, non so se può ancora interessati. Ho testato i suggerimenti che mi ha fornito. La routine svolge il suo percorso senza fermarsi riuscendo però solo ad aprire il Word senza aprire il file indicato ... Ritieni ci possano essere soluzioni alternative? Grazie.
Non saprei che dirti.
Ma Mac come lavora sui "percorsi" del disco/rete?
Io credo che l'inghippo sia lì.

Continua a leggere su narkive:
Loading...