Newsgroup: it.comp.lang.visual-basic
Titolo: Domanda su VBA

Forse non e' proprio la sede adatta ma cerco
aiuto su come aggiornare dei dati in Word da
Excel tramite VBA senza aprire il fiel Word.
Ringrazio anticipatamente segnalazioni e link.
M 

 Excel tramite VBA senza aprire il fiel Word.
Non vedo come tu possa farlo "senza aprire il file"... devi aggiornare
dati, ovvero scrivere qualche byte su disco, per cui, in un modo o
nell'altro, il file verrà per forza aperto prima.
Specifica meglio di cosa parli... intendevi forse "senza che
l'interfaccia di Word venga visualizzata"?

 Excel tramite VBA senza aprire il fiel Word.
Non vedo come tu possa farlo "senza aprire il file"... devi aggiornare
dati, ovvero scrivere qualche byte su disco, per cui, in un modo o
nell'altro, il file verr� per forza aperto prima.
Specifica meglio di cosa parli... intendevi forse "senza che
l'interfaccia di Word venga visualizzata"?
.
.
Esatto ! Vorrei che Word non sia attivo e che si chiuda
con le modifiche fatte con un nuovo nome file desiderato.
Grazie.
Massimo 


Prova:
Public Sub m()
On Error GoTo RigaErrore
    Dim objWord As Object
    Dim objDoc As Object
    Dim strPath As String
    strPath = "C:\mioFile.doc"
    If Dir(strPath) <> "" Then
        Set objWord = CreateObject("Word.Application")
        Set objDoc = objWord.Documents.Open(strPath)
    Else
        MsgBox "File non trovato"
        Exit Sub
    End If
    objWord.Visible = False
    'tuoCodice
    'objDoc.Saved = True
RigaChiusura:
    objWord.Quit
    Set objDoc = Nothing
    Set objWord = Nothing
    Exit Sub
RigaErrore:
    MsgBox Err.Number & vbNewLine & Err.Description
    Resume RigaChiusura
End Sub
-- 
---------------------------
Mauro Gamberini
http://www.riolab.org/
http://blog.maurogsc.eu/
http://social.microsoft.com/Forums/it-IT/excelit/threads
 

 Public Sub m()
.
.
Grazie per il codice ma vorrei anche sapere come
poter modificare il file Word ovvero quale sintassi
e' preferibile per scrivere dei dati in Word ?
Devo creare dei Link oppure dei Field in Word ?
Massimo 


Utilizzare il modello a oggetti di Word.
Vedi un po' qui:
http://word.mvps.org/FAQs/MacrosVBA/index.htm
http://www.google.it/search?hl=it&source=hp&fkt=1313&fsdt=11172&q=vba+export+excel+to+word&meta=&aq=f&oq=&aqi=


 Massimo
In sostanza, scegli tu quello che ti torna meglio.... se devi fare una
sorta di stampa unione in maniera programmatica, puoi ragionare per
bookmarks, oppure per campi modulo, o anche oggetti DOCVARIABLE, o
semplicemente andare a cercare delle normali stringhe formattate in
maniera particolare.
Insomma, dipende... se i modelli verranno generati da te, allora le
prime scelte potrebbero essere migliori (bookmark in particolare non è
l'ideale, le altre due meglio); se invece vuoi lasciare libertà
all'utente di configurarseli a piacere, e non è troppo evoluto, allora
forse l'ultima è più artigianale ma più pratica per loro.
In ogni caso, puoi sempre simulare l'operazione che vorresti fare in
Word con il registratore di macro, andarne a vedere il codice
risultante e adattarlo poi nel tuo codice VBA in Excel

 -- 
.
.
Grazie per i Link, se non c'e' nulla in italiano li leggero'
con calma ma avrei preferito qualcosa in italiano.. ;)
Massimo 

 con calma ma avrei preferito qualcosa in italiano.. ;)
.
.
.Scusate ho trovato questa soluzione ma vorrei un vostro
commento / parere o miglioramento:
http://forum.masterdrive.it/ms-office-access-vba-23/importare-dati-excel-in-diversi-docs-word-32972/
Massimo 

 commento / parere o miglioramento:
.
.
Ultima domanda per un problema che non sono
ancora riuscito a risolvere.
Da VBA di Excel apro un file Word come detto in
precedenza, effettuo delle modifiche utilizzando
i bookmark e poi lo chiudo salvando in file.
Bene fin qui... ;)
Ma se volessi salvarlo con nuovo nome ? Ho errore
con SaveAs non funziona.. Help me pls.. ;)
Massimo 

 
Questo codice lanciato da Excel:
Public Sub m()
On Error GoTo RigaErrore
    Dim objWord As Object
    Dim objDoc As Object
    Dim strPath As String
 
    strPath = "C:\pluto.doc"
 
    If Dir(strPath) <> "" Then
        Set objWord = CreateObject("Word.Application")
        Set objDoc = objWord.Documents.Open(strPath)
    Else
        MsgBox "File non trovato"
        Exit Sub
    End If
 
    objWord.Visible = True
    'tuo codice 
    objDoc.SaveAs ("C:\pippo.doc")
RigaChiusura:
    objWord.Quit
    Set objDoc = Nothing
    Set objWord = Nothing
    Exit Sub
RigaErrore:
    MsgBox Err.Number & vbNewLine & Err.Description
    Resume RigaChiusura
End Sub
Apre il file pluto.doc e lo salva come pippo.doc
Resta da vedere cosa vuoi farne di pluto.doc.
-- 
---------------------------
Mauro Gamberini
http://www.riolab.org/
http://blog.maurogsc.eu/
http://social.microsoft.com/Forums/it-IT/officeit/threads
 

 Resta da vedere cosa vuoi farne di pluto.doc.
.
.
Grazie dell'esempio.. ;)
pluto.doc resta cosi com'e' senza modifiche quindi
vorrei prima copiarlo e poi lavorare su quello copiato
in modo da averne sempre una copia disponibile in
quanto si tratta di un modello di report.
Grazie ancora.
Massimo 

 Questo codice lanciato da Excel:
.
.
Il mio errore era che non gestivo il documento come Obj
e quindi il SaveAs non funzionava... Cosi e' perfetto !!
Grazie, sempre molto gentile... ;)
Massimo 


Bene.
Grazie a te per il riscontro.
-- 
---------------------------
Mauro Gamberini
http://www.riolab.org/
http://blog.maurogsc.eu/
http://social.microsoft.com/Forums/it-IT/excelit/threads