Importare i dati da un fattura elettronica col vba

di il
37 risposte

Importare i dati da un fattura elettronica col vba

Salve a tutti, dopo essere riuscito finalmente a creare una fattura elettronica da excel con l'aiuto anche del vba, ora mi sto cimentando nel problema opposto cioè importare i dati. Ho visto che excel in effetti ha una funzione che ti consente di importare un mapping xml e tutti i dati ma ha problemi con i file xml versione pm7. Anche rinominandoli togliendo l'estensione pm7 non vengono letti. Quindi ancora una volta, come è successo con l'esportazione per la quale la stessa funzione di excel non mi è stata di aiuto (perchè in mancanza di un dato valore la riga non scompariva e creava errore), devo provvedere creando il codice da zero. Solo che questa volta vorrei affidarmi all'aiuto di qualcuno che ci è gia passato cosi da limitarmi a modificare il codice rimandendo intatto l'algoritmo perchè ora come ora non saprei sviluppare l'algoritmo necessario

37 Risposte

  • Re: Importare i dati da un fattura elettronica col vba

    Se la domanda è "voglio togliere la firma cades mediante altri programmi tipicamente openssl", trovi dei thread appositi.
    Se la domanda è "voglio togliere la firma cades a un file XML da mio codice" troverai da qualche parte il mio programmello.
    Se la domanda è "voglio togliere la firma cades da un file qualunque, quindi ANCHE un XML, da mio codice", vedrai che ho aperto un thread ma ci vuole non poco tempo, penso almeno una mezza giornata, e prima o poi (quindi mai) mi ci dedicherò.

    Infine c'è "voglio togliere la firma cades ed ho un budget attorno ai 200 euro" allora la risposta è la libreria chilkat
  • Re: Importare i dati da un fattura elettronica col vba

    Ciao +m2+, per momento non mi serve ne fare una fattura con la firma digitale ne toglierla. Ringranziando Dio l'agenzia delle entrate accetta le mie fatture anche senza firma (ottimo direi). Quello che mi serve è un algoritmo che mi consenta di estrarre i dati. Ho potuto avere modo di vedere che anche una fattura firmata pm7 puo essere aperta come un file di testo come la stessa fattura xml e il linguaggio all'interno è praticamente lo stesso. Quindi l'algortimo di estrazione funzionerebbe allo stesso modo. Per cui non so a cosa mi servirebbe per ora volere togliere la firma
  • Re: Importare i dati da un fattura elettronica col vba

    (1) non firmando non puoi conservare in autonomia
    (2) non mi è chiarissimo perché dici di non avere problemi a leggere file firmati, visto che nel primo post affermi il contrario.
    Anche rinominandoli togliendo l'estensione pm7 non vengono letti.

    se ritieni che non ci siano problemi... meglio così, farai meno fatica.
    D'altronde non ho particolari competenze per il lavoro che vuoi fare.
  • Re: Importare i dati da un fattura elettronica col vba

    +m2+ ha scritto:


    (2) non mi è chiarissimo perché dici di non avere problemi a leggere file firmati, visto che nel primo post affermi il contrario.
    in effetti mi hai fatto notare della piccola confusione a cui io non avevo fatto caso.
    intendo dire che non ho problemi ad aprirli con un editor di testo come note, quindi l'algoritmo una volta elaborato mi funzionerebbe allo stesso modo sia che è firmata sia che non lo è. In pratica avevo già messo da parte la soluzione di excel quale lo strumento di importazione che pero non apre i pm7. ecco perchè cercavo un algoritmo che leggesse direttamente dentro la fattura. Ma è anche vero che ora tu mi hai fatto riflettere sul fatto che se eliminassi la firma potrei usare lo strumento di importazione di excel.... Diciamo che ora ho due strade. La piu divertente penso sia quella che ti riesca a estrarre le varie voci direttamente dal file xml per poi incolonnarle in un database (sempre un foglio excel) successivamente. Mi rendo conto che chiedere un algoritmo tanto utile è una impresa impossibile, per cui rettifico la mia richiesta chiedendo solo la stringa in vba che ti consente di cercare una determinata parola in un file di testo e contare da quella. Prendiamo questa stringa per esempio <IdCodice>07663700005</IdCodice>. Come faccio per cercare la parola "<IdCodice>" e poi memorizzare solo tutte le lettere che vanno dalla fine di questa voce all'inizio dell altra "</IdCodice>"?
  • Re: Importare i dati da un fattura elettronica col vba

    Se interpreto bene quello che vuoi fare e tu accontenti di xml ASCII, non xml mime, ci sono fogli Excel già fatti
  • Re: Importare i dati da un fattura elettronica col vba

    +m2+ ha scritto:


    Se interpreto bene quello che vuoi fare e tu accontenti di xml ASCII, non xml mime, ci sono fogli Excel già fatti
    Non conosco la differenza tra i due, comunque dove li trovo questi fogli? per il momento sono riuscito anche a scrivere il codice per cercare una stringa all'nterno di una fattura e da li prendere solo quello che serve. Sto solo all inizio perchè il brutto deve ancora venire, tipo come spiego la differenza tra la partita iva del fornitore e quella dell acquirente visto che la nomenclatura per l id partita iva è lo stesso? ... mi devo ancora inventare qualcosa.
  • Re: Importare i dati da un fattura elettronica col vba

    MarcoVBA ha scritto:


    ... in un database (sempre un foglio excel) ...
    Ciao Marco.
    Vorrei solo chiarirti ed invitarti a prestare molta attenzione, per evitare confusione:
    un foglio di excel non è un database!
    E' solamente e puramente un foglio di calcolo.
    I database sono tutt'altra cosa.
  • Re: Importare i dati da un fattura elettronica col vba

    MarcoVBA ha scritto:


    +m2+ ha scritto:


    Se interpreto bene quello che vuoi fare e tu accontenti di xml ASCII, non xml mime, ci sono fogli Excel già fatti
    Non conosco la differenza tra i due, comunque dove li trovo questi fogli? per il momento sono riuscito anche a scrivere il codice per cercare una stringa all'nterno di una fattura e da li prendere solo quello che serve. Sto solo all inizio perchè il brutto deve ancora venire, tipo come spiego la differenza tra la partita iva del fornitore e quella dell acquirente visto che la nomenclatura per l id partita iva è lo stesso? ... mi devo ancora inventare qualcosa.
    Se il tuo livello è questo ti consiglio di lasciar perdere

    ettore56 ha scritto:


    MarcoVBA ha scritto:


    ... in un database (sempre un foglio excel) ...
    Ciao Marco.
    Vorrei solo chiarirti ed invitarti a prestare molta attenzione, per evitare confusione:
    un foglio di excel non è un database!
    E' solamente e puramente un foglio di calcolo.
    I database sono tutt'altra cosa.
    Ni.
    Ho trovato un "mito" che ha fatto dei fogli excel sia per generare, sia per leggere gli XML, pure p7m, e funzionano perfino ragionevolmente bene!
  • Re: Importare i dati da un fattura elettronica col vba

    +m2+ ha scritto:


    Se il tuo livello è questo ti consiglio di lasciar perdere
    saresti stupito di vedere cosa sono riuscito a fare nonostante non abbia una formamentis da programmatore. Da solo ho creato in excel un programma per la gestione aziendale che consente di
    inserire cliente
    inserire fornitore
    inserire ordine
    iserire semina (gestisce un vivaio)
    creazione lotto
    scarico lotto
    creazione ddt, nota di credito, fattura con relativo aggiornamento della disponibilità del lotto.
    creazione differita
    prima nota
    mastrino per riscossione
    mastrino per pagamenti
    registro vegetali
    stampa delle fatture e dei ddt
    stampa delle fatture in formato xml
    magazzino
    inserimento ddt acquito con relativo aggiornamento del magazzino
    inserimento fatture acquisto
    elenco ddt e fatture acquisto
    elenco ddt e fatture inviate
    conto economico
    situazione bancaria
    possibilita di cambiare il gestionale da un azienda all altra (ci gestisco 3 aziende)
    allegare ad ogni fattura inserita (ma anche ddt) il relativo pdf
    allegare ad ogni pagamento e riscossione la scansione dell assegno
    possibilità di creare i numeri bis
    e molto altro e tutto senza che io conosca la differenza tra xml asci e xml mime per cui prima di sparare sentenze ci penserei un attimo
    per quanto riguardo il database, per me il foglio di calcolo excel è effetivamente un database anche se non nasce in quel senso visto che uso una cartella di lavore che funge da programma e 3 rispettive cartelle sempre aperte che fungono da database, senza codice, senza formule ecc. Mi dirai che avrei potuto usare access o similiari ma quando mi sono cimentato in questa impresa conoscevo solo excel e ad oggi riconvertire il tutto in un programma vero e proprio in visual basic ci vorrebbe una vita dal momento che ora come ora conta piu di un centinaio di pagine di codice e circa 160 userform
  • Re: Importare i dati da un fattura elettronica col vba

    MarcoVBA ha scritto:


    (...)e molto altro e tutto senza che io conosca la differenza tra xml asci e xml mime per cui prima di sparare sentenze ci penserei un attimo (...)
    Sono tutti sforzi encomiabili, nessuno li mette in discussione.
    Però, così per dire, io sarei in grado (e in realtà l'ho anche fatto, sia pure in misura ridotta) di scrivere Excel, non "con Excel".
    Come puoi capire non è esattamente la stessa cosa.

    Detto questo ribadisco che è un lavoro già fatto, anche bene, da un tizio che ha rilasciato i fogli Excel per uso libero.
    Se li trovi sarai certamente agevolato, almeno sotto il profilo tempistica.
    Francamente non ricordo minimamente, mi sono limitato a guardare e dire "fico, questo tizio sa usare excel meglio di me"
  • Re: Importare i dati da un fattura elettronica col vba

    MarcoVBA ha scritto:


    ettore56 ha scritto:


    Se il tuo livello è questo ti consiglio di lasciar perdere
    Giusto per precisare: non l'ho scritto io!

    MarcoVBA ha scritto:


    ... saresti stupito di vedere cosa sono riuscito a fare nonostante non abbia una formamentis da programmatore. Da solo ho creato in excel un programma per la gestione aziendale che consente di... per cui prima di sparare sentenze ci penserei un attimo...
    Sempre per precisare, tu ti stai rivolgendo ad un sito di programmatori dove, per confrontarsi e capirsi, si usa necessariamente un linguaggio almeno un po' tecnico.
    Ti assicuro che confondere un foglio di calcolo con un database è semplicemente un errore.
    All'interno di un database tu potrai utilizzare tabelle collegate che siano state generate con MySQL, piuttosto che con file di testo, oppure, ma penso molto raramente per motivi tecnici che non sto qui a spiegarti, con fogli di calcolo come quelli di excel.
    Mi sembra che nessuno abbia voluto sparare sentenze, ma semplicemente ricondurti ad una dialettica che sia comprensibile agli "addetti ai lavori", nella fattispecie ad un gruppo di programmatori.

    MarcoVBA ha scritto:


    ...per quanto riguardo il database, per me il foglio di calcolo excel è effetivamente un database...
    Non dovrei fare altro che ripeterti quanto già postato.
  • Re: Importare i dati da un fattura elettronica col vba

    MarcoVBA ha scritto:


    +m2+ ha scritto:


    Se il tuo livello è questo ti consiglio di lasciar perdere
    ........saresti stupito di vedere cosa sono riuscito a fare nonostante non abbia una formamentis da programmatore. Da solo ho creato in excel un p.......a dal momento che ora come ora conta piu di un centinaio di pagine di codice e circa 160 userform
    Complimenti. Un gestionale fatto in Access l'avevo già visto ma in excell, no. Detto questo però la programmazione è altro, senza nulla togliere, e prima o poi dovrai riscriverlo in qualche linguaggio più adatto.
  • Re: Importare i dati da un fattura elettronica col vba

    ettore56 ha scritto:


    MarcoVBA ha scritto:


    ettore56 ha scritto:


    Se il tuo livello è questo ti consiglio di lasciar perdere
    Giusto per precisare: non l'ho scritto io!
    Infatti è una mia valutazione

    Comunque tornando al tema: purtroppo non ho trovato il sito di quel tipo, era una persona fisica, nè il relativo foglio excel
  • Re: Importare i dati da un fattura elettronica col vba

    +m2+ ha scritto:


    MarcoVBA ha scritto:


    Però, così per dire, io sarei in grado (e in realtà l'ho anche fatto, sia pure in misura ridotta) di scrivere Excel, non "con Excel".
    Come puoi capire non è esattamente la stessa cosa.
    no in realtà non ho capito cosa intendi... comunque non è problema sono consapevole del fatto che una persona che abbia studiato la programmazione a livello accademico possa trovare difficile un approccio particolare come il mio, ma ti assicuro che gestionali come il mio non hanno niente da invidiare alla "concorrenza" per vivai per un valore di oltre 5 mila euro, anzi il mio fa anche di piu. Sono sicuro di riuscire a risolvere anche questo problema come tutti quelli che ho trovato fino adesso. Per esempio la ricerca di una stringa all interno della fattura per estrarre la partita iva per esempio l'ho risolta cosi per chi puo essere interessato:



    Dim pat As String
    Dim percorso2 As String
    pat = ThisWorkbook.Path
    percorso2 = pat & "\prova.txt"
    Dim caratteri As Single
    Dim testoricerca As String
    Dim linea As String
    Dim linea2 As String


    testoricerca1 = "<IdCodice>"





    testoricerca2 = "</IdCodice>"
    If Dir(percorso2) = vbNullString Then
    MsgBox "File non trovato.", vbExclamation
    Exit Sub

    End If




    Open percorso2 For Input As #1
    Do
    Input #1, linea

    If InStr(linea, testoricerca1) Then


    caratteri = Len(linea)

    For a = 1 To caratteri

    valore = Mid(linea, a, Len(testoricerca1))

    If valore = testoricerca1 Then

    posizione1 = a
    Exit For

    End If

    Next a

    For b = 1 To caratteri

    valore = Mid(linea, b, Len(testoricerca2))

    If valore = testoricerca2 Then

    posizione2 = b
    Exit For

    End If

    Next b



    MsgBox Mid(linea, a + Len(testoricerca1), b - (a + Len(testoricerca1)))

    'MsgBox linea
    Exit Do


    End If




    Loop Until EOF(1) = True



    Close
    End Sub
Devi accedere o registrarti per scrivere nel forum
37 risposte