|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Aug 2005
Città: brescia
Messaggi: 268
|
unire file excel
devo unire alcuni file di excel(237
![]() c'è un metodo per farlo velocemente senza fare copia incolla continuo, oppure una query di accodamento che accoda in automstico tutti i file? |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Jul 2005
Città: firenze
Messaggi: 1281
|
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
__________________
Ciaps desktop : AMD Ryzen 7 2700X ASUS ROG STRIX B450-F |
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: Aug 2005
Città: brescia
Messaggi: 268
|
grazie ma il tuo consiglio mi porta ben oltre le mie misere conoscenze di access(mi faro paghare un corso approfondito dalla mia ditta
![]() macro con access non ne ho mai fatte quindi non saprei da dove partire ![]() |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Jul 2005
Città: firenze
Messaggi: 1281
|
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
__________________
Ciaps desktop : AMD Ryzen 7 2700X ASUS ROG STRIX B450-F |
![]() |
![]() |
![]() |
#5 | |
Member
Iscritto dal: Aug 2005
Città: brescia
Messaggi: 268
|
Quote:
solo che non riesco a trasformare la maschera in codice ![]() al limite ci metto al qualche collega |
|
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Jul 2005
Città: firenze
Messaggi: 1281
|
devi trasformare la macro in codice non la maschera in codice, per farlo vai sul menu strumenti/macro /converti marco in visual basic
__________________
Ciaps desktop : AMD Ryzen 7 2700X ASUS ROG STRIX B450-F |
![]() |
![]() |
![]() |
#7 |
Member
Iscritto dal: Aug 2005
Città: brescia
Messaggi: 268
|
si, avevo sbagliato a digitare.
grazie ancora delle risposte(è inutile, devo proprio farmi un corsettino di access) |
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Jul 2001
Messaggi: 9947
|
Anche io ho da unire di 300 file Excel di questo tipo e con stessa struttura:
![]() Seguendo la procedura consigliata mi sbuca solo questa form dove non so mettere "Trasferiscifogliodicalcolo": ![]() ... ![]() [PS] Access 2003
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<< Più largo è il sorriso, più affilato è il coltello. Ultima modifica di Matrixbob : 30-04-2009 alle 12:47. |
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Jul 2001
Messaggi: 9947
|
Ho trovato questa, ma mi va in crash sulla istruzione in grassetto (ho vito da debug):
Codice:
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
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<< Più largo è il sorriso, più affilato è il coltello. |
![]() |
![]() |
![]() |
#10 |
Senior Member
Iscritto dal: Mar 2001
Città: PV Milano Nord
Messaggi: 3851
|
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...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 ![]() Codice:
FOR /F "usebackq delims==" %i IN (`dir /b *.xls`) DO xls2csv.exe "%i" Codice:
type *.csv >> finale.csv ![]()
__________________
"W la foca, che dio la benedoca"
poteva risolvere tutto la sinistra negli anni in cui ha governato e non l'ha fatto. O sono incapaci o sta bene anche a "loro" cosi. L'una o l'altra inutile scandalizzarsi.[plutus] |
![]() |
![]() |
![]() |
#11 | |
Senior Member
Iscritto dal: Jul 2001
Messaggi: 9947
|
Quote:
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. ![]()
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<< Più largo è il sorriso, più affilato è il coltello. |
|
![]() |
![]() |
![]() |
#12 | |
Senior Member
Iscritto dal: Mar 2001
Città: PV Milano Nord
Messaggi: 3851
|
Quote:
cmq usa i filtri di excel e le rimuovi al volo ![]()
__________________
"W la foca, che dio la benedoca"
poteva risolvere tutto la sinistra negli anni in cui ha governato e non l'ha fatto. O sono incapaci o sta bene anche a "loro" cosi. L'una o l'altra inutile scandalizzarsi.[plutus] |
|
![]() |
![]() |
![]() |
#13 |
Member
Iscritto dal: Dec 2001
Messaggi: 217
|
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. |
![]() |
![]() |
![]() |
#14 |
Junior Member
Iscritto dal: Jan 2011
Messaggi: 1
|
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. |
![]() |
![]() |
![]() |
#15 |
Senior Member
Iscritto dal: Dec 2000
Città: Pozzomaggiore (SS)
Messaggi: 12580
|
Ora che abbiamo la discussione ufficiale direi che questo topic può essere abbandonato...
http://www.hwupgrade.it/forum/showthread.php?t=2102242 |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 22:05.