Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

Importare molti file XML

Ultimo Aggiornamento: 20/03/2019 12:53
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

Re:
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à: 60
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?
Vota:
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 04:00. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com