Risultati da 1 a 4 di 4

Discussione: Esportare foglio su documento Word



  1. #1
    L'avatar di iliomil
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    Siracusa
    Età
    53
    Messaggi
    60
    Versione Office
    2010 - 2013
    Likes ricevuti
    11
    Likes dati
    33

    Esportare foglio su documento Word

    Amici buonasera a tutti.
    Da diversi giorni sto cercando una soluzione, in VBA, per eliminare le righe vuote da una tabella incollata su documento Word.
    L'operazione di "paste" funziona correttamente e il documento contiene quanto richiesto, ma non c'è verso che riesca ad attivare
    l'oggetto Table in Word e portare a chiusura la procedura. Il codice sottostante apre tranquillamente un nuovo documento Word,
    ma andrebbe integrato, nel progetto, con la soluzione che vi si trova all'interno (solo a titolo di riferimento se ritenete di utilizzare un altra procedura)
    e che dovrebbe eliminare tutte le righe vuote della tabella.
    Specifico che:
    • tutte le righe, a prescindere da colonne o altro, se vuote vanno eliminate;
    • le righe vuote reali, sul worksheet, fanno riferimento ad altro tramite formula (altri fogli all'interno dello stesso file, o ad altri file).

    In buona sostanza, anche se la riga dovesse essere vuota, e contiene delle formule, va eliminata comunque.
    E' ovvio che sbaglio io, mi aiutereste a "percorrere la retta via"?
    Allego il file di esempio.

    Saluti,
    Ilio
    Codice: 
    Sub Excel_to_Word()
    
    Dim wsName As String
    Dim ws As Worksheet
    Dim WordApp As Object
    Dim WordDoc As Object
    
    '==============================
    ' Procedura perfettamente funzionante per aprire un nuovo documento Word
    ' e incollarvi il contenuto degli appunti (il worksheet attivo).
    
    wsName = ActiveSheet.Name
    Set ws = Worksheets(wsName)
    
    ' Prelevando il range dell'area di stampa del foglio si ha:
    With ws
        If .PageSetup.PrintArea = "" Then
            MsgBox "L'area di stampa non è stata definita." & vbNewLine & _
            "Predisponi l'area di stampa e ripeti il processo."
        Else
            .Range(.PageSetup.PrintArea).Copy
        End If
    End With
    
    Set WordApp = CreateObject("Word.Application")
    
    With WordApp
        .Documents.Add
        .Selection.Paste
        .Visible = True
        .Activate
        
    ' le proprietà sottostanti agiscono solo sul documento Word attivo e NON sulla tabella
    ''    .Selection.Font.Name = "Times New Roman"
    ''    .Selection.Font.Size = 9
    
    ' Vorrei che sia prodotto un nuovo documento Word,
    ' incollare il foglio attivo sul documento stesso e, contestualmente:
    ' 1 - eliminare tutte le righe vuote dalla tabella appena incollata;
    ' 2 - Applicare il font "Times New Roman"
    ' 3 - Size 11
    ' 4 - Autofit delle colonne
    ' 5 - Tabella Centrata nel foglio
    
    Application.ScreenUpdating = True
    End With
    Set WordApp = Nothing
    End Sub
    File Allegati File Allegati

  2. #2
    L'avatar di patel
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    Livorno
    Età
    72
    Messaggi
    1109
    Versione Office
    2010
    Likes ricevuti
    143
    Likes dati
    1

    Re: Esportare foglio su documento Word

    perché non fai tutte le modifiche sul foglio excel e lo esporti su word senza più toccarlo ?

  3. #3

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2808
    Versione Office
    Excel 2013
    Likes ricevuti
    1020
    Likes dati
    979

    Re: Esportare foglio su documento Word

    Da premettere che non sono un esperto di Word, ho adattato qualche ciclo e oggetto di Excel in Word ed ecco cosa è uscito:
    Codice: 
    Option Explicit
    Sub Excel_to_Word()
    'Dim wsName As String
    Dim ws As Worksheet
    Dim WordApp As Object
    Dim WordDoc As Object
    Dim oTable
    Dim oRow
    Dim oCell
    Dim TextInRow As Boolean
    
    
    Set ws = ActiveSheet
    With ws
        If .PageSetup.PrintArea = "" Then
            MsgBox "L'area di stampa non è stata definita." & vbNewLine & _
            "Predisponi l'area di stampa e ripeti il processo."
        Else
            .Range(.PageSetup.PrintArea).Copy
        End If
    End With
    
    
    Set WordApp = CreateObject("Word.Application")
    
    
    With WordApp
        .documents.Add
        .Selection.Paste
        .Visible = True
        .Activate
        
        Set oTable = .documents(1).Tables(1)
    
    
        Application.ScreenUpdating = False
    
    
        For Each oRow In oTable.Rows
            TextInRow = False
            For Each oCell In oRow.Cells
                If Len(oCell.Range.Text) > 3 Then
                    TextInRow = True
                    Exit For
                End If
            Next oCell
    
    
            If Not TextInRow Then
                oRow.Delete
            End If
    
    
        Next oRow
    
    
        oTable.Range.Font.Size = 14
        oTable.Range.Font.Name = "Times New Roman"
        oTable.Range.Columns.AutoFit
    
    
        Application.ScreenUpdating = True
    End With
    
    
    Set ws = Nothing
    Set WordApp = Nothing
    Set oTable = Nothing
    End Sub

  4. I seguenti utenti hanno dato un "Like"


  5. #4
    L'avatar di iliomil
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    Siracusa
    Età
    53
    Messaggi
    60
    Versione Office
    2010 - 2013
    Likes ricevuti
    11
    Likes dati
    33

    Re: Esportare foglio su documento Word

    Citazione Originariamente Scritto da Rubik72 Visualizza Messaggio
    Da premettere che non sono un esperto di Word, ho adattato qualche ciclo e oggetto di Excel in Word ed ecco cosa è uscito:
    Codice: 
    ... Set oTable = .documents(1).Tables(1) ....
    Enzo, Patel buongiorno a voi e a chi ci segue.
    Intanto grazie per la vostra partecipazione al mio quesito.
    Enzo! Che dire! Affermi che non sei un esperto di Word (non sembrerebbe ) TAC e giustamente se lo scecco non attiva la tabella !
    (l'asino che sarei io, per i non Calabresi o Siciliani....)
    Non avevo dubbi sul vostro aiuto. Grazie davvero. La soluzione proposta da Enzo lavora esattamente come ricercavo. Pochi fronzoli per una lettura del documento più scorrevole.
    Patel, grazie anche del tuo intervento ma, dovendo lasciare la tabella integra nelle formule, non posso eliminare le righe in modo da "presentare" un report al Generale che sia più gradevole agli occhi.
    Le righe in Word, come spiegavo, in realtà sul foglio Excel contengono formule di riferimento ad altro. La via più breve da percorrere mi è sembrata l'utilizzo del documento Word.
    Grazie a tutti.
    Saluti,
    Ilio

Discussioni Simili

  1. [Risolto] Pulsante Carica Documento e Pulsante Apri Documento Caricato
    Di xeienl nel forum Domande su Microsoft Access
    Risposte: 20
    Ultimo Messaggio: 08/02/17, 07:51
  2. [Risolto] aprire documento Word da UserForm
    Di robertopiro nel forum Domande su Excel VBA e MACRO
    Risposte: 9
    Ultimo Messaggio: 27/11/16, 21:05
  3. estrarre dati da un documento word
    Di deltagamma nel forum Domande su Excel VBA e MACRO
    Risposte: 8
    Ultimo Messaggio: 19/07/16, 11:01
  4. Esportare dati da excel a word
    Di gigit23 nel forum Domande su Excel in generale
    Risposte: 7
    Ultimo Messaggio: 26/05/16, 16:39
  5. Esportare singolo foglio da xlsm a xlsx.
    Di James nel forum Domande su Excel VBA e MACRO
    Risposte: 14
    Ultimo Messaggio: 04/03/16, 09:27

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
  •