› Sviluppare funzionalita su Microsoft Office con VBA › esportazione di massa di tutte le cartelle di lavoro in txt ma con formattazione
-
AutoreArticoli
-
buonasera
ho trovato questa procedura che esporta tutte le cartelle di lavoro in txt ma non esporta nel formato che mi occorre con formattazione dello spazio tra i numeri allego esempio dei numeri e qui la procedura se mi potete consigliare la modifica da eseguire grazie:
Sub ExportSheetsToText()
Dim xWs As Worksheet
Dim xTextFile As String
For Each xWs In Application.ActiveWorkbook.Worksheets
xWs.Copy
xTextFile = CurDir & "\" & xWs.Name & ".txt"
Application.ActiveWorkbook.SaveAs Filename:=xTextFile, FileFormat:=xlText
Application.ActiveWorkbook.Saved = True
Application.ActiveWorkbook.Close
Next
End SubAllegati:
You must be logged in to view attached files.Te l'ho copiata dal programma così com'è devi solo modificare l'indirizzo dove vuoi salvare i tuoi File e il foglio1 dove hai lo sviluppo
Sub Esporta_Colonne() Application.ScreenUpdating = False Dim Riga, Colonna, Y, I As Integer Colonna = 5 Riga = WorksheetFunction.CountA(Foglio1.Range("A:A")) ChDir ThisWorkbook.Path & "\Salva" & "\" '<<<<<< Da modificare File = Application.GetSaveAsFilename(InitialFileName:=NomeFile, fileFilter:="File.Txt, *.txt,Testo Unicode, ", Title:="Lottoscar - Salva con Nome") If File <> False Then Dim FileExist As Boolean NomeFile = File If Dir(MyDir & "" & NomeFile) <> "" Then Select Case MsgBox("" & NomeFile _ & vbCrLf & "File già esistente." _ & vbCrLf & " " _ & vbCrLf & "Sostituire il file?" _ , vbYesNo Or vbExclamation Or vbDefaultButton1, "Lottoscar - Salva con Nome") Case vbNo Exit Sub End Select End If Application.DisplayAlerts = False Open NomeFile For Output As #1 For Y = 1 To Riga For I = 1 To Colonna valore = Cells(Y, I).Value If I = Colonna Then valore = valore & vbCrLf Else valore = valore & " " End If Print #1, valore; Next I Next Y Close #1 End If End Sub
Scusa per inserire il salvataggio nella stessa cartella di lavoro dove e stato aperto il file come fare?
Grazie
Giuseppe
Sostituisci la prima riga con la seconda
ChDir ThisWorkbook.Path & "\Salva" & "\" '<<<<<< Da modificare
ChDir ThisWorkbook.Path & "\"
Buongiorno sostituito riga ma ho errore runtime 76
Grazie
riporto procedura
Sub Esporta_Colonne()
Application.ScreenUpdating = False
Dim Riga, Colonna, Y, I As Integer
Colonna = 5
Riga = WorksheetFunction.CountA(Foglio1.Range("A:A"))
ChDir ThisWorkbook.Path & "\"
File = Application.GetSaveAsFilename(InitialFileName:=NomeFile, fileFilter:="File.Txt, *.txt,Testo Unicode, ", Title:="Lottoscar - Salva con Nome")
If File <> False Then
Dim FileExist As Boolean
NomeFile = File
If Dir(MyDir & "" & NomeFile) <> "" Then
Select Case MsgBox("" & NomeFile _
& vbCrLf & "File già esistente." _
& vbCrLf & " " _
& vbCrLf & "Sostituire il file?" _
, vbYesNo Or vbExclamation Or vbDefaultButton1, "Lottoscar - Salva con Nome")
Case vbNo
Exit Sub
End Select
End If
Application.DisplayAlerts = False
Open NomeFile For Output As #1
For Y = 1 To Riga
For I = 1 To Colonna
valore = Cells(Y, I).Value
If I = Colonna Then
valore = valore & vbCrLf
Else
valore = valore & " "
End If
Print #1, valore;
Next I
Next Y
Close #1
End If
End SubRiga = WorksheetFunction.CountA(Foglio1.Range("A:A")) ' è sul foglio1 se sei su un'altro foglio devi modificare il foglio
Vedi il File allegato
Allegati:
You must be logged in to view attached files.Non riesco i miei fogli di lavoro si chiamano 1 fino a 224
Grazie
Giuseppe
Non riesco i miei fogli di lavoro si chiamano 1 fino a 224
E' la stessa cosa la macro va ovunque , allega il tuo File che vediamo
Si ma non ho capito cosa devi fare , hai 224 fogli cosa li devi salvare tutti? e in che modo li vuoi salvare?
La riga che hai modificato non va così
vedi il File allegato che salva il foglio1
Allegati:
You must be logged in to view attached files.Si tutti fogli di lavoro in txt separatore lo spazio come faile allegato salvato manualmente.
Grazie
Giuseppe
Allegati:
You must be logged in to view attached files.Si tutti fogli di lavoro in txt separatore lo spazio come faile allegato salvato manualmente.
Un File unico o 224 File
no tutti separati
Grazie
Giuseppe
La prova falla in una cartella vuota
Il File è quì sotto
Allegati:
You must be logged in to view attached files.Vedi questo il primo salvava sempre il foglio1 , poi ho eliminato l'avviso di sovrascrittura
Allegati:
You must be logged in to view attached files.errore 75 in allegato
Allegati:
You must be logged in to view attached files.Senza nulla togliere a @oscar, se vuoi provare questo, fa la stessa cosa con un concetto leggermente diverso, ma proprio iniezie.
L'ho provato fino al foglio 3 e funzionava.
Non ho messo nessun pulsante, l'ho provato con F5. Come far partire la Macro decidilo Tu.
Allegati:
You must be logged in to view attached files.Grazie Aldo funziona mi chiede di confermare il nome lo faro 224 volte nessun problema ideale sarebbe stato il salvataggio nella cartella di lavoro dei 224 files txt.
Grazie mille faccio una donazione questo è doveroso.
Giuseppe
Questo penso faccia quello che chiedi.
Salva tutti i fogli in un txt che ha come nome il nome del foglio e li posiziona nella stessa cartella dove e' posizionato il file excel.
Chiede solo se sovrascrivere.
Allegati:
You must be logged in to view attached files.Se tu volessi ritornare alla versione con il "Salva con nome" basta tu tolga il commento alla riga:
file = Application.GetSaveAsFilename(InitialFileName:=xWs.Name, fileFilter:="File.Txt, *.txt,Testo Unicode, ", Title:="Lottoscar - Salva con Nome")
e lo metti alla riga:
file = xWs.Name & ".txt"
perfetto Grazie!!!!!!!!!!!!!!!!!!!!!
-
AutoreArticoli