Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

Esportare valori da celle Excel a file di testo

Ultimo Aggiornamento: 24/05/2017 18:23
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

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
[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]
Vota:
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Cerca nel forum
Tag discussione
Discussioni Simili   [vedi tutte]
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 19:32. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com