Esportare valori da celle Excel a file di testo

Versione Completa   Stampa   Cerca   Utenti   Iscriviti     Condividi : FacebookTwitter
pasquale@Excel
00sabato 20 maggio 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
patel45
00sabato 20 maggio 2017 15:03
hai dimenticato di allegare il risultato desiderato
pasquale@Excel
00sabato 20 maggio 2017 16:05
Risultato
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
patel45
00domenica 21 maggio 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
pasquale@Excel
00domenica 21 maggio 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

patel45
00lunedì 22 maggio 2017 06:38
metti un percorso esistente al posto di
StrFolder = "H:\Disclaimer\"
deve terminare con \
pasquale@Excel
00lunedì 22 maggio 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
patel45
00lunedì 22 maggio 2017 08:25
prova a salvare sul desktop, a me funziona perfettamente
dodo47
00lunedì 22 maggio 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


pasquale@Excel
00lunedì 22 maggio 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
pasquale@Excel
00martedì 23 maggio 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
patel45
00martedì 23 maggio 2017 16:04
allega il tuo file e spiega dettagliatamente come lo utilizzi
pasquale@Excel
00martedì 23 maggio 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

patel45
00mercoledì 24 maggio 2017 11:10
prova a inserire DoEvents dopo wrdDoc.Close
      wrdDoc.Range.PasteAndFormat (wdFormatOriginalFormatting)
      wrdDoc.SaveAs (StrFolder & fname)
      wrdDoc.Close
      DoEvents
    Next

pasquale@Excel
00mercoledì 24 maggio 2017 18:23
Ecco Patel,
ora gira molto meglio.
Anzi direi benissimo, dopo 1.000 righe gira ancora.

Grazie ancora

Pasquale
Questa è la versione 'lo-fi' del Forum Per visualizzare la versione completa clicca qui
Tutti gli orari sono GMT+01:00. Adesso sono le 01:58.
Copyright © 2000-2024 FFZ srl - www.freeforumzone.com