Condividi:        

Excel Esportare dati in file 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 dati in file txt

Postdi Francesco53 » 12/06/13 14:27

Buongiorno a tutti,
avevo la necessità di modificare la seguente macro per esportare un determinato range da excel in file txt:
La mia difficoltà e che mi esporta solo la prima colonna e anche se applico i codici per espandere il range
dalla colonna A alla colonna z, mi da errore.
Codice: Seleziona tutto
stringOfText = ""
    myFileName = "C:\documenti\datiExcel.txt" & "myFileName.txt"
    delimitingCharacter = vbNewLine
         
    fin = Cells(1, 1) + 1
    ini = fin - 100
    For i = ini To fin
         stringOfText = stringOfText & Sheets("Archivio").Range("A" & i).Value & delimitingCharacter
       'Questa è la riga che ho cercato di modificare
       'stringOfText = stringOfText & Sheets("Archivio").Range(Cells("A & i &: Z" & i)).Value & delimitingCharacter
    Next i

Il punto è che vorrei esporrtare le ultime 100 righe di un archivio in file di testo.
Grazie a chi può aiutarmi.
Francesco
S.O. Windows 10 e Office 2007
Avatar utente
Francesco53
Utente Senior
 
Post: 811
Iscritto il: 20/02/10 18:45

Sponsor
 

Re: Excel Esportare dati in file txt

Postdi ricky53 » 12/06/13 17:20

Ciao,
nel tuo codice c'è molto da rivedere ed è preferibile riorganizzarlo, quindi,in base a quanto ho capito ti propongo questo esempio
Codice: Seleziona tutto
Option Explicit

Sub Copia_Dati()
    Dim WS As Worksheet, Fin As Long, Ini As Long, I As Long, J As Integer, myFileName As String
    Dim stringOfText As String
    myFileName = "D:\Temp\datiExcel.txt"
   
    Set WS = Sheets("Archivio")
    Fin = WS.Cells(Rows.Count, "A").End(xlUp).Row
    Ini = Fin - 100 + 1
'   Qui metti la  "Open"  in output del file "datiExcel.txt" da scrivere
    Open myFileName For Output As 1
    For I = Ini To Fin
        stringOfText = ""
        For J = 1 To 26 ' <<====== 26 è la colonna "Z"
            stringOfText = stringOfText & WS.Cells(I, J).Value & ";" ' <<=== Ho scelto come separatore della colonne il ";"
        Next J
        stringOfText = stringOfText & vbNewLine
' qui scrivi la riga con la stringa compilata
        Print #1, stringOfText
    Next I
' qui chiudi il file txt
    Close 1
    Set WS = Nothing
    MsgBox "Elaborazione effettuata"
End Sub


Il codice dovrebbe essere chiaro ... in base ai commenti che ho inserito ... in caso mi trovi QUI
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Excel Esportare dati in file txt

Postdi Francesco53 » 12/06/13 21:42

Ciao Ricky,
grazie di tutto, funziona alla grande.
Francesco
S.O. Windows 10 e Office 2007
Avatar utente
Francesco53
Utente Senior
 
Post: 811
Iscritto il: 20/02/10 18:45

Re: Excel Esportare dati in file txt

Postdi ricky53 » 12/06/13 23:51

Ciao,
bene.
Buon proseguimento ed alla prossima.
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Excel Esportare dati in file txt

Postdi Francesco53 » 13/06/13 08:52

Ciao Ricky, scusa se ti chiedo una ulteriore miglioria, leggendo il file,
è composto da 200 righe, rispetto alle 100 estratte, tra una riga dati e la successiva,
c'è in più una riga vuota, Io ho provato a sostituire:
Codice: Seleziona tutto
stringOfText = stringOfText & vbNewLine

con:
Codice: Seleziona tutto
stringOfText = stringOfText & vbCr

cambia solo visivamente il file di teso, nel senso che sembra eliminare le righe vuote,
se letto con BloccoNote, ma purtroppo l'applicativo che le deve leggere, ne conta 200.
Hai qualche aiuto da farmi provare per risolvere?
N.B.: si riscontra la stessa situazione leggendo il file txt con Notepad++.
Grazie
Francesco
S.O. Windows 10 e Office 2007
Avatar utente
Francesco53
Utente Senior
 
Post: 811
Iscritto il: 20/02/10 18:45

Re: Excel Esportare dati in file txt

Postdi Flash30005 » 13/06/13 09:03

Elimina o commenta questa riga
Codice: Seleziona tutto
       stringOfText = stringOfText & vbNewLine


ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Excel Esportare dati in file txt

Postdi Francesco53 » 13/06/13 09:53

Grazie Flash, ha eliminato le righe vuote.
Francesco
S.O. Windows 10 e Office 2007
Avatar utente
Francesco53
Utente Senior
 
Post: 811
Iscritto il: 20/02/10 18:45

Re: Excel Esportare dati in file txt

Postdi Flash30005 » 13/06/13 10:07

Oppure (lasciando la riga codice dove era) porti la riga indicata sotto a next I
Codice: Seleziona tutto
        'Print #1, stringOfText <<<<< spostare sotto
    Next I
        Print #1, stringOfText
   

e sposti sopra la riga indicata
Codice: Seleziona tutto
 
        stringOfText = ""
For I = Ini To Fin
       ' stringOfText = ""  <<<<<< spostare prima del For

Forse era questa l'intenzione di Ricky

ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Excel Esportare dati in file txt

Postdi Francesco53 » 13/06/13 11:08

Grazie ad entrambi per l'aiuto.
Francesco
S.O. Windows 10 e Office 2007
Avatar utente
Francesco53
Utente Senior
 
Post: 811
Iscritto il: 20/02/10 18:45

Re: Excel Esportare dati in file txt

Postdi ricky53 » 13/06/13 12:17

Ciao Francesco,
io ho lasciato l'istruzione che avevi inserito tu, ossia
Codice: Seleziona tutto
stringOfText = stringOfText & vbNewLine

perchè avevo immaginato che volessi così il file.

Basta eliminare l'istruzione seguente
Codice: Seleziona tutto
stringOfText = stringOfText & vbNewLine



Per Flash: l'istruzione
Codice: Seleziona tutto
stringOfText = ""
serve dentro il ciclo per cancellare il contenuto della variabile prima di concatenare le varie celle nel ciclo
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Excel Esportare dati in file txt

Postdi Flash30005 » 13/06/13 12:55

Puoi anche caricare in unica stringa tutte le righe del foglio excel complete del ritorno a capo
poi apri il file testo e con un solo print lo compili
In questo caso stringOfText = ""
va messo fuori dal ciclo altrimenti resetttando la stringa scriverebbe solo l'ultima riga

ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Excel Esportare dati in file txt

Postdi ricky53 » 13/06/13 14:08

Ciao Flash,
si vero però se la stringa è molto lunga si possono avere dei troncamenti e, non sapendo quante celle fossero in gioco e quanto lungo fosse il contenuto di ognuna, ho preferito scrivere ad ogni fine riga delle colonne interessate.

Sicuramente diverse centinaia di migliaia di byte saranno accettati ma nel dubbio ...

Un salutone.



EDIT: ho voluto provare e ... al valore di 67.686.191 bytes la macro è andata in errore
Run-Time 14 - Spazio stringa esaurito.

Direi che è un buon valore che ne dite?
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia


Torna a Applicazioni Office Windows


Topic correlati a "Excel Esportare dati in file txt":


Chi c’è in linea

Visitano il forum: Marius44 e 53 ospiti