View Full Version : unire file excel
Lord Amarant
26-04-2007, 08:07
devo unire alcuni file di excel(237:muro: ) in uno solo per poter poi lavorarlo in access ed incrociare con un altro database.
c'è un metodo per farlo velocemente senza fare copia incolla continuo, oppure una query di accodamento che accoda in automstico tutti i file?
unire file excel direi di no però potresti crearti una macro o un codice di importazione in access. In relatà potresti creare una macro automatizzando l'importazione di un file, poi lo trasformi in codice (se sai cscrivere direttamente il codice salta questo passaggio) poi ci metti un ciclo for next ed è fatto
Lord Amarant
26-04-2007, 09:34
grazie ma il tuo consiglio mi porta ben oltre le mie misere conoscenze di access(mi faro paghare un corso approfondito dalla mia ditta:read: ).
macro con access non ne ho mai fatte quindi non saprei da dove partire:boh:
Andiamo per gradi:
il file excel lo devi importare in access, generalmente faresti cosi: menu file/carica dati esterni/ file excel e via.
Invece dal menu di access vai su macro /crea nuova macro e seleziona Trasferiscifogliodicalcolo nelle proprietà ti richiede il nome della tabella dove importare e il nome del file da cui importare (compreso il percorso). Fatto questo hai tre possibilità:
copi per 237 volte la riga della macro cambiando il nome del file
esegui 237 volte la macro cambiando il nome del file
vai sulla finestra moduli e trasformi la macro appena creata in codice, nel codice vedrai dove e come nomina il file. ora puoi manipolare il codice come vuoi per ripeterlo 237 volte con il cambiamento di nome
Tutto quello che ti ho scritto sopra non è un metodo ortodosso per fare quello che vuoi però è il sistema più semplice
Lord Amarant
27-04-2007, 14:12
Andiamo per gradi:
il file excel lo devi importare in access, generalmente faresti cosi: menu file/carica dati esterni/ file excel e via.
Invece dal menu di access vai su macro /crea nuova macro e seleziona Trasferiscifogliodicalcolo nelle proprietà ti richiede il nome della tabella dove importare e il nome del file da cui importare (compreso il percorso). Fatto questo hai tre possibilità:
copi per 237 volte la riga della macro cambiando il nome del file
esegui 237 volte la macro cambiando il nome del file
vai sulla finestra moduli e trasformi la macro appena creata in codice, nel codice vedrai dove e come nomina il file. ora puoi manipolare il codice come vuoi per ripeterlo 237 volte con il cambiamento di nome
Tutto quello che ti ho scritto sopra non è un metodo ortodosso per fare quello che vuoi però è il sistema più semplice
grazie mille.
solo che non riesco a trasformare la maschera in codice:doh:
al limite ci metto al qualche collega
grazie mille.
solo che non riesco a trasformare la maschera in codice:doh:
al limite ci metto al qualche collega
devi trasformare la macro in codice non la maschera in codice, per farlo vai sul menu strumenti/macro /converti marco in visual basic
Lord Amarant
27-04-2007, 17:44
si, avevo sbagliato a digitare.
grazie ancora delle risposte(è inutile, devo proprio farmi un corsettino di access)
Matrixbob
30-04-2009, 12:43
Anche io ho da unire di 300 file Excel di questo tipo e con stessa struttura:
http://img522.imageshack.us/img522/8611/immagine0.jpg
Seguendo la procedura consigliata (http://www.hwupgrade.it/forum/showpost.php?p=16885696&postcount=4) mi sbuca solo questa form dove non so mettere "Trasferiscifogliodicalcolo":
http://img412.imageshack.us/img412/2233/immagineo.jpg
... :O
[PS]
Access 2003
Matrixbob
30-04-2009, 13:18
Ho trovato questa, ma mi va in crash sulla istruzione in grassetto (ho vito da debug):
Sub OpenAndCopy()
Dim i As Integer
i = 1
Dim vaFileName As Variant
Const MyDir As String = "C:\"
With Application.FileSearch
.NewSearch
.LookIn = MyDir
.SearchSubFolders = False
.FileType = msoFileTypeExcelWorkbooks
If .Execute > 0 Then
Application.ScreenUpdating = False
For Each vaFileName In .FoundFiles
ProcessData vaFileName, i
i = i + 1
Next
Else
MsgBox "Nessun foglio excel trovato"
End If
Application.ScreenUpdating = True
End With
End Sub
Sub ProcessData(ByVal Fname As String, ByVal contatore As Double)
Dim wbkData As Workbook, wsData As Worksheet, wsSummary As Worksheet
Dim nome_precedente As String
Workbooks.Open (Fname)
ActiveWorkbook.Sheets(1).Select
nome_precedente = ActiveWorkbook.Name
nome = ActiveSheet.Name
Cells.Select
Selection.Copy
ThisWorkbook.Activate
ThisWorkbook.Sheets.Add
ActiveWorkbook.Sheets(contatore).Sel ect
ActiveSheet.Paste
'rinomina il foglio copiato, in modo che non ne esista un altro con lo stesso nome
ActiveSheet.Name = nome & "copia_" & contatore
Workbooks(nome_precedente).Activate
Application.DisplayAlerts = False
Application.DisplayNoteIndicator = False
ActiveWorkbook.Close savechanges:=False
End Sub
bisognerebbe capire come sono strutturati quei files...
dato che sono a distanza di 1 secondo tra di loro mi sa che sono semplici...
io lascerei perdere macro e access e farei così:
1- scarica questo http://www.download3000.com/download-xls2csv-count-reg-53215.html
2- copia l'eseguibile nella cartella dove hai i files xls da unire
3- apri una shell di dos, vai nella cartella di cui sopra e scrivi PARO PARO ;) :
FOR /F "usebackq delims==" %i IN (`dir /b *.xls`) DO xls2csv.exe "%i"
4- a questo punto hai tutti i file csv da unire + facilmente e sempre nella stessa cartella lanci questo comando:
type *.csv >> finale.csv
a questo punto nel file FINALE hai tutti i file dentro.
;)
Matrixbob
05-05-2009, 11:11
bisognerebbe capire come sono strutturati quei files...
dato che sono a distanza di 1 secondo tra di loro mi sa che sono semplici...
io lascerei perdere macro e access e farei così:
1- scarica questo http://www.download3000.com/download-xls2csv-count-reg-53215.html
2- copia l'eseguibile nella cartella dove hai i files xls da unire
3- apri una shell di dos, vai nella cartella di cui sopra e scrivi PARO PARO ;) :
FOR /F "usebackq delims==" %i IN (`dir /b *.xls`) DO xls2csv.exe "%i"
4- a questo punto hai tutti i file csv da unire + facilmente e sempre nella stessa cartella lanci questo comando:
type *.csv >> finale.csv
a questo punto nel file FINALE hai tutti i file dentro.
;)
TNX funziona!
Ho soltanto un piccolo side-effect che è quello di vedersi ripetere la prima riga di testata del Excel che sono una specie di titolo delle uniche 3 colonne che il file hanno. :)
TNX funziona!
Ho soltanto un piccolo side-effect che è quello di vedersi ripetere la prima riga di testata del Excel che sono una specie di titolo delle uniche 3 colonne che il file hanno. :)
purtroppo il dos è un po limitato per certe cose...
cmq usa i filtri di excel e le rimuovi al volo :D
Salve a tutti
Mi ricollego a questa vecchia discussione in quanto vorrei convertire dei file xls in file csv tramite riga di comando.
Per ora sto usando Converte XLS come programma che mi permette di salvare un job che eseguo popi da riga di comando:
ConvertXLS.exe /J"Ordini.SII"
Purtroppo è un'applicaziona shareware e volevo quindi provare la soluzione proposta in questo thread
Ottengo però questo errore:
i" non atteso.
bagigetto
17-01-2011, 15:39
Hai sbagliato a scrivere sicuramente.E' successo anche a me.
Prova a copiare il comando selezionandolo e premendo CTRL+C
Poi vai sulla finestra DOS e clicca con il destro sul mouse e scegli incolla.
(Il CTRL+V non funziona ma con il mouse si).
L'importante è che sei nella root giusta.
A me, incredibilmente, adesso funziona.
Unico problema è che i miei dati non vengono interpretati giusti quando reimporto in excel.
Ora che abbiamo la discussione ufficiale direi che questo topic può essere abbandonato...
http://www.hwupgrade.it/forum/showthread.php?t=2102242
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.