Exort TXT colonne allineante
Hai un problema con Excel? 
Exort TXT colonne allineante
di adavide (utente non iscritto) data: 11/04/2014 09:45:44
Salve a tutti, il mio problema è il seguente:
Vorrei creare una macro che, partendo da un file di excel con 3 colonne all'interno delle quali i dati hanno una lunghezza variabile, esporti un file txt con 3 colonne da 22 14 30 digit all'interno delle quali i dati vengono allineanti a destra quindi anteponendo spazi al numero fino al completamento della colonna.
00.00.00.00 AA01.1000 1000,00
00.00.00.00 BB01.2000 0,00
00.00.00.00 CC01.2005 220000,00
Grazie
di lepat (utente non iscritto) data: 11/04/2014 10:39:41
allega un file excel di esempio ed il risultato desiderato
di adavide data: 11/04/2014 10:51:54
Ho allegato sia il file di Excel che il tracciato del txt che vorrei ottenere.
Grazie
di lepat (utente non iscritto) data: 11/04/2014 10:58:09
non mi sembrano congruenti i due file
di adavide data: 11/04/2014 11:10:25
cosa intendi per congruenti scusa?
io parto dal file excel con i dati organizzati in quel modo li, devo organizzarli nel txt secondo quel tracciato
di lepat (utente non iscritto) data: 11/04/2014 12:35:50
prova questa
Option Base 1
Sub esportaFormattato()
pf$ = "C:testp.txt" ' nome del file da salvare
nri% = 4 ' imposta n° righe
nco% = 3 ' imposta n° colonne
f% = FreeFile
Open pf$ For Output As #f%
arr = Array(String(22, "@"), String(14, "@"), String(30, "@"))
For riga% = 1 To nri%
For col% = 1 To nco%
Print #f%, Format(Cells(riga%, col%), arr(col%));
Next col%
If riga% < nri Then Print #f%,
Next riga%
Close #f%
End Sub
|
di adavide data: 11/04/2014 13:31:21
Grazie, funziona!!!
solo una cosa, non si può fare in modo che crei tante righe quante ce ne sono del file di excel, io ho postato un esempio con 3 righe ma sul file originale ci sono almeno 1500 record ma a volte possono essere di più o anche di meno!!!
Ti ringrazio
di lepat (utente non iscritto) data: 11/04/2014 14:22:26
così
Option Base 1
Sub esportaFormattato()
pf$ = "C:testp.txt" ' nome del file da salvare
nri%= Cells(Rows.Count, "A").End(xlUp).Row
nco% = 3 ' imposta n° colonne
f% = FreeFile
Open pf$ For Output As #f%
arr = Array(String(22, "@"), String(14, "@"), String(30, "@"))
For riga% = 1 To nri%
For col% = 1 To nco%
Print #f%, Format(Cells(riga%, col%), arr(col%));
Next col%
If riga% < nri Then Print #f%,
Next riga%
Close #f%
End Sub |
di adavide data: 14/04/2014 09:57:35
Va alla grande!!!
Grazie
di lepat (utente non iscritto) data: 14/04/2014 10:00:36
prego metto risolto
di adavide data: 14/04/2014 10:29:09
E se io volessi fare in modo che nella 3 colonna del txt mi aggiungesse 2 decimali alla cifra solo se in excel non sono presenti?
mi spiego meglio, in excel, nella colonna C posso avere 1234,80 oppure 4567. Nella 3 colonna del txt vorrei che comparisse 1234,80 e 4567,00.
Se aggiungo i decimali nel formato cella di excel sul txt, chiaramente, non compaiono essendo solo una visualizzazione.
Ti ringrazio per la pazienza
di lepat (utente non iscritto) data: 14/04/2014 15:05:22
prova così
Sub esportaFormat()
pf$ = "C:usersandredesktopp.txt" ' nome del file da salvare
nri% = 4 ' imposta n° righe
nco% = 3 ' imposta n° colonne
f% = FreeFile
Open pf$ For Output As #f%
arr = Array(String(22, "@"), String(14, "@"), String(30, "@"))
For riga% = 1 To nri%
For col% = 1 To nco%
s = Cells(riga%, col%).Text
If col% = 3 Then s = Format(s, "0.00")
Print #f%, Format(s, arr(col%));
Next col%
If riga% < nri Then Print #f%,
Next riga%
Close #f%
End Sub
|
Vuoi Approfondire?