| | Post: 1 | Registrato il: 17/12/2012
| Città: ROMA | Età: 58 | Utente Junior | | OFFLINE | |
|
17/12/2012 18:19 | |
Salve a tutti, premetto che è il mio primo intervento ed inizio...chiedendovi aiuto per importare dei dati XML in maniera automatica.
Mi spiego meglio: un software mi produce giornalmente una serie di file .xml strutturati sempre nello stesso modo ed ho necessità di importarli in automatico, accodandoli, in un file excel. Idealmente la riga delle intestazioni andrebbe cancelalta
Mi aiutate a creare una macro per farlo? |
|
| | Post: 1.231 | Registrato il: 28/06/2011
| Città: AGORDO | Età: 70 | Utente Veteran | 2013 | | OFFLINE | |
|
17/12/2012 18:54 | |
Se metti la firma (http://freeforumzone.leonardo.it/discussione.aspx?idd=9561389)
Se alleghi un files piccolo che esce dal software ....senza dati sensibili
Se alleghi un files generale di come desideri ottenere i dati.
Vediamo come possiamo fare. Excel 2013 |
| | Post: 1 | Registrato il: 17/12/2012
| Città: ROMA | Età: 58 | Utente Junior | | OFFLINE | |
|
17/12/2012 21:30 | |
|
| | Post: 2 | Registrato il: 17/12/2012
| Città: ROMA | Età: 58 | Utente Junior | | OFFLINE | |
|
18/12/2012 10:47 | |
raffaele1953, 17/12/2012 18:54:
Se metti la firma (http://freeforumzone.leonardo.it/discussione.aspx?idd=9561389)
Se alleghi un files piccolo che esce dal software ....senza dati sensibili
Se alleghi un files generale di come desideri ottenere i dati.
Vediamo come possiamo fare.
Hai ragione! Non sono molto pratico di forum e ieri mi è partito il messaggio incompleto...
Allego sia uno dei file xml sia come vorrei fosse quello excel (molto semplice: accodando i vari xml uno sotto l'altro. Nell'esempio le prime 3 righe vengono dal file che alelgo, le successive da un'altro file)
Una nota: i file xml hanno sempre nomi diversi ma sono nella stessa cartella. Il numero di righe può variare mentre le colonne sono sempre le stesse
Ciao e grazie ancora
Carlo |
| | Post: 1.236 | Registrato il: 28/06/2011
| Città: AGORDO | Età: 70 | Utente Veteran | 2013 | | OFFLINE | |
|
18/12/2012 13:13 | |
Non se è colpa mia, mà ci sono problemi.
Sub Macro1()
Dim cartella As String
Dim strFile As String
cartella = "C:\Users\xxxxx\Desktop\excel\Prova\"
With ActiveWorkbook.XmlMaps("FlexToolChange_mapping")
.ShowImportExportValidationErrors = False
.AdjustColumnWidth = True
.PreserveColumnFilter = True
.PreserveNumberFormatting = True
.AppendOnImport = True
End With
strFile = Dir(cartella & "*.xml")
Do While strFile <> ""
ActiveWorkbook.XmlImport URL:=cartella & strFile, ImportMap:=Nothing, _
Overwrite:=False, Destination:=Range("$A$1")
strFile = Dir
Loop
End Sub
Invece volevo dirti una cosa che a me sembra molto facile.
Da Excel premi su sviluppo, poi nel riquadro XML premi importa (vai nella cartella) e selezioni tutti i files.
Mio sembra facile Excel 2013 |
| | Post: 3 | Registrato il: 17/12/2012
| Città: ROMA | Età: 58 | Utente Junior | | OFFLINE | |
|
18/12/2012 13:59 | |
Grazie!! Provo subito la macro.
La funzione importa da developer mi da un errore di"cannot find an xml map..."
Ti faccio sapere
Carlo |
| | Post: 0 | Registrato il: 07/09/2017
| Città: LANGHIRANO | Età: 53 | Utente Junior | 2013 | | OFFLINE | |
|
07/09/2017 00:52 | |
Ciao a tutti, riapro questa discussione per un'esigenza analoga.
Sto usando il portale dell'Agenzia delle Entrate per compilare lo spesometro trimestrale. Per ogni cliente/fornitore il sistema genera un file xml che contiene i dati delle fatture emesse/ricevute.
Vorrei poter caricare tutti gli xml generati (come chiedeva anche cmarti15) così da poter fare una semplice somma di tutti i valori incolonnati (imponibili, iva, ecc) e verificare di non aver fatto errori confrontando le somme ottenute con i valori che ho già nei registri iva.
Ho provato con la procedura indicata da raffaele1953 (Da Excel premi su sviluppo, poi nel riquadro XML premi importa (vai nella cartella) e selezioni tutti i files.) ma excel 2013 mi riporta un errore:
impossibile trovare un mapping xml corrispondente ai dati.
Qualcuno può aiutarmi? |
| | Post: 3.943 | Registrato il: 13/03/2012
| Città: LIVORNO | Età: 78 | Utente Master | 2010 | | OFFLINE | |
|
07/09/2017 07:17 | |
anche per te vale lo stesso discorso, allega un file xml.
Insieme ai file xml che scarichi non c'è un file di mapping ?
Intanto prova questa
Sub Macro1()
Workbooks.OpenXML Filename:="C:\Documenti\rubrica.xml", LoadOption:=xlXmlLoadImportToList
End Sub [Modificato da patel45 07/09/2017 07:53]
----------
Win 10 - Excel 2010
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta |
| | Post: 1 | Registrato il: 07/09/2017
| Città: LANGHIRANO | Età: 53 | Utente Junior | 2013 | | OFFLINE | |
|
07/09/2017 10:19 | |
Scusate, eccoli.
PS: scusate ma il codice di qui sopra non ho idea di dove metterlo. Avevo anche provato a creare una macro con il codice dei post precedenti ma mi dava un errore anche li. [Modificato da Gran Giullare 07/09/2017 17:06] |
| | Post: 2 | Registrato il: 07/09/2017
| Città: LANGHIRANO | Età: 53 | Utente Junior | 2013 | | OFFLINE | |
|
07/09/2017 16:22 | |
Specifico anche che se importo un solo file non ci sono problemi ma se ne seleziono più di uno si inchioda con l'errore di cui sopra. |
| | Post: 3.944 | Registrato il: 13/03/2012
| Città: LIVORNO | Età: 78 | Utente Master | 2010 | | OFFLINE | |
|
07/09/2017 17:32 | |
prova questa
Sub Batch_XML_Import()
myPath = "F:\Download\" '<<< change path
Set WB = ThisWorkbook
myFile = Dir(myPath & "*.xml")
Dim t As Long, N As Long, r As Long, c As Long
t = 1
Application.ScreenUpdating = False
Do While myFile <> ""
Workbooks.OpenXML Filename:=myPath & myFile, LoadOption:= _
xlXmlLoadImportToList
ActiveSheet.UsedRange.Copy WB.Sheets(1).Cells(t, "A")
ActiveWorkbook.Close False
t = Sheets(1).Cells(Rows.Count, "A").End(xlUp).Row + 1
myFile = Dir()
Loop
Application.ScreenUpdating = True
End Sub [Modificato da patel45 07/09/2017 17:33]
----------
Win 10 - Excel 2010
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta |
| | Post: 4 | Registrato il: 07/09/2017
| Città: LANGHIRANO | Età: 53 | Utente Junior | 2013 | | OFFLINE | |
|
07/09/2017 18:13 | |
E' quasi perfetto!!!
Purtroppo ogni tanto sbaglia gli incolonnamenti e non capisco con quale logica. Probabilmente non accade con i files che ho allegato. |
| | Post: 3.945 | Registrato il: 13/03/2012
| Città: LIVORNO | Età: 78 | Utente Master | 2010 | | OFFLINE | |
|
08/09/2017 07:52 | |
mi sembra che tu ne abbia allegato soltanto uno
----------
Win 10 - Excel 2010
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta |
| | Post: 5 | Registrato il: 07/09/2017
| Città: LANGHIRANO | Età: 53 | Utente Junior | 2013 | | OFFLINE | |
|
08/09/2017 09:31 | |
No, controlla bene sono tre files. Se provi ad importarli vedrai che le colonne non vengono incolonnate correttamente. Credo che sia perchè in alcuni casi alcuni campi sono vuoti e tutto viene allineato a sx a prescindere dal contenuto. |
| | Post: 6 | Registrato il: 07/09/2017
| Città: LANGHIRANO | Età: 53 | Utente Junior | 2013 | | OFFLINE | |
|
08/09/2017 09:36 | |
Ho provato anche la procedura:
- Sviluppo - origine - mapping xml
- aggiungo un file
- trascino i campi che mi interessano nel foglio
- importa - seleziono tutti i files che voglio importare
ma mi importa i valori solo di un file. |
| | Post: 3.946 | Registrato il: 13/03/2012
| Città: LIVORNO | Età: 78 | Utente Master | 2010 | | OFFLINE | |
|
12/09/2017 15:19 | |
i file hanno tutti lo stesso numero di righe e colonne ?
----------
Win 10 - Excel 2010
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta |
| | Post: 7 | Registrato il: 07/09/2017
| Città: LANGHIRANO | Età: 53 | Utente Junior | 2013 | | OFFLINE | |
|
12/09/2017 16:34 | |
Purtroppo no. Il problema è il numero di colonne. Per ora mi arrangio riallineando a mano gli errori, se si potesse fare in automatico sarebbe perfetto.
Grazie. [Modificato da Gran Giullare 12/09/2017 18:13] |
| | Post: 0 | Registrato il: 21/05/2015
| Età: 36 | Utente Junior | excel 2016 | | OFFLINE | |
|
20/09/2017 11:22 | |
Mi sembra un buon lavoro! |
| | Post: 101 | Registrato il: 10/04/2014
| Città: TORINO | Età: 61 | Utente Junior | 2010 | | OFFLINE | |
|
29/09/2017 14:52 | |
Complimenti patel
potresti brevettare questa procedura, sai quanti Italiani ti hanno sognato e ti sognano in questi giorni.....
posso ancora chiederti un consiglio :
nel mio caso ho 9 file quindi li copia correttamente, rimangono però i filtri attivi su tutte le tabelle (una curiosità personale si possono eliminare con un solo comando ) quindi se si va al fondo del file e si inserisce somma non la fa da riga 2 ma dalla prima riga tabella che trova esempio =SOMMA(Z1865:Z2239) e non somma(z2:z2239)
Grazie
|
| | Post: 1 | Registrato il: 20/03/2019
| Età: 57 | Utente Junior | Excel 2016 | | OFFLINE | |
|
20/03/2019 12:53 | |
Mi aggancio a questo post in quanto mi sembra fare al caso mio solo che non riesco ad ottenere alcun risultato sulla base degli esempi postati. In sostanza vorrei una mano nel creare una istruzione VBA che punti a una directory del server dove vengono salvate tutte le fatture elettroniche in formato xml ricevute dai miei fornitori e che tutte le suddette fatture siano importate tutte nel foglio 1 di excel . La directory del server è così impostata: \\Srvts\str\FEPA_FILE\CICLO PASSIVO\DOWNLOAD DOCUMENTI\
All'interno della cartella documenti ci sono cartelle identificate con la partita iva del fornitore. All'interno delle singole cartelle , identificative la partita iva, si trova una cartella per ogni documento ricevuto (cartelle nominate in questo modo :Doc.N° xxxxxx del xxxxxx). All'interno della cartella identificante ogni singolo documento ricevuto risiedono due file uno in formato html e l'altro in formato xml che è quello che mi interessa. Concludo dicendo che tutti i file xml sono strutturati secondo le specifiche della fatturazione elettronica. Riuscite a darmi una mano?
|
|
|