Ciao mornord e benvenuto nel forum.
Se i dati in una cella della tabella word sono distribuiti su piu' linee perche' e' inserito un "Enter" in coda al dato precedente, allora mi sembra normale che su excel la seconda scritta finisce sulla seconda riga; se invece il dato venisse distribuito su tante righe per effetto della lunghezza della stringa (una stringa senza presenza di Enter) allora quella stringa finirebbe in excel in una unica cella.
Quindi si tratta di leggere il testo dal word e modificarlo; questa macro dovrebbe funzionare; essa ti consente di scegliere il file da cui importare le tabelle, poi apre il file in modo nascosto e importa le tabelle sul foglio excel attivo in quel momento (funziona come foglio di servizio), una dopo l' altra, separando ogni tabella dalla precedente con alcune linee vuote.
- Codice: Seleziona tutto
Sub WordToXlsTable()
Dim TableDoc As Object
Dim TabNum As Integer 'table number index
Dim IT As Integer 'Table index
Dim IR As Integer 'row index
Dim IC As Integer 'column index
Dim TotR As Integer 'Tot Righe elaborate
'
wdFName = Application.GetOpenFilename("Word files (*.doc), *.doc")
If wdFName = False Then Exit Sub 'Nessuna scelta, esci
Set TableDoc = GetObject(wdFName) 'open Word file
'
With TableDoc
TabNum = TableDoc.tables.Count
If TabNum = 0 Then
MsgBox ("Nessuna tabella in documento " & vbCrLf & wdFName): GoTo EndSub
End If
For IT = 1 To TabNum
With .tables(IT)
For IR = 1 To .Rows.Count
For IC = 1 To .Columns.Count
CellStr = (.cell(IR, IC).Range.Text)
CellStr = Replace(Replace(CellStr, Chr(13), Chr(10)), Chr(7), " ") 'Cos' altro?
Cells(IR + TotR, IC) = CellStr 'vers 2
Next IC 'Next Cella
Next IR 'Next Row
End With
TotR = TotR + IR + 2
Next IT 'Nex table
End With
'
EndSub:
Set TableDoc = Nothing
End Sub
La macro converte gli Enter nel testo word con l' equivalente di Alt-Enter di excel; e' possibile che nell' importazione rimangano caratteri spuri che andrebbero filtrati singolarmente, ripetendo il ciclo di Replace che ho usato nella macro.
Una volta che hai i dati importati li copierai nelle posizioni che ti interessano applicando le formattazioni che ti piacciono.
Se funziona e il gioco vale la candela, si potrebbe rendere piu' solida la macro, per forzarla a scrivere su un foglio specifico, e magari azzerare il foglio prima di importare i dati; al momento farai queste cose "a mano".
Ciao.