Risultati da 1 a 15 di 15

Discussione: Gestione Bookmarks di Word da un Dataset di Excel.



  1. #1
    L'avatar di GiuseppeMN
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Mantova
    Messaggi
    864
    Versione Office
    2000 - 2013
    Likes ricevuti
    285
    Likes dati
    160

    Gestione Bookmarks di Word da un Dataset di Excel.

    Buona giornata a Tutti.
    Premetto che questa domanda è già stata presentata, qualche giorno fà, in:

    http://forum.ialweb.it/forum_posts.a...taset-di-excel

    La risposta che ho ottenuto riguarda Excel 2003, ma non riesco a concretizzarla per Excel 2007 e Excel 2010-2013

    ===================================================================================

    Mi trovo a dover gestire dei File Word in base ai Valori inseriti in un Dataset in Excel.
    Cerco di semplificare, in Excel ho due Campi:
    - Nominativo (Cognome Nome) in Colonna "C"
    - Indirizzo (Via/Piazza, Numero civico) in Colonna "D"
    Nei File Word ho inserito due Segnalibri:
    - Nominativo
    - Indirizzo

    Utilizzando questo Codice:
    Codice: 
    Option Explicit
    
    Sub Aggiorna_scheda_Word()
    On Error GoTo 10
    Application.ScreenUpdating = False
    Dim FileDoc As String
    Dim wrdApp, wrdDoc
    Const Path As String = "C:\Word\Schede\"
    Const Ext As String = ".docx"
        
        FileDoc = Path & Cells(ActiveCell.Row, 3) & Ext   '   Non ci sono omoninimi
            Set wrdApp = CreateObject("Word.Application")
                wrdApp.Visible = True
            Set wrdDoc = wrdApp.Documents.Open(FileDoc)
                With wrdDoc
            .Bookmarks("Nominativo").Range.Text = Cells(ActiveCell.Row, 3)
            .Bookmarks("Indirizzo").Range.Text = Cells(ActiveCell.Row, 4)
                End With
            wrdApp.ActiveDocument.SaveAs Filename:=FileDoc
                wrdApp.Quit
    Application.ScreenUpdating = True
        Cells(ActiveCell.Row + 1, 3).Select
    10:
    Application.ScreenUpdating = True
    End Sub
    Il Codice funziona, ma dovendo modificare l'Indirizzo, e, volendo aggiornare il File Word, prima di registrare i nuovi Valori, avrei la necessita di cancellare i Valori precedenti.

    Sono consapevole che non è facile interagire senza un File d'esempio, ma, la Procedura che ho costruito è piuttosto articolata; necessita di una Directory dedicata ai File Word.
    I File Word, inizialmente, vengono definiti partendo da un File Word vuoto, nel quale ho semplicemente definito i "Segnalibri" necessari alla gestione del Dataset Excel. In questo modo il file viene salvato correttamente.

    In un secondo momento, nel File Word, è possibile aggiungere dei dati non presenti nel Dataset Excel, immaginate una sorta di anamnesi che viene continuamente implementata.

    A questo punto, può accadere che il "Nominativo" cambi "Indirizzo"; questa modifica, attualmente viene eseguita aprendo il File Word manualmente, modificando l'Indirizzo precedente e salvando il File modificato.

    Utilizzando la procedura, "Nominativo" e "Indirizzo" vengono aggiunti mentre vorrei venissero sovrascritti.

    In Rete ho visto che l'argomento è già stato trattato e la cosa risulta fattibile, ma, non sono riuscito a trovare la procedura idonea per cancellare il Valore precedente prima di registrare il nuovo Valore.

    Mi sono incuriosito da quanto riportato in:
    http://groups.google.com/forum/#!top...ee/kSVSuoGb6aU

    @ archimede
    afferma di aver risolto proprio questo tipo di problema.
    Nella mia immensa ignoranza, non sono riuscito a trovare le "librerie da attivare in strumenti riferimenti" che hanno consentito di risolvere.

    Il Codice è stato sviluppato con Excel 2013, ma, sarebbe opportuno fosse fruibile anche con Excel 2007 e Excel 2010-2013

    Ringrazio anticipatamente per il Tempo che potrete dedicarmi.



    Buona serata.

    Giuseppe
    Windows XP Excel 2000 - Windows 10 Excel 2013

  2. #2
    L'avatar di A.Maurizio
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Torino
    Età
    56
    Messaggi
    383
    Versione Office
    2013
    Likes ricevuti
    44
    Likes dati
    0
    Ciao Giuseppe , Non sò sè ti sei già aggiustato o meno per questo tuo progetto , ma questa volta provo ad essere io ad Aiutare te Prova a Scaricare questo mio progetto e dimmi sè può fare al caso tuo .
    E vero e un pochino datato , ma con un pochino di modifiche si pùò renderlo tuo e con le tue esigenze.
    Il Link è : https://app.box.com/s/ssey3obbf8w2eiwwx8l27sruq5xi81mm
    Ciao e buone feste

  3. #3
    L'avatar di GiuseppeMN
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Mantova
    Messaggi
    864
    Versione Office
    2000 - 2013
    Likes ricevuti
    285
    Likes dati
    160
    Maurizio, grazie della Tua Attenzione, ma io parto da un File Excel; da questo File ricavo i Campi da inserire nel File Word.
    Il Codice che ho allegato, ha il problema che, aprendo il File Word in automatico, antepone "Indirizzo" all'"Indirizzo" già presente.
    Voglio dire se l'indirizzo originale era:
    - Via Roma, 2
    e il Nuovo indirizzo è:
    - Piazza Venezia, 34

    Il risultato, purtroppo è:
    - Piazza Venezia, 34Via Roma, 2
    Mentre io vorrei che l'indirizzo fosse:
    - Piazza Venezia, 34
    Analogamente per il "Nome".

    Ripeto non è un grosso problema, apro il File Word, modifico manualmente l'Indirizzo e salvo il File.



    Grazie e buone feste anche a Te.

    Giuseppe
    Windows XP Excel 2000 - Windows 10 Excel 2013

  4. #4
    L'avatar di A.Maurizio
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Torino
    Età
    56
    Messaggi
    383
    Versione Office
    2013
    Likes ricevuti
    44
    Likes dati
    0
    Si ceeto Giuseppe , questo l'avevo untuito anche io.
    Ecco il perchè ti avevo anche scritto che aveesti divuto moduficare .
    Per il resto io fino all'itto di gennaio sono preso con il mio lavoro .
    Poi chiudo come tutti gli anni un paio di settimane, per un merirato riposo.
    Però se vuoi inviami il tuo lavoro e vedro io di aggiustarti il tutto in modo da poterlo adattare alle tue esigenze.
    Anche se a dire il vero: non ho mai capito come trasferire dati da una applicazione aperta ad un altra chiusa; ma questo sarebbe ancora il meno .
    Poi vedi tu Saluti da Maurizio

  5. #5
    L'avatar di GiuseppeMN
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Mantova
    Messaggi
    864
    Versione Office
    2000 - 2013
    Likes ricevuti
    285
    Likes dati
    160
    Buona giornata, Maurizio.

    Non so come ringraziarti per la Tua disponibilità.

    Facciamo in questo modo, con il sottofondo dei Tuoi Brani, cercherò una soluzione sul Web. Nel caso in cui, peraltro molto probabile, non approdi a nulla, ci risentiamo al Tuo ritorno l'otto gennaio.

    Per il momento ti auguro buone Feste.

    A presto.

    Giuseppe
    Windows XP Excel 2000 - Windows 10 Excel 2013

  6. #6
    L'avatar di Textomb
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Catania
    Età
    47
    Messaggi
    171
    Versione Office
    Excel 2016
    Likes ricevuti
    93
    Likes dati
    11
    Giuseppe ho trattato i Bookmarks qualche volta. Dovrei andare a ripescare i miei appunti. Ricordo che ci ho perso molto tempo...!
    Ti dico però che, a memoria, se ho capito bene il problema lo dovresti affrontare in un altro modo.
    Questi vanno trattati come dei range di Word che vengono rimpiazzati di volta in volta dai nuovi valori.
    Se hai ancora interesse a risolvere la questione allega il file Excel che contiene il codice ed il file word su cui vuoi operare le sostituzioni...
    Proverò a dargli un'occhiata nei prossimi giorni...

  7. #7
    L'avatar di GiuseppeMN
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Mantova
    Messaggi
    864
    Versione Office
    2000 - 2013
    Likes ricevuti
    285
    Likes dati
    160
    Gentilissimo, Textomb;
    vedo di strutturare il File Excel senza Dati sensibili e inviarlo in allegato.


    Grazie della Tua Attenzione.

    Buona giornata.

    Giuseppe
    Windows XP Excel 2000 - Windows 10 Excel 2013

  8. #8
    L'avatar di GiuseppeMN
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Mantova
    Messaggi
    864
    Versione Office
    2000 - 2013
    Likes ricevuti
    285
    Likes dati
    160
    Buona giornata, Textomb.

    Il File Excel contiene tre Codici VBA
    - Sub Copia_su_Word() ; genera un File Word in funzione della posizione del cursore
    - Sub Apri_Word() ; apre il File Word in funzione della posizione del cursore
    - Sub Modifica_File_Word() ; questo Codice dovrebbe sovrascrivere l'indirizzo.


    Il File Word:
    - Base.docx
    va copiato nella Directory:
    - C:\Prove\Word\

    Quello che vorrei modificare è il Codice VBA "Modifica_File_Word"; attualmente antepone il "Nuovo indirizzo al precedente", vorrei avere solo il "Nuovo indirizzo".


    A disposizione.

    Grazie dell'Attenzione.

    Giuseppe
    File Allegati File Allegati
    Windows XP Excel 2000 - Windows 10 Excel 2013

  9. #9
    L'avatar di GiuseppeMN
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Mantova
    Messaggi
    864
    Versione Office
    2000 - 2013
    Likes ricevuti
    285
    Likes dati
    160
    Chiedo scusa, mi sono accorto di aver caricato il File Excel in una versione precedente, manca il Codice "Sub Modifica_File_Word()"

    Non trovando il modo di modificare l'allegato nella precedente risposta, provo ad allegare il File corretto.

    Giuseppe
    File Allegati File Allegati
    Windows XP Excel 2000 - Windows 10 Excel 2013

  10. #10
    L'avatar di Textomb
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Catania
    Età
    47
    Messaggi
    171
    Versione Office
    Excel 2016
    Likes ricevuti
    93
    Likes dati
    11
    Giuseppe ho visto i tuoi file.
    Ho capito la logica e l'obiettivo che vorresti raggiungere.
    Mi dai il permesso di stravolgere un pò il funzionamento di tutto il meccanismo e renderlo, a mio avviso, un pò più semplice?
    Ho avuto problemi a utilizzare quello che hai scritto e mi verrà più semplice rifare tutto da zero, fermo restando, ovviamente, gli obiettivi finali.

  11. #11
    L'avatar di GiuseppeMN
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Mantova
    Messaggi
    864
    Versione Office
    2000 - 2013
    Likes ricevuti
    285
    Likes dati
    160
    Buona giornata, Textomb;
    la Procedura che ho inviato deve ancora essere resa operativa, pertanto è possibile apportare tutte le modifiche del caso.

    Solo per Tua informazione, i Record da trattare non superano il centinaio.


    Non so proprio come ringraziarti del Tempo che mi stai dedicando.


    Giuseppe
    Windows XP Excel 2000 - Windows 10 Excel 2013

  12. #12
    L'avatar di Textomb
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Catania
    Età
    47
    Messaggi
    171
    Versione Office
    Excel 2016
    Likes ricevuti
    93
    Likes dati
    11
    Ti allego i due file. Il file base.docx (che funge da modello) ed il file Excel.
    La routine è unica ed è agganciata al pulsante rimasto operativo nel file excel. Il principio di funzionamento è semplice.
    Se il file .docx non esiste lo crea partendo dal file base. Se il file .docx esiste, lo modifica prelevando i valori dal file Excel.
    Importante:
    per fare delle prove, dovrai archiviare il file base.docx nella directory c:\prove\word

    Allego anche il codice scritto nel file Excel.

    Codice: 
    Sub Gestione_Word()
    Dim Pth As String
    Dim WrdBase As String
    Dim wrdApp As Object
    Dim wrdDoc As Object
    Dim BMRange As Object
    Dim wrdFile As String
    Dim RngEx As Range
    Dim cell As Range
    Dim Bkm As String
    Dim Lr As Long
    Lr = Range("a" & Rows.Count).End(xlUp).Row
    Pth = "c:\prove\Word\" '<--- inserire il percorso dove archiviare i file .docx
    WrdBase = "Base.docx" '<--- file Base che farà da modello per gli altri
    ' Verifico le condizioni iniziali di funzionamento della Sub()
    If Intersect(ActiveCell, Range("a6:L" & Lr)) Is Nothing Then Exit Sub
        
        ' Verifico l'esistenza del file Base
        If Dir(Pth & WrdBase) = vbNullString Then
            MsgBox " Il file " & WrdBase & " non esiste. Impossibile proseguire.", vbCritical
            Exit Sub
        End If
        
    ' Procedo con la creazione o modifica del file .docx
    wrdFile = Cells(ActiveCell.Row, "E") & ".docx"
    Set RngEx = Union(Range("C5:E5"), Range("I5:L5")) '<--- le colonne di Excel da esportare su Word
        On Error Resume Next
        'cerca istanza di Word già aperta
            Set wrdApp = GetObject(, "Word.Application")
            If Err.Number <> 0 Then
            'se c'è stato un errore è perchè Word non era aperto:
            'aprilo adesso
            Set wrdApp = CreateObject("Word.Application")
            End If
        On Error GoTo 0
        ' Se il file wrdFile.docx non esiste allora apre il modello Base
        If Dir(Pth & wrdFile) <> vbNullString Then
            Set wrdDoc = wrdApp.Documents.Open(Pth & wrdFile)
        Else
            Set wrdDoc = wrdApp.Documents.Open(Pth & WrdBase)
        End If
            ' Iserisco tutti i campi della tabella Excel sul file Word
            For Each cell In RngEx
                Bkm = cell.Value
                Set BMRange = wrdDoc.Bookmarks(Bkm).Range
                    With BMRange
                        .Text = Cells(ActiveCell.Row, cell.Column).Value
                    End With
                wrdDoc.Bookmarks.Add cell.Value, BMRange
            Next
            ' Archivio il file .docx
            wrdDoc.SaveAs Pth & wrdFile
        wrdApp.Quit
        MsgBox "Operazione completata", vbInformation
    Set wrdDoc = Nothing
    Set wrdApp = Nothing
    Set BMRange = Nothing
    Set RngEx = Nothing
    End Sub
    File Allegati File Allegati

  13. I seguenti utenti hanno dato un "Like"


  14. #13
    L'avatar di GiuseppeMN
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Mantova
    Messaggi
    864
    Versione Office
    2000 - 2013
    Likes ricevuti
    285
    Likes dati
    160

    RISOLTO: Gestione Bookmarks di Word da un Dataset di Excel.

    Buona sera, Textomb;
    mi sembra un'ottima Procedura.

    Dovrò vedere di adattarla alle necessità del Gruppo (una Sezione di Protezione civile presente nel mio Comune), ma, non credo ci siano problemi.

    Sicuramente aggiungerò un Pulsante che consenta la visualizzazione del File Word relativo al Codice fiscale selezionato.

    Dovrò necessariamente mettere una Password a tutti i File Word.
    Attualmente tutti i File contengono Dati sensibili quali:
    - Recapiti telefonici
    - Gruppo sanguigno
    - Codici Personali definiti dalla Regione
    e tanti altri.
    Ma questo non mi sembra sia un problema; già nel File originale, simile a quello che ho allegato nella Discussione #8, era necessario digitare una password all'apertura del File Word.


    Ancora grazie del Tuo Contributo.

    A disposizione.

    Giuseppe
    Windows XP Excel 2000 - Windows 10 Excel 2013

  15. #14
    L'avatar di A.Maurizio
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Torino
    Età
    56
    Messaggi
    383
    Versione Office
    2013
    Likes ricevuti
    44
    Likes dati
    0
    Ciao Giuseppe , Come Stai !
    Allora : Volevo chiederti Tre cose inerente al tuo programma Trasferimento Dati da Word a Excel.
    E sono queste :

    1 ) Nel tuo progetto vedo che inserisci questo : "Pth = "c:\prove\Word\" e la cosa potrebbe anche starmi bene cosi .
    Però scusami la mia Ignoranza in materia , e se Io velessi tenere tutto nella Cartella di lavoro come dovrei Comportarmi .
    Mi spiego meglio :
    Se Io uso il tuo Concetto di lavoro , Tale lavoro lo dovrò sempre tenere in quella Determinata Posizione ; Giusto !
    Però sè io Cambiassi ho lo trasferissi in un altro Pc , tale lavoro non sarebbe più visibile in quanto cambia la Deirettory; O No !

    2 ) Ho provato sia il tuo Programma che quello che ti aveva Gentilmente offerto ( TextTomb ) pero mi capita Questo :
    Con il tuo programma ; Se premo il Tasto apri Word sia l'uno che l'altro , la cosa non Cambia .
    Mi si apre si ! il foglio di Word ma Senza Visualizzare un Foglio.

    mentre quello di (TextTomb ) mi dice che non trova nessun File BaseDocx per qui impossibile proseguire.

    Perchè mi succede Questo !

    3 ) A titolo informativo : Se io Volessi usare una volta trovate tutte le modifiche del caso , Fatte e Funzionanti .
    Sarebbe Possibile usare il tuo programma come un vero e proprio Database.
    Mi spiego meglio : Un database che si Rispetti , che cosa e poi in sostanza ; Una serie di report con annesso i suoi record o indirizzi che siano .
    Che vanno ad aggiungersi via via che si inseriscono nuovi Indirizzi o Nominativi.
    il tuo programma e Stato Creto proprio per questa funzione o no !

    Tutto qui : Spero di essermi spiegato abbastanza bene , in caso contrario fammi sapere Grazie

  16. #15
    L'avatar di GiuseppeMN
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Mantova
    Messaggi
    864
    Versione Office
    2000 - 2013
    Likes ricevuti
    285
    Likes dati
    160
    Buona giornata, Maurizio;

    @ A.Maurizio, chiede:
    ... se Io velessi tenere tutto nella Cartella di lavoro come dovrei Comportarmi ...


    Al posto di:
    - Pth = "c:\prove\Word\"
    dovresti semplicemente indicare la Directory nella quale trovare il File Base.docx e nella quale andranno salvati tutti i File relativi ai Nominativi presenti nel Dataset di Excel.

    Se mi consenti un suggerimento, consiglierei di proseguire questa Discussione:
    http://www.forumexcel.it/forum/7-dom...a-excel-a-word
    In questo modo tutti potrebbero seguirne gli sviluppi; poi, ovviamente, vedi Tu.

    Ora sto uscendo, appena rientro vedo se riesco ad essere più concreto nelle risposte alle Tue Domande.


    A disposizione.

    Buon Lavoro; a presto.

    Giuseppe
    Windows XP Excel 2000 - Windows 10 Excel 2013

Discussioni Simili

  1. Grafici da excel a word
    Di Master nel forum Domande sul Microsoft Word
    Risposte: 2
    Ultimo Messaggio: 25/02/17, 11:05
  2. dati excel su word
    Di MatteoG nel forum Domande su Excel VBA e MACRO
    Risposte: 4
    Ultimo Messaggio: 12/11/16, 08:40
  3. Aprire da Excel VBA un file Word
    Di alfrimpa nel forum Domande su Excel VBA e MACRO
    Risposte: 16
    Ultimo Messaggio: 23/02/16, 17:18
  4. [Risolto] Da Word a Excel
    Di Master nel forum Domande sul Microsoft Word
    Risposte: 10
    Ultimo Messaggio: 18/02/16, 16:45
  5. Giustificare testo in excel come in word
    Di Baloon_50 nel forum Domande su Excel in generale
    Risposte: 6
    Ultimo Messaggio: 14/11/15, 18:17

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •