Sviluppare funzionalita su Microsoft Office con VBA Compilazione foglio PDF.

Login Registrati
Stai vedendo 13 articoli - dal 1 a 13 (di 13 totali)
  • Autore
    Articoli
  • #54512 Score: 0 | Risposta

    Kris78.
    Partecipante

      Buonasera, mi scuso ma mastico veramente poco Excel e soprattutto VBA. Se qualcuno mi potesse aiutare gliene sarei grato. Ho un database Excel. Con alcuni dei dati presenti dovrei riempire dei moduli PDF, che andrebbe poi salvato, ma non so da dove partire. Qualcuno potrebbe darmi una mano? Grazie mille

      #54516 Score: 0 | Risposta

      alexps81
      Moderatore
        58 pts

        Ciao, innanzitutto ci vorrebero i file (Excel e PDF) per capire di cosa si tratta. Poi tu vorresti compilare un modulo già esistente oppure generare un PDF da Excel e quindi creare un modulo prelevando i dati da Foglio Excel? Il secondo caso è la strada più semplice.

        Per il primo credo che ci sia bisogno di Adobe Acrobat Standard o Pro installato (non versione Reader).

        Inizia con allegare i file.

        #54517 Score: 0 | Risposta

        alfrimpa
        Partecipante
          33 pts

          @kris78

          Sull’altro forum ti è stato detto da dove partire e Alexps81 te lo ha sottolineato.

          Devi solo riprodurre il PDF su un secondo foglio  e con dei CERCA.VERT prendi i dati dal primo foglio.

          Poi salvi tale foglio in PDF manualmente (o con una macro che puoi registrare).

          Per fare tutto ciò non occorre essere esperti; il CERCA.VERT fa parte dell’ABC di Excel.

          Tu cosa hai provato a fare?

          #54518 Score: 0 | Risposta

          Kris78.
          Partecipante

            Innanzitutto grazie per le risposte. Il problema che sto avendo è che se trasformo con Adobe acrobat pro il file in excel perde tutta la formattazione. Per questo avrei preferito che venisse compilato un file pdf esistente con i dati presenti in una riga excel. Purtroppo per questione di privacy devo omettere alcune informazioni. Grazie ancora dell'aiuto.

            Allegati:
            You must be logged in to view attached files.
            #54523 Score: 0 | Risposta

            alfrimpa
            Partecipante
              33 pts

              Ma che difficoltà hai a riprodurre il PDF su un foglio Excel?

              Quello che hai allegato è di una banalità disarmante.

              Quello reale è diverso da quello allegato ?

              #54524 Score: 0 | Risposta

              Kris78.
              Partecipante

                Non so se sto sbagliando ragionamento ma, siccome il file dovrebbe essere poi riconvertito in PDF causa firma digitale, mi sembrava più "semplice" gestire il PDF per evitare, anche perché non saprei farlo, di dover creare poi un vba per il salvataggio.

                #54525 Score: 0 | Risposta

                alfrimpa
                Partecipante
                  33 pts

                  Kris78. ha scritto:

                  Non so se sto sbagliando ragionamento ma

                  Stai sbagliando a non rispondere alle domande che ti vengono fatte.

                  1) Hai provato a riprodurre il PDF su un secondo foglio del file di Excel?

                  2) Hai provato su tale secondo foglio ad inserire dei CERCA.VERT() che vanno a prendere i dati dal primo foglio?

                  3) Conosci la funzione CERCA.VERT()?

                  4) Hai provato manualmente a salvare tale foglio in PDF?

                  5) Hai provato, attivando il registratore di macro, a registrare una macro che faccia il salvataggio in PDF?

                  Per attivare il registratore di macro occorre che sulla barra multifunzione sia disponibile la scheda Sviluppo; qualora non lo fosse guarda qui https://www.andreaminini.com/excel/come-abilitare-la-scheda-sviluppo-su-excel

                  Quando hai fatto tutto questo (che è la maniera più semplice) e dovessi avere ancora problemi allega il file di Excel con quanto fatto e si vedrà

                  #54536 Score: 0 | Risposta

                  Kris78.
                  Partecipante

                    Buonasera, alla fine ho trovato una macro che riempie i segnalibri impostati nel file word (pdf non riuscivo) con i valori delle celle selezionate. Pertanto diciamo che non ho risolto ma ovviato in questo modo. Ho provato ad impostarlo sul foglio excel, come avete suggerito, è molto più semplice a mezzo cerca.vert il problema era la formattazione ed essendo un documento legale lo volevo il più allineato possibile. Grazie a tutti

                    #54542 Score: 0 | Risposta

                    alfrimpa
                    Partecipante
                      33 pts

                      Kris78. ha scritto:

                       il problema era la formattazione ed essendo un documento legale lo volevo il più allineato possibile. Grazie a tutti

                      Vuoi allegare il foglio Excel che hai creato e dire perchè non va bene rispetto al PDF che hai allegato al post 54818?

                      Kris78. ha scritto:

                      Buonasera, alla fine ho trovato una macro

                      Le macro non si trovano ma si scrivono; vuoi allegare anche questa?

                      #54543 Score: 0 | Risposta

                      Kris78.
                      Partecipante

                        Buonasera, mi riprometto di caricare tutte le macro quando ho finito il progetto. Per quanto concerne il File Excel, non ho detto assolutamente che non va bene. Come dite voi per lo stesso fine ci sono più strade. C'è chi si trova meglio in un modo chi in un altro e non è detto che ci sia il più giusto. Comunque alla fine del progetto allegherò tutte le macro che ho utilizzato. Ringraziando tutti voi per gli aiuti, me ne serviranno ancora un paio se non vi spiace.

                        #54544 Score: 0 | Risposta

                        alfrimpa
                        Partecipante
                          33 pts

                          Kris78. ha scritto:

                          Buonasera, mi riprometto di caricare tutte le macro quando ho finito il progetto.

                          Non puoi pubblicare, visto che dovresti averla già, quella che va a compilare il file di Word con i dati di Excel?

                          Magari può essere utile ad altri (a cominciare da me) che avessero la necessità di inserire in un documento Word con i segnalibri dati provenienti da un foglio Excel.

                          #54545 Score: 0 | Risposta

                          Kris78.
                          Partecipante

                            Option Explicit

                            '--------------------------------------------------------------
                            ' ? MAIN PROCEDURE
                            '--------------------------------------------------------------
                            Public Sub FillWordBookmarks()

                            Dim wb As Workbook 'this Excel workbook
                            Dim ws As Worksheet 'worksheet that holds the data
                            Dim wdApp As Object 'Word.Application (late-binding)
                            Dim wdDoc As Object 'Word.Document
                            Dim sFolder As String 'folder where both files live
                            Dim sWordFile As String 'Word template name
                            Dim sOutFile As String 'name of the completed Word file
                            Dim dictBookmarks As Object 'Scripting.Dictionary – maps bookmark ? cell address

                            On Error GoTo ErrHandler

                            '--- 1. Set references to the workbook / worksheet ----------------
                            Set wb = ThisWorkbook
                            Set ws = wb.Worksheets("XXXXX") '? change to your sheet name

                            '--- 2. Find the folder that contains this workbook ----------------
                            sFolder = wb.Path
                            If Len(sFolder) = 0 Then
                            MsgBox "The workbook must be saved on disk before running this macro.", _
                            vbExclamation, "Folder not found"
                            Exit Sub
                            End If

                            '--- 3. Word file names --------------------------------------------
                            sWordFile = "xxx.docx" '? name of the Word template
                            sOutFile = "xxxxxxx.docx" '? name for the saved file

                            '--- 4. Build a dictionary that links each bookmark to a cell ------
                            ' Bookmark name ? Excel address (relative to ws)
                            Set dictBookmarks = CreateObject("Scripting.Dictionary")

                            ' ---- EDIT / ADD YOUR MAPPINGS HERE ---------------------------
                            ' Format: dictBookmarks.Add "BookmarkName", "A2"
                            dictBookmarks.Add "NOME 1° segnalibro", "Posizione cella Excel"
                            dictBookmarks.Add "NOME 2° segnalibro", "Posizione cella Excel"

                             

                            AGGIUNGERE QUANTE RIGHE PER OGNI SEGNALIBRO E SCRIVERNE LA POSIZIONE DELLA CELLA EXCEL.

                            ' ----------------------------------------------------------------

                            '--- 5. Start Word (late binding – no reference needed) ------------
                            Set wdApp = CreateObject("Word.Application")
                            wdApp.Visible = True 'set to False if you do NOT want to show Word

                            '--- 6. Open the template -------------------------------------------
                            Set wdDoc = wdApp.Documents.Open(fileName:= _
                            sFolder & Application.PathSeparator & sWordFile, _
                            ReadOnly:=False, AddToRecentFiles:=False)

                            '--- 7. Loop through the dictionary and fill each bookmark -----------
                            Dim bmName As Variant
                            For Each bmName In dictBookmarks.Keys
                            If wdDoc.Bookmarks.Exists(bmName) Then
                            Dim cellAddr As String
                            cellAddr = dictBookmarks(bmName) 'e.g. "B2"

                            Dim cellValue As String
                            cellValue = CStr(ws.Range(cellAddr).Value) 'convert to string

                            'Insert the text – the existing bookmark content is replaced
                            wdDoc.Bookmarks(bmName).Range.Text = cellValue

                            'Re-create the bookmark because writing text destroys it
                            wdDoc.Bookmarks.Add Name:=bmName, Range:=wdDoc.Bookmarks(bmName).Range
                            Else
                            Debug.Print "Bookmark '" & bmName & "' not found in the Word file."
                            End If
                            Next bmName

                            '--- 8. Save the completed document (you can change the path) -------
                            wdDoc.SaveAs2 fileName:=sFolder & Application.PathSeparator & sOutFile, _
                            FileFormat:=wdFormatXMLDocument 'docx

                            MsgBox "Word document created successfully:" & vbCrLf & sOutFile, _
                            vbInformation, "Done"

                            CleanExit:
                            '--- 9. Clean-up ----------------------------------------------------
                            If Not wdDoc Is Nothing Then wdDoc.Close SaveChanges:=False
                            If Not wdApp Is Nothing Then wdApp.Quit

                            Set wdDoc = Nothing
                            Set wdApp = Nothing
                            Set dictBookmarks = Nothing
                            Exit Sub

                            ErrHandler:
                            MsgBox "Error " & Err.Number & ": " & Err.Description, vbCritical, "Run-time error"
                            Resume CleanExit
                            End Sub

                             

                             

                             

                             

                             

                            I FILE EXCEL E WORD DEVONO TROVARSI NELLA STESSA CARTELLA

                            #54546 Score: 0 | Risposta

                            alfrimpa
                            Partecipante
                              33 pts

                              Ti ringrazio ma mi chiedo quali possano essere i problemi di formattazione che ti fanno preferire l'utilizzo di codice complicatissimo (quasi certamente generato dall'IA) all'utilizzo di un foglio Excel con dei semplici CERCA.VERT().

                            Login Registrati
                            Stai vedendo 13 articoli - dal 1 a 13 (di 13 totali)
                            Rispondi a: Compilazione foglio PDF.
                            Gli allegati sono permessi solo ad utenti REGISTRATI
                            Le tue informazioni: