Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

[Excel] esportare una colonna in txt

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

[Excel] esportare una colonna in txt

Postdi gik » 16/10/07 09:54

Salve a tutti,
è possibile in Excel esportare in formato txt solo una parte di una colonna?

Ad esempio, vorrei creare un file txt (ad esempio c:\prova.txt)
in cui semplicemente copiare il Range("L2:L32") del foglio attivo.

La cosa più semplice sarebbe crerare il file txt,
copiare il range
ed incollare.

Come posso farlo in automatico?
Posso scegliere come nome del file .txt il testo presente nella cella N2 ?

GrazieGrazieGrazieGrazieGrazie
" ... e come il sol che fulvo scema attergo il cupo mare, negli occhi miei, tu, riverberi radiosa"
GIK
gik
Utente Junior
 
Post: 86
Iscritto il: 18/07/06 16:41
Località: Gaeta

Sponsor
 

Postdi gik » 16/10/07 13:17

Salve a tutti ho risolto in parte il problema, facendo riferimento ad un vecchio consiglio di Antony:

Codice: Seleziona tutto
Sub Esporta_TXT()
       
    ActiveWorkbook.Save
    Application.DisplayAlerts = False
   
    Range("L2:L32").Select
    Selection.Copy
    Sheets.Add
    Sheets(1).Select
   
    Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
   
    ActiveWorkbook.SaveAs Filename:="c:\prova.txt", FileFormat:=xlText, CreateBackup:=False
   
    Sheets(1).Delete
 
End Sub


Funziona tutto benone, ma vorrei poter inserire come filename il path già inserito nella cella Q2 (non so come inserire però le virgolette).
Come fare?
[/code]
" ... e come il sol che fulvo scema attergo il cupo mare, negli occhi miei, tu, riverberi radiosa"
GIK
gik
Utente Junior
 
Post: 86
Iscritto il: 18/07/06 16:41
Località: Gaeta

Postdi Anthony47 » 17/10/07 11:09

Bene; la necessita’ aguzza l’ ingegno.

Non capisco il problema delle virgolette: quali virgolette?

Hai in Q2 il path, es C:\Documents and Settings\Il Nome dell’ utente\Documenti\
In N2 il nome file, es prova.txt

E poi usi:
Codice: Seleziona tutto
FullName = Range("Q2").value & Range("N2").value            '<<Aggiunta
ActiveWorkbook.SaveAs Filename:=FullName, FileFormat:=xlText, CreateBackup:=False  '<<Modificata


In alternativa crei direttamente il file con qualcosa come

Codice: Seleziona tutto
Sub TxtFile()
Area = "L2:L32"                  '<<< Compilare
Sheets("Foglio1").select
FullName = Range("Q2").value & Range("N2").value     
Open FullName for Output as #1         '<<< ?? oppure For Append
For each cella in Range(Area)
'If Cella.value = “” then goto Esci         '<<< Scommenta l’ istruzione se ti interessa la logica
Print #1, Cella.value
Next Cella
Esci:
Close
End Sub


Avrai gia’ notato che sul file c’ e’ il contenuto della cella e non quello che viene visualizzato; es. se una cella formattata “ora” visualizza 22:50 verra’ salvato in txt qualcosa come 0.95138888889. Se questo e’ un problema allora dovrai formattare i valori prima del “print”; nell’ esempio:
Codice: Seleziona tutto
Print #1, Format(Cella.Value, "hh:mm")


E’ sufficiente?
Ciao.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13894
Iscritto il: 21/03/06 16:03
Località: Ivrea

Postdi Anthony47 » 17/10/07 11:11

Leggasi:
Codice: Seleziona tutto
'If Cella.value = "" then goto Esci
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13894
Iscritto il: 21/03/06 16:03
Località: Ivrea

Postdi gik » 18/10/07 07:55

:)
Grazie mille per l'ennesima volta.
Sempre preziosissimo.
" ... e come il sol che fulvo scema attergo il cupo mare, negli occhi miei, tu, riverberi radiosa"
GIK
gik
Utente Junior
 
Post: 86
Iscritto il: 18/07/06 16:41
Località: Gaeta

Re: [Excel] esportare una colonna in txtx

Postdi gik » 25/08/08 14:21

Salve a tutti ed in particolare ad Anthony47.

La macro che mi hai indicato funziona benone
Codice: Seleziona tutto
Sub TxtFile()
Area = "L2:L32"                  '<<< Compilare
Sheets("Foglio1").select
FullName = Range("Q2").value & Range("N2").value     
Open FullName for Output as #1         '<<< ?? oppure For Append
For each cella in Range(Area)
If Cella.value = "" then goto Esci         '<<< Scommenta l’ istruzione se ti interessa la logica
Print #1, Cella.value
Next Cella
Esci:
Close
End Sub

, ma ha un difetto:
crea un file di testo con tutte le righe non vuote presenti nell'Area = "L2:L32"
ma all'ultima riga di testo aggiunge un invio,
quindi avrò un file con 32 righe (non 31), delle quali l'ultima è vuota.
Questo fatto crea un problema nel software che deve importare il file txt.

Si può ovviare a questo problema, evitando di dover eliminare a mano l'ultima riga di ogni file txt?

Grazie ancora
GIK
" ... e come il sol che fulvo scema attergo il cupo mare, negli occhi miei, tu, riverberi radiosa"
GIK
gik
Utente Junior
 
Post: 86
Iscritto il: 18/07/06 16:41
Località: Gaeta

Re: [Excel] esportare una colonna in txtx

Postdi Anthony47 » 25/08/08 17:11

Bentornato; hai fatto ferie lunghe??!
Dalle prove da me fatte, il file txt contiene tanti "line-feed" quanti sono gli elementi da scrivere; tant' e' che se modifichi l' istruzione Open da "for Output" a "for Append" i nuovi dati sono accodati esattamente continuando l' elenco precedente.

Bisogna quindi guardare nel software che fa l' importazione

Ciao.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13894
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [Excel] esportare una colonna in txt

Postdi gik » 26/08/08 09:43

Ciao,
ferie belle lunghe.. dal sito :)
Comunque grazie mille, come al solito.

Ciao, alla prossima.
GiK
" ... e come il sol che fulvo scema attergo il cupo mare, negli occhi miei, tu, riverberi radiosa"
GIK
gik
Utente Junior
 
Post: 86
Iscritto il: 18/07/06 16:41
Località: Gaeta

Re: [Excel] esportare una colonna in txt

Postdi greenrabbit » 18/02/09 09:12

Salve a tutti mi presento, mi chiamo sergio e mi sto per laureare a ing. civile, ora sono alle prese con la tesi ed ho un problema, in pratica devo calcolare 400 cerniere plastiche, il prof. mi ha dato un programma scritto in matlab da uno degli assistenti, questo programma è composto da un file di testo input, fatto in questo modo:

Codice: Seleziona tutto
 0
 20.75
 1
 360
 550
 300
 30
 30
 30
 14
 4
 2
 2


ed un file di testo output simile al precedente.... ora quello che devo fare io è inserire nel file di input tutti i numeri (che sono presenti in un foglio excel) relativi alla prima cerniera plastica, far partire il programma, prelevare l'output e copiarlo in excel, questo 400 volte... sono riuscito ad automatizzare il file eseguibile che per 400 cerniere crea 400 output, ora mi serve una macro che data una serie di colonne mi esporta il testo delle colonne in un file, per fare questa operazione ho visto la macro scritta sopra:

Codice: Seleziona tutto
Sub TxtFile()
Area = "B59:B71"
Sheets("Input").Select
FullName = Range("B58")
Open FullName For Output As #1
For Each Cella In Range(Area)
Print #1, Format(Cella.Value)
Next Cella
Esci:
Close
End Sub


Questo chiaramente solo per una colonna, ed il primo problema che mi si presenta è che al posto del punto c'è la virgola come separatore decimale. Poi come posso fare per far eseguire questa macro a tutte le colonne in maniera tale che per ogni colonna mi esporti un singolo file di testo con i nomi crescenti tipo a-1, a-2, ..., a-n?
Infine mi serve anche una macro che legga gli n-output e li inserisca nelle n-colonne...

ringrazio tutti coloro che cercheranno di darmi una mano :)
greenrabbit
Newbie
 
Post: 2
Iscritto il: 18/02/09 08:51

Re: [Excel] esportare una colonna in txt

Postdi greenrabbit » 18/02/09 14:07

Grazie ad un amico ho risolto così:

Codice: Seleziona tutto
Sub esporta()
For i = 1 To 208
    area = Range(Cells(2, i), Cells(14, i))
    Sheets("Input").Select
    FullName = Cells(1, i).Value
    Open FullName For Output As #1
    For j = 1 To 13
        Write #1, area(j, 1)
    Next j
    Close #1
Next i
Esci:
Close
End Sub


ora non mi resta che importare i file :D
greenrabbit
Newbie
 
Post: 2
Iscritto il: 18/02/09 08:51

Re: [Excel] esportare una colonna in txt

Postdi Anthony47 » 18/02/09 23:42

Ciao greenrabbit e benvenuto nel forum.
Non ho capito se e' gia' tutto risolto o sei solo "a buon punto".

Se serve aiuto per favore spiega su quali aspetti del problemone.

Ciao.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13894
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "[Excel] esportare una colonna in txt":


Chi c’è in linea

Visitano il forum: Nessuno e 5 ospiti