| | Post: 48 | Registrato il: 02/08/2012
| Città: TREVISO | Età: 71 | Utente Junior | Excel 2010 | | OFFLINE | |
|
20/05/2017 14:16 | |
Ciao,
ho bisogno di aiuto con un file excel con numerose righe.
Il file è composto da due colonne A e B con dati fino alla cella 39316.
Io avrei bisogno di esportare i dati di ogni singola cella di colonna B (formato testo) in un file di testo (oppure doc o rtf) il cui nome sia quello di ogni singola cella di Colonna A.
Quindi nel file con il nome di cella A1 si esporta il testo della cella B1 e così via.
Ho trovato in internet questa macro che funziona bene:
Sub DataDump()
Dim X
Dim lngRow As Long
Dim StrFolder As String
StrFolder = "C:\temp"
X = Range([a1], Cells(Rows.Count, 2).End(xlUp))
For lngRow = 1 To UBound(X)
Open StrFolder & "\" & X(lngRow, 1) & ".txt" For Output As #1
Write #1, X(lngRow, 2)
Close #1
Next
End Sub
Macro trovata su: https://stackoverflow.com/questions/7149539/outputting-excel-rows-to-a-series-of-text-files
L'unico problema della macro e che genera i file txt (o doc) ma riporta i dati testuali di colonna B senza tener conto della formattazione del testo di partenza (font, accenti, ecc vedere ad esempio l'esportazione della parola Aaron).
Come potrei modificarla per preservare i font di partenza?
grazie per l'aiuto
Pasquale [Modificato da pasquale@Excel 20/05/2017 14:19] |
|
| | Post: 3.869 | Registrato il: 13/03/2012
| Città: LIVORNO | Età: 78 | Utente Master | 2010 | | OFFLINE | |
|
20/05/2017 15:03 | |
hai dimenticato di allegare il risultato desiderato
----------
Win 10 - Excel 2010
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta |
| | Post: 48 | Registrato il: 02/08/2012
| Città: TREVISO | Età: 71 | Utente Junior | Excel 2010 | | OFFLINE | |
|
20/05/2017 16:05 | |
Scusate:
Allego i files del risultato come escono lanciando la macro.
Tali files dovrebbero uscire con il testo così come nel file Excel (con gli accenti speciali sulle parole), vedere la parola Aaron nei file allegati e il testo con accenti nella parola Aaron che appaiono in colonna B del file Excel.
grazie per l'attenzione
Pasquale [Modificato da pasquale@Excel 20/05/2017 16:09] |
| | Post: 3.870 | Registrato il: 13/03/2012
| Città: LIVORNO | Età: 78 | Utente Master | 2010 | | OFFLINE | |
|
21/05/2017 11:53 | |
prova questa
Sub DataDump()
StrFolder = "H:\Disclaimer\"
X = Cells(Rows.Count, 2).End(xlUp).Row
Set wdApp = CreateObject("word.application")
For r = 1 To X
fname = Cells(r, "A") & ".docx"
Set wrdDoc = wdApp.Documents.Add
' wrdDoc.Application.Visible = True
Cells(r, "B").Copy
wrdDoc.Range.PasteAndFormat (wdFormatOriginalFormatting)
wrdDoc.SaveAs (StrFolder & fname)
wrdDoc.Close
Next
wdApp.Quit
Set wdApp = Nothing
Set wrdDoc = Nothing
End Sub [Modificato da patel45 21/05/2017 11:56]
----------
Win 10 - Excel 2010
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta |
| | Post: 49 | Registrato il: 02/08/2012
| Città: TREVISO | Età: 71 | Utente Junior | Excel 2010 | | OFFLINE | |
|
21/05/2017 19:33 | |
Grazie Patel,
lanciando la macro
mi da' questo errore
Tipo file ed estensione incompatibili e nella macro mi segnala errore in:
wrdDoc.SaveAs (StrFolder & fname)
se poi tolgo l'apostrofo ' a:
' wrdDoc.Application.Visible = True
mi da errore e mi apre un file word con la definizione della prima parola del foglio la "A"
grazie
Pasquale
[Modificato da pasquale@Excel 21/05/2017 20:21] |
| | Post: 3.871 | Registrato il: 13/03/2012
| Città: LIVORNO | Età: 78 | Utente Master | 2010 | | OFFLINE | |
|
22/05/2017 06:38 | |
metti un percorso esistente al posto di
StrFolder = "H:\Disclaimer\"
deve terminare con \
----------
Win 10 - Excel 2010
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta |
| | Post: 50 | Registrato il: 02/08/2012
| Città: TREVISO | Età: 71 | Utente Junior | Excel 2010 | | OFFLINE | |
|
22/05/2017 07:27 | |
Ciao Patel,
Il percorso H: indicava quello del mio HardDisk esterno,
ho comunque cambiato percorso in C:\Temp\ il risultato comunque è l'errore che ti ho indicato sopra.
Grazie
Pasquale |
| | Post: 3.872 | Registrato il: 13/03/2012
| Città: LIVORNO | Età: 78 | Utente Master | 2010 | | OFFLINE | |
|
22/05/2017 08:25 | |
prova a salvare sul desktop, a me funziona perfettamente
----------
Win 10 - Excel 2010
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta |
| | Post: 1.340 | Registrato il: 06/04/2013
| Utente Veteran | 2010 | | OFFLINE |
|
22/05/2017 09:49 | |
Ciao
non c'è bisogno ma ti confermo che il codice di Patel (cari saluti) funziona perfettamente.
Prova a vedere se funziona variando l'istruzione di incolla nel seguente modo:
wrdDoc.Range.PasteAndFormat (wdFormatDocumentDefault)
saluti
Domenico
Win 10 - Excel 2016 |
| | Post: 51 | Registrato il: 02/08/2012
| Città: TREVISO | Età: 71 | Utente Junior | Excel 2010 | | OFFLINE | |
|
22/05/2017 12:04 | |
Ciao,
Domenico grazie per il suggerimento e grazie ancora Patel.
Ho però cambiato l'estensione in .doc ed ora funziona.
Buona giornata
Pasquale
|
| | Post: 52 | Registrato il: 02/08/2012
| Città: TREVISO | Età: 71 | Utente Junior | Excel 2010 | | OFFLINE | |
|
23/05/2017 13:31 | |
Ciao,
scusate se torno alla questione.
Ogni tante parole (alcune volte 2, 3 o anche una quindicina) mi da errore di RunTime 4605, con la seguente dicitura "Il metodo o la proprietà non è disponibile perché gli appunti sono vuoti o non validi" e nel Debug da errore in:
wrdDoc.Range.PasteAndFormat (wdFormatOriginalFormatting)
oppure se cambio mi da errore in
wrdDoc.Range.PasteAndFormat (wdFormatDocumentDefault)
Si può trovare qualche soluzione o suggerimento?
grazie
Pasquale [Modificato da pasquale@Excel 23/05/2017 13:38] |
| | Post: 3.873 | Registrato il: 13/03/2012
| Città: LIVORNO | Età: 78 | Utente Master | 2010 | | OFFLINE | |
|
23/05/2017 16:04 | |
allega il tuo file e spiega dettagliatamente come lo utilizzi
----------
Win 10 - Excel 2010
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta |
| | Post: 53 | Registrato il: 02/08/2012
| Città: TREVISO | Età: 71 | Utente Junior | Excel 2010 | | OFFLINE | |
|
23/05/2017 19:26 | |
Ciao Patel,
il file è sempre quello allegato sopra solo che in origine ha 37000 righe. Per cui risulta "pesantino" da allegare (basta aggiungere le stesse righe ed arrivare a 50 per testarlo).
L'utilizzo è quello normale: da Macro seleziono la Macro DataDump e quindi esegui, mentre Excel è in esecuzione non apro nessun file nè word o txt o altro e lascio Excel come unico programma in esecuzione. Evito di navigare in Internet per non aprire file HTML, resta attivo l'antivirus McAfee che non posso disabilitare in quanto non ho i privilegi di Amministratore (essendo un portatile aziendale).
Sistema operativo Windows 7 ed Excel 2010.
PS. esportare in file TXT o HTMl con formattazione testo non è possibile?
Grazie
Pasquale
[Modificato da pasquale@Excel 23/05/2017 19:38] |
| | Post: 3.874 | Registrato il: 13/03/2012
| Città: LIVORNO | Età: 78 | Utente Master | 2010 | | OFFLINE | |
|
24/05/2017 11:10 | |
prova a inserire DoEvents dopo wrdDoc.Close
wrdDoc.Range.PasteAndFormat (wdFormatOriginalFormatting)
wrdDoc.SaveAs (StrFolder & fname)
wrdDoc.Close
DoEvents
Next
----------
Win 10 - Excel 2010
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta |
| | Post: 54 | Registrato il: 02/08/2012
| Città: TREVISO | Età: 71 | Utente Junior | Excel 2010 | | OFFLINE | |
|
24/05/2017 18:23 | |
Ecco Patel,
ora gira molto meglio.
Anzi direi benissimo, dopo 1.000 righe gira ancora.
Grazie ancora
Pasquale [Modificato da pasquale@Excel 24/05/2017 18:32] |
|
|