Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Salvataggio da .xls a .txt con Visual Basic

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

Re: Salvataggio da .xls a .txt con Visual Basic

Postdi alealfa77 » 26/10/11 10:16

Ciao.

Il tuo file di testo non riesco a scaricarlo qui dall'ufficio, il sito uploading è bloccato.

Perdonami, di che genere di file testo riferito a prova.xls hai bisogno? Vedo di fornirtelo.

La Colonna C è una colonna definita come un campo numerico di 3 caratteri, pertanto potrebbe non essere riempito sempre con tutti e tre i caratteri.

Ciao.
alealfa77
Utente Junior
 
Post: 23
Iscritto il: 24/10/11 14:04

Sponsor
 

Re: Salvataggio da .xls a .txt con Visual Basic

Postdi alealfa77 » 26/10/11 10:22

Anthony47 ha scritto:Direi che col formato prn c' e' un problema irrisolvibile con l' ultima colonna, che se e' piena di "spazi" non viene salvata (ma questa colonna non era presente nemmeno nel file provatutte.txt, che motrava l' output desiderato...)

Opterei per la macro che genera le singole righe, campo per campo. Ho capito che la tua macro gia' normalizza la lunghezza delle varie colonne, quindi non e' necessario nessun aggiustamento in questo senso.
Se questo e' giusto allora dovrebbe bastare questa macro, che eventualmente puoi accodare al tuo codice attuale:
Codice: Seleziona tutto
Sub JoinRec()
'Vedi http://www.pc-facile.com/forum/viewtopic.php?f=26&t=93263
'
Dim LastR As Long, LastC As Long, I As Long, _
   J As Long, Riga As String
LastR = Cells(Rows.Count, 1).End(xlUp).Row
LastC = Cells(1, Columns.Count).End(xlToLeft).Column
NextF = FreeFile
Open "Outfiler.txt" For Output As #NextF
For I = 1 To LastR
    Riga = ""
    For J = 1 To LastC
        Riga = Riga & Cells(I, J)
    Next J
Print #NextF, Riga
Next I
Close
End Sub

Viene generato il file Outfiler.txt nella directory corrente.

Prova e fai sapere
Ciao.



Ciao Anthony,
funziona!!!!!!!!!!
Mi genera il file di testo con le specifiche di cui ho bisogno.

Solo una cosa, scrive solo la prima riga.
Devo ripetere il codice per ogni riga oppure devo aggiungere altre istruzioni?
Grazie!!!
alealfa77
Utente Junior
 
Post: 23
Iscritto il: 24/10/11 14:04

Re: Salvataggio da .xls a .txt con Visual Basic

Postdi Flash30005 » 26/10/11 10:28

Prova a scaricare questo file testo è su Fileserve

http://www.fileserve.com/file/cTKaq42/aaa.txt
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Salvataggio da .xls a .txt con Visual Basic

Postdi alealfa77 » 26/10/11 10:35

Flash30005 ha scritto:Prova a scaricare questo file testo è su Fileserve

http://www.fileserve.com/file/cTKaq42/aaa.txt


Ok, scaricato.

Il file generato ha due colonne di troppo, una tra la serie di 'c' e la serie di 'n' ed una dopo la serie di 'n'.
E, anche se c'è inserito '5' anzichè '005', il tutto dovrebbe essere allineato a destra.
alealfa77
Utente Junior
 
Post: 23
Iscritto il: 24/10/11 14:04

Re: Salvataggio da .xls a .txt con Visual Basic

Postdi Flash30005 » 26/10/11 10:45

Ok prova questa macro
Codice: Seleziona tutto
Sub ImpEspTxt2()
UR = Range("A" & Rows.Count).End(xlUp).Row
   Perc = ThisWorkbook.Path & "\"
    FileOr = "aaa.txt"
    Open Perc & FileOr For Output As #1
    For RR = 1 To UR
        Riga = ""
        For CC = 1 To 13
            ST3 = ""
            If CC = 3 Then
                LS = 3 - Len(Cells(RR, CC).Text)
                For LLS = 1 To LS
                    ST3 = ST3 & " "
                Next LLS
            End If
            Riga = Riga & ST3 & Cells(RR, CC).Text
        Next CC
    'MsgBox Riga
    Print #1, Riga
    Next RR
    Close #1
End Sub


Se vuoi che il 5 (singolo) sia trascritto come 005
allora modifica questa riga
Codice: Seleziona tutto
 ST3 = ST3 & "0"
(inserisci "0" invece che spazio)
Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Salvataggio da .xls a .txt con Visual Basic

Postdi alealfa77 » 26/10/11 11:02

Flash30005 ha scritto:Ok prova questa macro
Codice: Seleziona tutto
Sub ImpEspTxt2()
UR = Range("A" & Rows.Count).End(xlUp).Row
   Perc = ThisWorkbook.Path & "\"
    FileOr = "aaa.txt"
    Open Perc & FileOr For Output As #1
    For RR = 1 To UR
        Riga = ""
        For CC = 1 To 13
            ST3 = ""
            If CC = 3 Then
                LS = 3 - Len(Cells(RR, CC).Text)
                For LLS = 1 To LS
                    ST3 = ST3 & " "
                Next LLS
            End If
            Riga = Riga & ST3 & Cells(RR, CC).Text
        Next CC
    'MsgBox Riga
    Print #1, Riga
    Next RR
    Close #1
End Sub


Se vuoi che il 5 (singolo) sia trascritto come 005
allora modifica questa riga
Codice: Seleziona tutto
 ST3 = ST3 & "0"
(inserisci "0" invece che spazio)
Ciao


Ok, funziona, ma come per la proposta di Anthony mi scrive solo una riga.
alealfa77
Utente Junior
 
Post: 23
Iscritto il: 24/10/11 14:04

Re: Salvataggio da .xls a .txt con Visual Basic

Postdi Flash30005 » 26/10/11 11:04

La macro di Anthony funziona e scrive tutte le righe
solo che deve essere implementata per incolonnare i numeri singoli

Non saprei come mai a te non funzioni

Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Salvataggio da .xls a .txt con Visual Basic

Postdi alealfa77 » 26/10/11 11:09

Flash30005 ha scritto:La macro di Anthony funziona e scrive tutte le righe
solo che deve essere implementata per incolonnare i numeri singoli

Non saprei come mai a te non funzioni

Ciao


Ho semplicemente copiato il codice dal messaggio ed incollato al termine del mio codice macro.
Ho riprovato anche adesso, ma scrive, corretta in tutto e per tutto, solo la prima riga.

E per il tuo codice?
alealfa77
Utente Junior
 
Post: 23
Iscritto il: 24/10/11 14:04

Re: Salvataggio da .xls a .txt con Visual Basic

Postdi Flash30005 » 26/10/11 11:13

alealfa77 ha scritto:E per il tuo codice?

:?:


Questo è il file generato dalla macro di Anthony
http://www.fileserve.com/file/CtnfuUK/Outfiler.txt


Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Salvataggio da .xls a .txt con Visual Basic

Postdi alealfa77 » 26/10/11 11:16

Infatti è corretto, non capisco come mai sul mio file mi scrive solo la prima riga.
alealfa77
Utente Junior
 
Post: 23
Iscritto il: 24/10/11 14:04

Re: Salvataggio da .xls a .txt con Visual Basic

Postdi alealfa77 » 26/10/11 11:16

Anche per la tua macro di salvataggio mi scrive solo la prima riga.
alealfa77
Utente Junior
 
Post: 23
Iscritto il: 24/10/11 14:04

Re: Salvataggio da .xls a .txt con Visual Basic

Postdi Flash30005 » 26/10/11 11:25

Prova ad eseguire la macro passo-passo in debug

Le macro controllano il numero di righe della colonna A
per caso nella colonna A ci sono spazi vuoti?
solo la prima cella A1 è con i dati?
se così devi cambiare il riferimento del conteggio righe

esegui la macro con il file che hai inviato

fai sapere

ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Salvataggio da .xls a .txt con Visual Basic

Postdi alealfa77 » 26/10/11 11:35

Flash30005 ha scritto:Prova ad eseguire la macro passo-passo in debug

Le macro controllano il numero di righe della colonna A
per caso nella colonna A ci sono spazi vuoti?
solo la prima cella A1 è con i dati?
se così devi cambiare il riferimento del conteggio righe

esegui la macro con il file che hai inviato

fai sapere

ciao


Selezionando l'area interessata mi scrive il file completo.
Un'ultima cosa, è possibile limitare il file di Output a quante righe sono effettivamente compilate?
alealfa77
Utente Junior
 
Post: 23
Iscritto il: 24/10/11 14:04

Re: Salvataggio da .xls a .txt con Visual Basic

Postdi Flash30005 » 26/10/11 13:22

alealfa77 ha scritto:Selezionando l'area interessata mi scrive il file completo.


Strano!
la macro legge quante righe con dati ci sono nella colonna A
e scansiona ogni riga trascrivendo i campi colonna nel file testo
Devi chiaramente essere nel foglio con i dati altrimenti scansiona un altro foglio
quindi all'inizio della macro potresti inserire questa riga
Codice: Seleziona tutto
Sub ImpEspTxt2() '<<< riga esistente
Worksheets("Foglio1").select '<<<< riga da aggiungere
UR = Range("A" & Rows.Count).End(xlUp).Row '<<<< riga esistente

se ancora non va subito dopo inserisci
Codice: Seleziona tutto
Cells.select


alealfa77 ha scritto:tima cosa, è possibile limitare il file di Output a quante righe sono effettivamente compilate?


Per i motivi sopra menzionati dovresti avere solo le righe con dati
perché cosa hai, invece?

Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Salvataggio da .xls a .txt con Visual Basic

Postdi alealfa77 » 26/10/11 13:37

Flash30005 ha scritto:
alealfa77 ha scritto:Selezionando l'area interessata mi scrive il file completo.


Strano!
la macro legge quante righe con dati ci sono nella colonna A
e scansiona ogni riga trascrivendo i campi colonna nel file testo
Devi chiaramente essere nel foglio con i dati altrimenti scansiona un altro foglio
quindi all'inizio della macro potresti inserire questa riga
Codice: Seleziona tutto
Sub ImpEspTxt2() '<<< riga esistente
Worksheets("Foglio1").select '<<<< riga da aggiungere
UR = Range("A" & Rows.Count).End(xlUp).Row '<<<< riga esistente

se ancora non va subito dopo inserisci
Codice: Seleziona tutto
Cells.select


alealfa77 ha scritto:tima cosa, è possibile limitare il file di Output a quante righe sono effettivamente compilate?



Per i motivi sopra menzionati dovresti avere solo le righe con dati
perché cosa hai, invece?

Ciao


Ho inserito il codice sopra riportato in testa alla sezione della macro che salva il file di output in .txt.
Ma mi scrive solo la prima riga... :(
In fondo ho un numero imprecisato di righe bianche.
alealfa77
Utente Junior
 
Post: 23
Iscritto il: 24/10/11 14:04

Re: Salvataggio da .xls a .txt con Visual Basic

Postdi Flash30005 » 26/10/11 13:59

Si può avere questo benedetto file xls?

se hai dati sensibili puoi inviarmelo in privato

ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Salvataggio da .xls a .txt con Visual Basic

Postdi alealfa77 » 26/10/11 14:09

Nessun problema, li ho appena caricati sul fileserve:

http://www.fileserve.com/file/sMyECyA/firenze.xls

http://www.fileserve.com/file/YykUMAa/pisa.xls

Sono due perchè sono dei dati di due aziende diverse, con delle istruzioni leggermente diverse, ma il prodotto finale non dovrebbe cambiare.

Ti ringrazio infinitamente.
alealfa77
Utente Junior
 
Post: 23
Iscritto il: 24/10/11 14:04

Re: Salvataggio da .xls a .txt con Visual Basic

Postdi Flash30005 » 26/10/11 15:14

Ci sono alcune cose che non capisco
come mai le colonne E e F sono riempite oltre la riga 295
se conosci il numero di riga faresti bene a inserire fino a quella riga le cccccc e le nnnnnnn
e quindi UR potrebbe essere 295 e non calcolato
(calcolo che per qualche motivo non avviene se non viene salvato il file chiuso e poi riaperto)

Le macro non dovrebbero essere inserite nel foglio ma in un modulo

Comunque ho sistemato il file
download

Ciao

P.s. ho messo le macro in sequenza ad esclusione della macro creafile txt che potrai inserire tu in sequenza se vorrai
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Salvataggio da .xls a .txt con Visual Basic

Postdi alealfa77 » 26/10/11 15:33

Il riempimento delle colonne oltre la riga 295 è stato un mio mancato aggiornamento delle formule inserite nel codice, in un altro file di test avevo più righe riempite.

Ora funziona tutto, siete stati veramente di grande aiuto.

Grazie ancora!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
alealfa77
Utente Junior
 
Post: 23
Iscritto il: 24/10/11 14:04

Re: Salvataggio da .xls a .txt con Visual Basic

Postdi alealfa77 » 27/10/11 10:14

Buongiorno!

Ho ancora un piccolo quesito.

Il codice di salvataggio che mi avete indicato l'ho inserito anche in un altro foglio di Excel:

http://www.fileserve.com/file/w8ezPw7/30_Creazione_Dipend30.xls.
Il file .txt viene generato regolarmente, però mi inserisce una colonna vuota (o uno spazio) tra la fine dei '°' ed i numeri, come da esempio allegato:

http://www.fileserve.com/file/8duZAXA/ORDINI.30.

Dove sbaglio?
alealfa77
Utente Junior
 
Post: 23
Iscritto il: 24/10/11 14:04

PrecedenteProssimo

Torna a Applicazioni Office Windows


Topic correlati a "Salvataggio da .xls a .txt con Visual Basic":


Chi c’è in linea

Visitano il forum: Nessuno e 16 ospiti

cron