mantenere formattazione



  • mantenere formattazione
    di lalabay (utente non iscritto) data: 25/09/2015 17:13:20

    Salve, nel mio foglio di calcolo, uso una macro che mi permette di incollare automaticamente il contenuto di documenti word, in un determinato documento word.
    Questa è la macro:

    Private Sub CommandButton1_Click()
    Dim appWord As Object, MyData As DataObject, MyFile
    strPath = perc_file & ActiveCell & ".doc"
    Apri_AppWord
    wApp.Visible = True
    If x Then Exit Sub
    With wApp
    .Selection.WholeStory
    .Selection.Copy
    Set appWord = GetObject(, "Word.Application")
    appWord.Documents(1).Activate
    Set MyFile = New DataObject
    MyFile.GetFromClipboard
    appWord.Selection.TypeText Text:=MyFile.GetText
    appWord.Selection.TypeText Text:=vbCrLf
    End With
    wApp.Quit
    Set wApp = Nothing
    Application.ScreenUpdating = True
    End Sub

    Funziona tutto perfettamente tranne che non mantiene la formattazione di origine ma applica la formattazione di destinazione.
    Qualche idea per risolvere il mio problema?



  • di cromagno data: 25/09/2015 17:26:29

    Ciao,
    non so quasi nulla di word (se non le classiche cose),
    ma questa riga:
    appWord.Selection.TypeText Text:=MyFile.GetText

    credo significhi che stai "prendendo" solo il testo e non la formattazione...

    Inoltre, come detto prima, non sono pratico di word e non ho modo di poter verificare il codice al momento, ma quest'altra riga:
    wApp.Quit

    non è che mi piaccia molto....



  • di lalabay (utente non iscritto) data: 25/09/2015 17:59:28

    wApp.Quit dovrebbe servire a chiudere il file d'origine, dopo aver copiato il contenuto e prima di incollarlo nel file di destinazione.
    Non si potrebbe modificare questa riga:
    appWord.Selection.TypeText Text:=MyFile.GetText
    In modo che "copi" la formattazione, oltre al testo?



  • di cromagno data: 25/09/2015 18:44:49

    Ti ho detto della riga
    .Quit

    in quanto, se messa in un codice per excel, chiuderebbe ogni applicazione aperta (file excel) e citando "Vecchio Frac"....
    "Non esiste VBA per exel ma VBA"
    credo farebbe lo stesso anche nel tuo codice (ma probabilmente sbaglio).
    Per la riga incriminata, sempre se sia quella, spero risponda qualcuno più competente di me.
    Se parlassimo di excel, registrerei una macro in modo da vedere esattamente come copiare anche la formattazione e dopo la adatterei.... anzi, in excel, se non ricordo male c'è il:
    .xlpasteall

    ripeto, non ho modo di provare nulla, sto solo provando a darti qualche spunto...



  • di lalabay (utente non iscritto) data: 25/09/2015 19:01:09

    Ti ringrazio