| | Post: 3.673 | Registrato il: 13/03/2012
| Città: LIVORNO | Età: 78 | Utente Master | 2010 | | OFFLINE | |
|
30/01/2017 18:41 | |
Option Base 1
Sub crea_TXT_nominativi()
LR = Cells(Rows.Count, "A").End(xlUp).Row
numvuote = WorksheetFunction.CountBlank(Range("A1:A" & LR))
numpiene = LR - numvuote
DestFile = "C:\prova_file\file.txt" ' <<<< da modificare
FileNum = FreeFile()
arr = Array(72, 72, 4, 60, 10, 4, 72, 1, 16, 7) ' lunghezze campi
Open DestFile For Output As #FileNum
For r = 1 To numpiene
s = ""
For c = 1 To 10
s = s & Cells(r, c).Text & Space(arr(c) - Len(Cells(r, c).Text))
Next
Print #FileNum, s
Next
Close #FileNum
End Sub
----------
Win 10 - Excel 2010
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta |
|
| | Post: 20 | Registrato il: 19/01/2017
| Città: MILANO | Età: 56 | Utente Junior | 2010 | | OFFLINE | |
|
30/01/2017 19:10 | |
Ho provato e sembra veramente perfetto, adesso calcola solo le righe attive, domani faccio la prova della verità |
| | Post: 21 | Registrato il: 19/01/2017
| Città: MILANO | Età: 56 | Utente Junior | 2010 | | OFFLINE | |
|
31/01/2017 10:08 | |
Finalmente è ok, accettato dal sistema non mi pare vero grazie, ho impostato il percorso desktop per comodità ma visto che cambia da pc a pc esiste un percorso per cosi dire "universale"?
|
| | Post: 3.676 | Registrato il: 13/03/2012
| Città: LIVORNO | Età: 78 | Utente Master | 2010 | | OFFLINE | |
|
31/01/2017 10:28 | |
se il file di testo lo vuoi nella stessa cartella in cui si trova il file con la macro
DestFile = ThisWorkbook.Path & "\file.txt"
----------
Win 10 - Excel 2010
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta |
| | Post: 22 | Registrato il: 19/01/2017
| Città: MILANO | Età: 56 | Utente Junior | 2010 | | OFFLINE | |
|
31/01/2017 11:00 | |
Perfetto grazie, adesso metterò al lavoro questa cartella piu tardi approfitterò di un altro aiuto per il csv da tab1 che soffre degli stessi problemi del txt (famosi campi vuoti non vuoti) |
| | Post: 23 | Registrato il: 19/01/2017
| Città: MILANO | Età: 56 | Utente Junior | 2010 | | OFFLINE | |
|
31/01/2017 14:51 | |
Come anticipato sto cercando di replicare la stessa cosa per creare un csv da tab1, bastano solo separatoti con virgola senza spazi, ho cercato di apportare qualche modifica al codice del txt che lavora benissimo e lascia le righe sotto vuote, il csv lo crea ma su una riga unica senza separatori, qua sotto riporto il codice che ho modificato:
Option Base 1
Sub crea_CSV ()
LR = Cells(Rows.Count, "A").End(xlUp).Row
numvuote = WorksheetFunction.CountBlank(Range("A1:A" & LR))
numpiene = LR - numvuote
DestFile = ThisWorkbook.Path & "\file.csv" ' <<<< da modificare
FileNum = FreeFile()
arr = Array(72, 72, 4, 60, 10, 4, 72, 1, 16, 7) ' basta la virgola
Open DestFile For Output As #FileNum
For r = 1 To numpiene
s = ""
For c = 1 To 10
s = s & Cells(r, c).Text & Space(arr(c) - Len(Cells(r, c).Text))
Next
Print #FileNum, s
Next
Close #FileNum
MsgBox "FILE CSV creato con successo", vbOKOnly ' aggiunto
End Sub
[Modificato da aquila-67 31/01/2017 15:09] |
| | Post: 30 | Registrato il: 19/01/2017
| Città: MILANO | Età: 56 | Utente Junior | 2010 | | OFFLINE | |
|
16/02/2017 10:05 | |
Lasciando per il momento da parte il file csv, avrei la necessita tornando indietro di qualche post, di poter scegliere la destinazione del file di testo e eventualmente la sovrascrittura, adesso è impostato sulla stessa directory del foglio. grazie anticipatamente |
| | Post: 3.701 | Registrato il: 13/03/2012
| Città: LIVORNO | Età: 78 | Utente Master | 2010 | | OFFLINE | |
|
16/02/2017 18:34 | |
invece di
DestFile = ThisWorkbook.Path & "\file.txt"
scrivi il percorso
DestFile = "C:\miadir\file.txt"
----------
Win 10 - Excel 2010
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta |
| | Post: 31 | Registrato il: 19/01/2017
| Città: MILANO | Età: 56 | Utente Junior | 2010 | | OFFLINE | |
|
16/02/2017 20:21 | |
ho provato ma mi dice "impossibile trovare il percorso" ho fatto delle prove ma uguale, non so se può servire utilizzo seven |
| | Post: 3.702 | Registrato il: 13/03/2012
| Città: LIVORNO | Età: 78 | Utente Master | 2010 | | OFFLINE | |
|
17/02/2017 12:53 | |
ovviamente devi inserire un percorso esistente, solo tu puoi farlo
----------
Win 10 - Excel 2010
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta |
| | Post: 32 | Registrato il: 19/01/2017
| Città: MILANO | Età: 56 | Utente Junior | 2010 | | OFFLINE | |
|
17/02/2017 13:21 | |
con xp non c'erano problemi con seven è diventato piu complicato non riesco a trovare una stringa del tipo c: utenti utente corrente ecc che funzioni |
| | Post: 0 | Registrato il: 20/02/2017
| Utente Junior | | OFFLINE | |
|
20/02/2017 21:55 | |
|
| | Post: 3.708 | Registrato il: 13/03/2012
| Città: LIVORNO | Età: 78 | Utente Master | 2010 | | OFFLINE | |
|
20/02/2017 22:24 | |
aquila-67, 17/02/2017 13.21:
con xp non c'erano problemi con seven è diventato piu complicato non riesco a trovare una stringa del tipo c: utenti utente corrente ecc che funzioni
vai nella cartella che vuoi utilizzare, clicca col destro su un file di quella cartella, scegli proprietà, ti fa vedere il percorso completo
----------
Win 10 - Excel 2010
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta |
| | Post: 33 | Registrato il: 19/01/2017
| Città: MILANO | Età: 56 | Utente Junior | 2010 | | OFFLINE | |
|
21/02/2017 16:08 | |
ok,grazie |
| | Post: 37 | Registrato il: 19/01/2017
| Città: MILANO | Età: 56 | Utente Junior | 2010 | | OFFLINE | |
|
01/03/2017 12:28 | |
Buongiorno, rieccomi con un altro problema, ho la necessità di esportare in un foglio csv i dati riportati nel foglio "tab2", nell'esempio riportato, ho provato molte macro reperite in rete e adattate, ma senza successo, premetto che il csv ideale dovrebbe essere con virgole e esportare solo le righe piene del tab2 tralasciando le vuote per evitare i problemi gia successi con il txt. riallego lo stesso esempio per comodità, grazie |
| | Post: 3.735 | Registrato il: 13/03/2012
| Città: LIVORNO | Età: 78 | Utente Master | 2010 | | OFFLINE | |
|
01/03/2017 17:49 | |
Sub tocsv()
Sheets("tab2").Activate
LR = Cells(Rows.Count, "A").End(xlUp).Row
numvuote = WorksheetFunction.CountBlank(Range("A1:A" & LR))
numpiene = LR - numvuote
sn = Range("A1:J" & numpiene)
For j = 1 To UBound(sn)
c00 = c00 & Join(Application.Index(sn, j, 0), ",") & vbCrLf
Next
CreateObject("scripting.filesystemobject").createtextfile("F:\Download\summary.csv").write c00
End Sub
modifica il percorso del file di output
----------
Win 10 - Excel 2010
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta |
| | Post: 38 | Registrato il: 19/01/2017
| Città: MILANO | Età: 56 | Utente Junior | 2010 | | OFFLINE | |
|
01/03/2017 22:13 | |
Grazie, preciso come sempre, da prove fatte a casa è ok, domani lo metto al lavoro |
| | Post: 39 | Registrato il: 19/01/2017
| Città: MILANO | Età: 56 | Utente Junior | 2010 | | OFFLINE | |
|
02/03/2017 10:20 | |
Ok, per fare come il file di testo fatto all'inizio ed avere il file esportato nella stessa directory del programma (in modo generico cosi se mi sposto di pc anche con chiavette) non devo cambiare percorso come devo impostare?
Ps. con questo spero di aver finito di scocciare almeno per questa cosa. |
| | Post: 47 | Registrato il: 19/01/2017
| Città: MILANO | Età: 56 | Utente Junior | 2010 | | OFFLINE | |
|
28/06/2017 12:19 | |
assegnare nome al file txt in base a determinata cella Buongiorno, sto utilizzando la macro qui sotto per creare file txt modificando come già suggerito la destinazione file in ---DestFile = ThisWorkbook.Path & "\file.txt" --- così si crea nella stessa directory del programma, ho la necessità di nominare di volta in volta il file creato con un nome indicato in una data cella di un foglio, è possibile farlo modificando questa macro?
patel45, 30/01/2017 18.41:
Option Base 1
Sub crea_TXT_nominativi()
LR = Cells(Rows.Count, "A").End(xlUp).Row
numvuote = WorksheetFunction.CountBlank(Range("A1:A" & LR))
numpiene = LR - numvuote
DestFile = "C:\prova_file\file.txt" ' <<<< da modificare
FileNum = FreeFile()
arr = Array(72, 72, 4, 60, 10, 4, 72, 1, 16, 7) ' lunghezze campi
Open DestFile For Output As #FileNum
For r = 1 To numpiene
s = ""
For c = 1 To 10
s = s & Cells(r, c).Text & Space(arr(c) - Len(Cells(r, c).Text))
Next
Print #FileNum, s
Next
Close #FileNum
End Sub
|
| | Post: 3.904 | Registrato il: 13/03/2012
| Città: LIVORNO | Età: 78 | Utente Master | 2010 | | OFFLINE | |
|
28/06/2017 13:30 | |
cosa scrivi nella cella ? il percorso completo ?
----------
Win 10 - Excel 2010
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta |
| | Post: 48 | Registrato il: 19/01/2017
| Città: MILANO | Età: 56 | Utente Junior | 2010 | | OFFLINE | |
|
28/06/2017 13:51 | |
Attualmente utilizzo questo codice inserito nella macro: DestFile = ThisWorkbook.Path & "\nominativi.txt" ' <<<< da modificare. La destinazione è giusta (stessa della cartella), il nome "nominativi" dovrebbe essere variabile in base al nome contenuto in una data cella di un foglio che farò (stessa cartella), che corrisponderebbe poi al nome di chi lo ha creato in modo da non dover essere successivamente rinominato manualmente. Quindi chi utilizza il programma ha inserito il proprio nome in un foglio e cella cosi da trovarsi il file salvato e nominato.
macro completa Sub crea_file_nominativi()
LR = Cells(Rows.Count, "A").End(xlUp).Row
numvuote = WorksheetFunction.CountBlank(Range("A1:A" & LR))
numpiene = LR - numvuote
DestFile = ThisWorkbook.Path & "\nominativi.txt" ' <<<< da modificare
FileNum = FreeFile()
arr = Array(72, 72, 4, 60, 10, 4, 72, 1, 16, 7) ' lunghezze campi
Open DestFile For Output As #FileNum
For r = 1 To numpiene
s = ""
For c = 1 To 10
s = s & Cells(r, c).Text & Space(arr(c) - Len(Cells(r, c).Text))
Next
Print #FileNum, s
Next
Close #FileNum
MsgBox "FILE TXT nominativi creato con successo nella STESSA CARTELLA del programma", vbOKOnly
End Sub
[Modificato da aquila-67 28/06/2017 14:02] |
| | Post: 3.907 | Registrato il: 13/03/2012
| Città: LIVORNO | Età: 78 | Utente Master | 2010 | | OFFLINE | |
|
28/06/2017 15:03 | |
ma non hai risposto alla domanda
----------
Win 10 - Excel 2010
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta |
| | Post: 49 | Registrato il: 19/01/2017
| Città: MILANO | Età: 56 | Utente Junior | 2010 | | OFFLINE | |
|
28/06/2017 16:13 | |
nella cella scriverò il nome di chi crea il file, il percorso di salvataggio è la stessa cartella del programma, non so se è questo che ti serve sapere... |
| | Post: 3.908 | Registrato il: 13/03/2012
| Città: LIVORNO | Età: 78 | Utente Master | 2010 | | OFFLINE | |
|
28/06/2017 19:08 | |
DestFile = ThisWorkbook.Path & "\" & range("A1") & ".txt"
----------
Win 10 - Excel 2010
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta |
| | Post: 50 | Registrato il: 19/01/2017
| Città: MILANO | Età: 56 | Utente Junior | 2010 | | OFFLINE | |
|
28/06/2017 23:24 | |
ok funziona perfettamente ma se creo il campo sulla cella g12 del foglio9 come modifico? (capisco adesso che forse è questo che volevi sapere) |
| | Post: 3.909 | Registrato il: 13/03/2012
| Città: LIVORNO | Età: 78 | Utente Master | 2010 | | OFFLINE | |
|
29/06/2017 11:10 | |
DestFile = ThisWorkbook.Path & "\" & Sheets(9).range("G12") & ".txt"
----------
Win 10 - Excel 2010
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta |
| | Post: 51 | Registrato il: 19/01/2017
| Città: MILANO | Età: 56 | Utente Junior | 2010 | | OFFLINE | |
|
29/06/2017 11:39 | |
ok funziona perfettamente grazie per la pazienza. |
| | Post: 52 | Registrato il: 19/01/2017
| Città: MILANO | Età: 56 | Utente Junior | 2010 | | OFFLINE | |
|
03/10/2017 14:16 | |
Salve a tutti, riprendo questa discussione perchè utilizzando questa macro a volte si crea un problema, non dovuto alla macro in oggetto a questa discussione ma a chi inserisce i dati, mi spiego meglio, nel foglio di inserimento dei soggetti a volte vengono inseriti inavvertitamente spazi invisibili davanti ai nomi e questo crea problemi all'elaborazione perchè vengono di pari passo riportati nel file txt creati da questa macro, chiedo se possibile modificando il codice di eliminare questi spazi ma solo all'inizio dei campi in quanto un nome composto può contenere spazi. Non so se sono riuscito a spiegarmi. |
| | Post: 53 | Registrato il: 19/01/2017
| Città: MILANO | Età: 56 | Utente Junior | 2010 | | OFFLINE | |
|
05/10/2017 09:26 | |
Buongiorno, pensate che questa cosa non sia fattibile proprio? |
| | Post: 0 | Registrato il: 24/10/2019
| Età: 41 | Utente Junior | excel 2016 | | OFFLINE | |
|
24/10/2019 12:29 | |
macro per creare file txt da foglio excel Buongiorno a tutti,
mi chiamo Stefano e sono nuovo del forum. Ho letto qui molte cose interessanti e vorrei collaborare un pò con le mie conoscenze e chiedervi qualche aiuto.
Vorrei fare una macro che mi esportasse un file excel con determinate tabulazioni in modo da farlo leggere al mio programma esterno.
Secondo voi è possibile?
Grazie. |
|
|