Risultati da 1 a 11 di 11

Discussione: Da Word a Excel



  1. #1
    L'avatar di Master
    Clicca e Apri
    Data Registrazione
    Jan 2016
    Località
    Macerata
    Età
    35
    Messaggi
    74
    Versione Office
    2010
    Likes ricevuti
    0
    Likes dati
    1

    Da Word a Excel

    Buongiorno,

    vi chiedo cortesemente aiuto per un problea di trasformazione da word a Excel.
    Ho un file come quello in allegato in cui sono raccolte informazioni relative ad articoli scientifici.
    Dovrei portare tutte queste informazioni in excel oppure costruire in automatico una tabella di Word che poi posso copiare manualmente in excel.
    Precisamente dovrei avere un file in cui ci sono le seguenti colonne:

    A = ID
    B = Autore
    C= Parole chiave
    D = abstract

    E' possibile in qualche modo ?
    File Allegati File Allegati

  2. #2
    L'avatar di zio_tom
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Veneto
    Messaggi
    526
    Versione Office
    2010 - Win10
    Likes ricevuti
    64
    Likes dati
    17
    sicuramente con VBA, e la logica sembra pure semplice
    una scansione del testo con idividuazione delle parole chiave
    poi le due strade, o creare tabella in Word o scrivere direttamente in Excel (sicuramente la migliore)

    io non ho mai usato VBA in Word
    e visti gli scarsi interventi inerenti a Word....
    d'altra parte è un forum su Excel

    l'argomento è interessante, come pure la possibilità di leggere un PDF, per importare dati

    Una strada decisamente più percorribile è di salvare il file come TXT
    poi la cosa diventa quasi banale....
    Facendo scansione del file TXT (Open FileTesto For Input As #1: If Not EOF(1) Then Line Input #1, Riga...... ecc)
    individuando 'numero seguito da punto 1. 2. ecc
    di seguito cercare 'Autore:' con funzione VBA 'Instr(' ed il testo che segue sciverlo su casella di colonna A
    quindi 'Titolo:' e scrivere testo seguente su casella di colonna B
    quindi 'Parole chiave:' e scrivere testo seguente su casella di colonna C
    quindi 'Abstract:'e scrivere testo seguente su casella di colonna D
    riprendere quindi con scansione del 'numero seguito da punto'
    ecc.
    non ho Excel sotto mano ma sicuramente qualche forumista saprà velocemente scrivere il codice
    il lavoro più sofisticato e di competenza sarebbe leggere direttamente il file Word, ma la trasformazione in TXT semplifica eneormemente il lavoro

  3. #3
    L'avatar di Master
    Clicca e Apri
    Data Registrazione
    Jan 2016
    Località
    Macerata
    Età
    35
    Messaggi
    74
    Versione Office
    2010
    Likes ricevuti
    0
    Likes dati
    1
    Grazie mille per l'indicazione ma praticamente ...
    Per favore, potete aiutarmi con la scrittura del codice VBA ?

    Grazie mille

  4. #4
    L'avatar di TuttoExcel
    Clicca e Apri
    Data Registrazione
    Jan 2016
    Località
    Milano
    Età
    43
    Messaggi
    82
    Versione Office
    Excel 2013
    Likes ricevuti
    19
    Likes dati
    3
    Ciao Master,
    Opto per l'esecuzione di una macro direttamente da Word facendo fare a lui il lavoro sporco eheh. Per la stesura del codice devi aprire l'editor VBE da Word (ALT+F11). Fatto questo vai nel menu Strumenti->Riferimenti ed aggiungi il componente Microsoft Excel XX Object Library (dove XX è un numero che corrisponde alla versione installata di Office).

    Fatto questo scrivi la seguente Sub

    Codice: 
    Sub TrasformaInExcel()
    
    
        Dim oExcel As Excel.Application
        Dim oWB As Workbook
        Dim oWS As Worksheet
        
        Dim paragrafo As String
        Dim totaleParagrafi As Integer
        Dim rigaCorrente As Integer
        
        Set oExcel = New Excel.Application
        Set oWB = oExcel.Workbooks.Add
        Set oWS = oWB.ActiveSheet
        
        rigaCorrente = 1
        
        oWS.Cells(1, 1) = "Autore"
        oWS.Cells(1, 2) = "Titolo"
        oWS.Cells(1, 3) = "Parole Chiave"
        oWS.Cells(1, 4) = "Abstract"
            
        With oWS.Columns("A:D")
                .HorizontalAlignment = xlGeneral
                .VerticalAlignment = xlTop
                .WrapText = True
                .Orientation = 0
                .AddIndent = False
                .IndentLevel = 0
                .ShrinkToFit = False
                .ReadingOrder = xlContext
                .MergeCells = False
                .ColumnWidth = 50
            End With
            
       
        totaleParagrafi = ActiveDocument.Paragraphs.Count
        
        For i = 1 To totaleParagrafi
            paragrafo = ActiveDocument.Paragraphs(i).Range.Text
            If Trim(paragrafo) <> "" Then
                If Mid(paragrafo, 1, 6) = "Autore" Then
                    rigaCorrente = rigaCorrente + 1
                    oWS.Cells(rigaCorrente, 1) = Mid(paragrafo, 9)
                End If
                
                If Mid(paragrafo, 1, 6) = "Titolo" Then
                    oWS.Cells(rigaCorrente, 2) = Mid(paragrafo, 9)
                End If
                
                If Mid(paragrafo, 1, 13) = "Parole chiave" Then
                    oWS.Cells(rigaCorrente, 3) = Mid(paragrafo, 16)
                End If
                
                If Mid(paragrafo, 1, 8) = "Abstract" Then
                    oWS.Cells(rigaCorrente, 4) = Mid(paragrafo, 11)
                End If
                
            End If
        Next i
        
        oExcel.Visible = True
    End Sub
    Puoi eseguirla posizionandoti all'interno di essa e cliccando sul bottone rappresentante una freccia verde che trovi nella barra degli strumenti dell'editor VBA. Se tutto va bene dopo poco ti si aprirà Excel con i dati divisi nelle celle :32:

    Ti allego il file con la macro già incorporata

    Se hai bisogno chiedi pure
    File Allegati File Allegati
    Condividi la tua conoscenza. E’ un modo per raggiungere l’immortalità. (Dalai Lama)
    Amministratore di www.tuttoexcel.it

  5. #5
    L'avatar di zio_tom
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Veneto
    Messaggi
    526
    Versione Office
    2010 - Win10
    Likes ricevuti
    64
    Likes dati
    17
    ottimo lavoro di TuttoExcel
    nel frattempo avevo buttato giù la versione da TXT
    potevo leggere da più file TXT ed accodare i risultati sul un singolo file Excel

    a mio avviso partire da Word implica, se ho più documenti, di inserire la macro su ogn'uno di essi
    creare il file Excel che devo rinominare e salvare con nome
    quindi da ogni file Excel copiare i contenuti per ragrupparli in un singolo file Excel somma di tutti i risultati

    dato per scontato che leggere il file Word, però dall'ambiente Excel, sia la cosa più immediata
    in quanto il file di Excel può essere sempre lo stesso, e posso accodare più file Word, oppure aggiungere altri risultati successivamente
    io l'ho fatto con file TXT ottenuto dal file Word
    io non ho le competenze per leggere il file Word, in VBA da Excel.... dovrei studiare
    sicuramente TuttoExcel potrebbe.... visto che mastica bene entrambi
    File Allegati File Allegati

  6. #6
    L'avatar di TuttoExcel
    Clicca e Apri
    Data Registrazione
    Jan 2016
    Località
    Milano
    Età
    43
    Messaggi
    82
    Versione Office
    Excel 2013
    Likes ricevuti
    19
    Likes dati
    3
    Grazie Zio_Tom,
    comunque seguendo la logica dell'usare un solo file Excel si può procedere importando direttamente il file Word. In questo caso si procede come in Word, solo che il riferimento da aggiungere è Microsoft Word XX Object Library

    Poi si scrive la seguente Macro (si può migliorare, l'ho fatta al volo)

    Codice: 
    Sub TrasformaInExcel()
    
    
        Dim oWord As Word.Application
        Dim oDoc As Word.Document
        
        Dim paragrafo As String
        Dim totaleParagrafi As Integer
        Dim rigaCorrente As Integer
        
        Dim Selezionato As Integer
        Dim strPath As String
    
    
    
    
        Call Application.FileDialog(msoFileDialogOpen).Filters.Clear
        Call Application.FileDialog(msoFileDialogOpen).Filters.Add("Documenti Word", "*.doc*")
        Application.FileDialog(msoFileDialogOpen).AllowMultiSelect = False
        
    
    
        Selezionato = Application.FileDialog(msoFileDialogOpen).Show
    
    
        If Selezionato = 0 Then
            MsgBox "Operazione interrotta", vbExclamation, "Conversione"
            Exit Sub
        End If
        
        strPath = Application.FileDialog(msoFileDialogOpen).SelectedItems(1)
        Set oWord = New Word.Application
        Set oDoc = oWord.Documents.Open(strPath)
        
        'Bisogna posizionarsi sull'ultima riga compilata
        rigaCorrente = ActiveCell.Row
        
       
        totaleParagrafi = oDoc.Paragraphs.Count
        
        For i = 1 To totaleParagrafi
            paragrafo = oDoc.Paragraphs(i).Range.Text
            If Trim(paragrafo) <> "" Then
                If Mid(paragrafo, 1, 6) = "Autore" Then
                    rigaCorrente = rigaCorrente + 1
                    Cells(rigaCorrente, 1) = Mid(paragrafo, 9)
                End If
                
                If Mid(paragrafo, 1, 6) = "Titolo" Then
                    Cells(rigaCorrente, 2) = Mid(paragrafo, 9)
                End If
                
                If Mid(paragrafo, 1, 13) = "Parole chiave" Then
                    Cells(rigaCorrente, 3) = Mid(paragrafo, 16)
                End If
                
                If Mid(paragrafo, 1, 8) = "Abstract" Then
                    Cells(rigaCorrente, 4) = Mid(paragrafo, 11)
                End If
                
            End If
        Next i
        
        oDoc.Close False
        oWord.Quit
        
        Set oDoc = Nothing
        Set oWord = Nothing
    End Sub

    Ci si posiziona sull'ultima riga compilata (nel caso sia un nuovo file sul titolo della colonna) e la si esegue dall'editor, esattamente come per Word. La prima cosa che il programma fa è chiederti quale file vuoi importare.

    Sempre a disposizione :-)
    File Allegati File Allegati
    Condividi la tua conoscenza. E’ un modo per raggiungere l’immortalità. (Dalai Lama)
    Amministratore di www.tuttoexcel.it

  7. #7
    L'avatar di zio_tom
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Veneto
    Messaggi
    526
    Versione Office
    2010 - Win10
    Likes ricevuti
    64
    Likes dati
    17
    mi sono permesso di aggiungere la gestione dell'ID, ed un pulsante di esecuzione
    La gestione dell'ID l'ho usata come un progressivo
    ma se si volesse leggere quello di Word??? (essendo 'Elenco Numerato')
    nel file TXT riesco a leggerlo, essendo trasformato in testo
    File Allegati File Allegati

  8. #8
    L'avatar di TuttoExcel
    Clicca e Apri
    Data Registrazione
    Jan 2016
    Località
    Milano
    Età
    43
    Messaggi
    82
    Versione Office
    Excel 2013
    Likes ricevuti
    19
    Likes dati
    3
    Citazione Originariamente Scritto da zio_tom Visualizza Messaggio
    mi sono permesso di aggiungere la gestione dell'ID, ed un pulsante di esecuzione
    La gestione dell'ID l'ho usata come un progressivo
    ma se si volesse leggere quello di Word??? (essendo 'Elenco Numerato')
    nel file TXT riesco a leggerlo, essendo trasformato in testo
    Hai fatto bene!!!

    Purtroppo non riesco a leggere l'elenco numerato :(... se fai girare la macro e guardi la variabile "paragrafo" non viene portato dentro. Il modo magari esiste ma, purtroppo, io non lo conosco. Devo approfondire, non mi è mai capitato di averci a che fare.
    Condividi la tua conoscenza. E’ un modo per raggiungere l’immortalità. (Dalai Lama)
    Amministratore di www.tuttoexcel.it

  9. #9
    L'avatar di Master
    Clicca e Apri
    Data Registrazione
    Jan 2016
    Località
    Macerata
    Età
    35
    Messaggi
    74
    Versione Office
    2010
    Likes ricevuti
    0
    Likes dati
    1
    Grazie mille ragazzi per tutto l'aiuto.

    Il file su cui lavoro sono 300 pagine e sembra funzionare abbastanza.

    purtroppo ogni tanto ci sono delle righe strane che danneggiano l'esecuzione. Datemi un paio di giorni che vi informo più precisamente sull'efficacia delle soluzioni

    Grazie ancora.

  10. #10
    L'avatar di TuttoExcel
    Clicca e Apri
    Data Registrazione
    Jan 2016
    Località
    Milano
    Età
    43
    Messaggi
    82
    Versione Office
    Excel 2013
    Likes ricevuti
    19
    Likes dati
    3
    Nel frattempo, dopo qualche ricerca, ho tovato il modo di leggere anche l'ID, c'è sempre da imparare :32:

    Ecco il nuovo file
    File Allegati File Allegati
    Condividi la tua conoscenza. E’ un modo per raggiungere l’immortalità. (Dalai Lama)
    Amministratore di www.tuttoexcel.it

  11. #11
    L'avatar di Master
    Clicca e Apri
    Data Registrazione
    Jan 2016
    Località
    Macerata
    Età
    35
    Messaggi
    74
    Versione Office
    2010
    Likes ricevuti
    0
    Likes dati
    1
    Complimenti a Zio Tom ! Il programma ha funzionato alla grande ed è stato il primo a rispondere. Grazie mille
    Complimenti anche agli altri utenti per la loro gentilizza e competenza

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. Esportare dati da excel a word
    Di gigit23 nel forum Domande su Excel in generale
    Risposte: 7
    Ultimo Messaggio: 26/05/16, 16:39
  4. Trasferire Dati da Excel a Word
    Di A.Maurizio nel forum Domande su Excel VBA e MACRO
    Risposte: 13
    Ultimo Messaggio: 08/01/16, 21:01
  5. Giustificare testo in excel come in word
    Di ges nel forum Domande su Excel VBA e MACRO
    Risposte: 2
    Ultimo Messaggio: 15/09/15, 22:05

Tag per Questa Discussione

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
  •