Vota | Stampa | Notifica email    
Autore

Unire due pdf salvati nella stessa cartella [RISOLTA - CHIUSA]

Ultimo Aggiornamento: 28/01/2024 12:53
04/01/2024 11:04

Hai centrato la finalità.

In ogni cartella ci sono svariati file.pdf.

Io ho abbozzato la UserForm1 che allego.

Intanto vedere se una cosa del genere potrebbe essere appropriata per poi passare al codice con le relative cartelle e file.pdf di esempio.

Post: 3.681
Registrato il: 06/04/2013
Utente Master
2010
OFFLINE
04/01/2024 11:09

ciao
se dovessi farlo per me, non mi precluderei la possibilità di unire n file e non solo due
Diciamo una cosa del genere:


dove nella parte in alto si scelgono i file da unire e si aggiungono nella listBox centrale, e nella parte in basso si sceglie la cartella di destinaziomne ed il nome da assegnare al file unito.
Ovviamente manca il pulsante UNISCI....

Poi vedi tu come ritieni meglio fare.

saluti




[Modificato da dodo47 04/01/2024 11:10]
Domenico
Win 10 - Excel 2016
04/01/2024 11:13

Incomincio a fare qualcosa sulla tua userform perchè la mia era solo un esempio senza alcuna pretesa.

La potresti allegare?

NON OCCORRE: l'ho costruita io come la tua.

OK
[Modificato da rex88 04/01/2024 11:42]
Post: 3.682
Registrato il: 06/04/2013
Utente Master
2010
OFFLINE
04/01/2024 12:55

ciao
un esempio, nel pulsante "Browse":

Dim result As Variant
result = Application.GetOpenFilename("Text Files (*.pdf), *.pdf")
If result <> False Then
TextBox1 = result
End If

questo apre la finestra di scelta file pdf e, una volta scelto, inserisce nella TextBox il percorso comp'leto del file scelto che poi tramite il pulsante Add To inserirai nella ListBox sottostante

saluti

EDIT:

volendo si può far a meno del passaggio sulla textBox e inserire direttamente nella ListBox il file scelto
[Modificato da dodo47 04/01/2024 13:07]
Domenico
Win 10 - Excel 2016
04/01/2024 14:41

Ciao Domenico,

prendendo spunto da altri miei file ho cercato di fare due passaggi sulla tua form che allego.

Ci sono varie cose che non funzionano.

Se tu gli dai un'occhiata e mi evidenzi gli errori sono ben lieto perchè mi serve per rimediare.

Ci tengo a precisare con ciò che non ho cestinato il tuo suggerimento sicuramente migliorativo rispetto alle poche cose fatte da me che utilizzerò (inteso il tuo).

Grazie
[Modificato da rex88 04/01/2024 14:48]
Post: 3.683
Registrato il: 06/04/2013
Utente Master
2010
OFFLINE
04/01/2024 16:21

ma perchè apri i file?

Lo scopo non è quello di scegliere n file pdf in cartelle uguali o diverse ed unirli in uno solo?

Ho capito male??

saluti




[Modificato da dodo47 04/01/2024 16:22]
Domenico
Win 10 - Excel 2016
04/01/2024 16:25

Non devo unire tutti i file.pdf creandone uno solo, ma aprire la cartella 1 prendere un filke.pdf e unirlo ad un altro della cartella 2.

Come al solito sono io che non sonio chiaro.

Scusami.

Post: 3.684
Registrato il: 06/04/2013
Utente Master
2010
OFFLINE
04/01/2024 16:48

Rex
non ti ho detto che devi unire tutti i file, ti ho chiesto perchè li apri che è quello che fa il tuo codice.

Comunque:
- i codici inseriti nel tuo modulo ModuloListBox non hanno senso messi lì e ti daranno errore.

- ho eliminato il passaggio dalla textBox alla ListBox in quanto inutile

- ho permesso (tramite il tasto ctrl) di selezionare più file della medesima cartella se vuoi

- ho aggiunto un evento doppioClick sulla ListBox che eventualmente serve per eliminare (dallaListBox) un file preso per errore

- ho aggiunto il codice al pulsante che sceglie la cartella di destinazione del nuovo file.

Vedi se può andar bene

saluti
Domenico
Win 10 - Excel 2016
04/01/2024 17:55

OK.
In serata vedo di mettere il codice sul pulsante "Creapdf" per creare il nuovo file.pdf.
In aggiunta vedo di fare queste modifiche:
1) cliccare sul pulsante "Browse" e aprire direttamente la cartella "UnirePDF";
2) cliccare sul pulsante "Cartella" e aprire la sottocartella "NuovoPdf" (che inserirò nella cartella "UnirePDF") dove vado a salvare il nuovo file.pdf.

Post: 3.685
Registrato il: 06/04/2013
Utente Master
2010
OFFLINE
04/01/2024 18:07

per il pulsante creaPDF farei in questo modo:

1) cambia il nome della
Private Function MergePDFs(arrFiles() As String, strSaveAs As String) As Boolean

in

Public Function MergePDFs(arrFiles() As String, strSaveAs As String) As Boolean
e la metti in un modulo standard

Poi sul pulsante (quindi nella uForm:
Private Sub CreaPdf_Click()
Dim mFiles() As String, NewName As String, nrFiles As Integer, j As Integer
nrFiles = Me.mLista.ListCount
If nrFiles < 2 Then
    MsgBox "Nessun file da unire"
    Exit Sub
End If
If Me.DestPath = "" Or Me.DestFile = "" Then
    MsgBox "Manca la cartella di destinazione e/o il nome del nuovo file"
    Exit Sub
End If

' qui ci andrebbe un controllo per vedere se il nome assegnato è congruo!!!


ReDim mFiles(1 To nrFiles)
For j = 1 To nrFiles
    mFiles(j) = Me.mLista.List(j - 1)
Next j
NewName = Me.DestPath & "\" & Me.DestFile & ".Pdf"

Call MergePDFs(mFiles, NewName)

'integrare con controllo se "merge" andato a buon fine

End Sub


Per il resto vedi tu.

(Direi che questo post sta andando un po' oltre il titolo)

saluti



[Modificato da dodo47 04/01/2024 18:08]
Domenico
Win 10 - Excel 2016
04/01/2024 19:29

Sono d'accordo con te.

Faccio le ultime tue correzioni e poi proseguo in autonomia.

Grazie per tutto.

Alla prossima.

Un saluto.

rex88


04/01/2024 21:00

Mi dispiace ritornarci sopra ma solo per segnalare che ho rilevato questo messaggio dopo aver cliccato sul pulsante "CreaPdf".

Ho creato nella stessa cartella "UnirePdf" anche la sottocartella "NuovoPdf".

Ma mi esce sempre questo messaggio.
Post: 1.384
Registrato il: 16/08/2015
Città: CORDENONS
Età: 67
Utente Veteran
Excel 2016-32bit Win11
OFFLINE
05/01/2024 00:29

Un saluto a tutti.
@rex88, immagino che ormai hai fatto mente locale e ti sei già accorto che nell'immagine che hai allegato nel campo "Nome file:" non hai indicato il nome del nuovo file da creare (ovvero il nome del file risultante dei due file da unire).
Pertanto, la prima parte del messaggio popup è Falsa perché la cartella che hai indicato esiste visto che dici di averla creata mentre la seconda parte è Vera dato che il campo "Nome file:" risulta vuoto (manca).
[Modificato da rollis13 05/01/2024 00:35]

______________________________________________________________
C'è chi fa le COSE a CASO e chi fa CASO alle COSE (Ignoto)
05/01/2024 06:30

Ciao,

avevo inteso che cliccando sul pulsante "CreaPdf" in automatico veniva popolata la textbox "Nome File" con il nome del nuovo file.pdf

Invece ragionandoci su devo essere io a dargli il nome.

Infatti ho inserito anche il nome e crea il nuovo file.pdf e funziona e non poteva essere il contrario. Avevo interpretato male.

Il tutto è sempre legato al mio file delle dichiarazioni di conformità.

Mi spiego.

Io creo una dichiarazione di conformità attraverso la compilazione di un file pd editabile salvandola nella sottocartella C:\DICO\Anno con il nome del cliente e la data. RISOLTO

Contestualmente creo il file pdf contenente i prodotti utilizzati per l'intervento presso il cliente popolando un foglio che salvo nella sottocartella C:\DICO\Prodotti con il nome "Allegato e data". RISOLTO

Adesso devo unire i due file.pdf dando al nuovo file.pdf il nome del cliente e la data della dichiarazione di conformità e salvarlo nella sottocartella C:\DICO\NuovoPdf.

Spero nella mia contorsione con doppio carpiato di essere stato chiaro.

RICHIESTA

Fatemi sapere se quest'ultimo step deve essere oggetto di una nuova discussione oppure seguire in questa.




[Modificato da rex88 05/01/2024 07:34]
Post: 1.048
Registrato il: 02/04/2018
Città: PESCARA
Età: 75
Utente Veteran
EXCEL 2016 - SPREAD32
OFFLINE
05/01/2024 09:20

Re:
rex88 (nTdQ231201), 05/01/2024 06:30:


Fatemi sapere se quest'ultimo step deve essere oggetto di una nuova discussione oppure seguire in questa.



SEGUIRE IN QUESTA

LEO
https://t.me/LordBrum
05/01/2024 09:42

Grazie.
Post: 3.686
Registrato il: 06/04/2013
Utente Master
2010
OFFLINE
05/01/2024 10:00

Re:
rex88 (nTdQ231201), 05/01/2024 06:30:


Adesso devo unire i due file.pdf dando al nuovo file.pdf il nome del cliente e la data della dichiarazione di conformità e salvarlo nella sottocartella C:\DICO\NuovoPdf.



ciao
e dove ce li hai questi dati ?

Magari allega un file così non ci si sbaglia sulla struttura/celle da dove prelevare i dati

saluti






Domenico
Win 10 - Excel 2016
05/01/2024 10:36

Al momento della configurazione del file ho creato la cartella C:\DICO.

Nella cartella C:\DICO ho creato una sottocartella “Anno”.

Nella sottocartella “Anno” ho creato tre sottocartelle:

C:\DICO\2024\Allegati
C:\DICO\2024\DiCo

Quando creo una dichiarazione di conformità in pdf editabile la salvo nella Sottocartella C:\DICO\2024\DiCo. con il nome del cliente e la data di compilazione.

Poi passo ad inserire i prodotti nel foglio “Allegati” tramite la “FrmProdotti” che salvo in formato pdf nella sottocartella C:\DICO\2024\Allegati con il nome "Allegati e data".

A questo punto devo collegare la dichiarazione di conformità all’allegato relativi allo stesso cliente.

Ipotesi:

mettere sul foglio “Allegati” per esempio nella cella C1 il numero della dichiarazione compilata, nella cella D1 il nome del Cliente e nella cella E1 la data di compilazione fermo restando tutto il resto poi fare prima l'abbinamento (concatenare non so se rendo l'idea) tra i due file e poi unirli in un unico file.pdf?

EDIT:

dimenticavo che nella sottocartella “Anno” ho creato anche la sottocartella C:\DICO\2024\NuovoPdf che nel file che vi ho allegato non l'ho inserita e che vi prego di inserire.

Grazie


[Modificato da rex88 05/01/2024 10:47]
Post: 3.687
Registrato il: 06/04/2013
Utente Master
2010
OFFLINE
05/01/2024 11:30

ciao
"l'operatività" è chiara ma a mio avviso mancano gli elementi univoci per poter individuare i files da unire.

"l'unione" avviene non appena sono stati creati i due suddetti files ??

Cioè:
1) crei il file: DICOxxx.PDF
2) crei l'allegato: Allegati gg_mm_aaa.PDF
3) immediatamente dopo li unisci in FileUnitoxxx.PDF

E' così ????

In tal caso dovresti avere tutto l'ambaradan in un unico file xlsm che ti permetta l'intera operatività.

E se per un motivo qualsiasi crei solo i due file 1) e 2), come fai a collegare il 3) magari il giorno dopo ?? Non hai riferimenti tranne che una data, e tale data potrebbe far riferimento a più files.

La tua ipotesi:

mettere sul foglio “Allegati” per esempio nella cella C1 il numero della dichiarazione compilata, nella cella D1 il nome del Cliente e nella cella E1 la data di compilazione


quando e come dovrebbe avvenire ?? In fase di creazione dei 2 file da unire ?? ce li metti a mano o in automatico ??

Non ultimo, perchè non assegnare un progressivo univoco alle DICO ??
Questo permetterebbe di individuare senza dubbi quali siano i file da unire.

Una specie di archivio tipo:


che si aggiorna man mano che crei il file 1, il 2...il 3
[Modificato da dodo47 05/01/2024 11:35]
Domenico
Win 10 - Excel 2016
05/01/2024 12:08

Cerco di chiarire per quanto possibile le tue domande/osservazioni:

1) "l'unione" avviene non appena sono stati creati i due suddetti files ??

Cioè:
1) crei il file: DICOxxx.PDF
2) crei l'allegato: Allegati gg_mm_aaa.PDF
3) immediatamente dopo li unisci in FileUnitoxxx.PDF


Il punto 3) è senz'altro la soluzione da applicare nel caso in cui ad una dichiarazione di conformità deve essere allegato il file.pdf “Allegati gg_mm_aaa.PDF”.

Prevedere per non metterci nuovamente le mani e modificare macro e quant’altro che potrebbero verificarsi casi in cui non procedo al punto n.2) ma una volta compilata la dichiarazione direttamente al salvataggio e alla stampa solo della dichiarazione di conformità come al punto 1) senza allegare il file.pdf “Allegati gg_mm_aaa.PDF”.

2) E se per un motivo qualsiasi crei solo i due file 1) e 2), come fai a collegare il 3) magari il giorno dopo ?? Non hai riferimenti tranne che una data, e tale data potrebbe far riferimento a più files.

Nel Foglio numerazione è già previsto nella cella A2 il numero della dichiarazione di conformità che viene incrementato ogni volta che viene inserita nella “FrmDico” la dichiarazione di conformità e salvata.

Questo interferisce con il foglio da te proposto?
[Modificato da rex88 05/01/2024 12:09]
Post: 3.688
Registrato il: 06/04/2013
Utente Master
2010
OFFLINE
05/01/2024 12:50

Re:
rex88 (nTdQ231201), 05/01/2024 12:08:


Nel Foglio numerazione è già previsto nella cella A2 il numero della dichiarazione di conformità che viene incrementato ogni volta che viene inserita nella “FrmDico” la dichiarazione di conformità e salvata.

Questo interferisce con il foglio da te proposto?



e perchè questo numero non lo metti nel nome del file Dico insieme al nome cliente e data ?

Personalmente farei:

1) creazione di una tabella (tipo quella sottoposta nel post precedente)
1) creazione pdf DICO
2) alimentazione suddetta tabella con più dati possibili in modo da non essere costretti tramite codici a ricostruirne i nomi file e percorso
3) SE devi fare l'allegato :
- crei allegato il cui nome abbia compreso il numero dico etc etc
- alimentazione suddetta tabella con più dati possibili in modo da non essere costretti tramite codici a ricostruirne i nomi file e percorso
- crei il pdf unito
4) SE NON devi fare l'allegato passi direttamente al n. 5

5) invio al cliente DICO (o file unito)

In questo modo non sarebbe più necessario il file UnidìsciPdf in quanto nella suddetta tabella avrai tutti gli elementi: se devi unire...unisci altrimenti no.

Spero di esser stato abbastanza chiaro.

Qui non si tratta più di unire semplicemente 2 pdf, ma di strutturare un lavoro complesso.

Quindi: prova ad assemblare il tutto (a mio avviso 1 unico file excel), e vedi che succede.

saluti

Edit:
...ovviamente è quello che farei personalmente.
Se tu hai altre idee buttale giù


[Modificato da dodo47 05/01/2024 13:19]
Domenico
Win 10 - Excel 2016
05/01/2024 13:19

Chiarissimo e condivido con te che è un lavorone e ciò questo significa rimettere le mani in più passaggi.

Vediamo cosa ne esce.

Io ho sempre riadattato i miei file ai suggerimenti.

Edit:

Non voglio apparire più di quello che sono, ma sinceramente in una prima battuta cioè quando avevo ripreso in mano il file avevo pensato di inserire un foglio "ArchivioDico" con queste colonne:

A = Numero DiCo
B = Data DCo
C= Nominativo Cliente

Una volta inserita la dichiarazione nella FrmDico cliccare sul pulsante "Esci" che si trova sulla stessa form e riportare i dati nel foglio "ArchivioDiCo".

Non avevo pensato di riunire i due file.pdf in uno solo anche perchè il file "Allegato"come puoi vedere è orientato orizzontalmente mentre il file.pdf "DICO" è orientato verticalmente e in tutta sincerità non sapevo se si potevano unire.

EDIT:

Mi dispiace per il tempo che hai dedicato alla prima soluzione.

Spero che tu non me ne voglia.








[Modificato da rex88 05/01/2024 13:42]
Post: 3.689
Registrato il: 06/04/2013
Utente Master
2010
OFFLINE
05/01/2024 16:15

Re:
rex88 (nTdQ231201), 05/01/2024 13:19:

...Non avevo pensato di riunire i due file.pdf in uno solo anche perchè il file "Allegato"come puoi vedere è orientato orizzontalmente mentre il file.pdf "DICO" è orientato verticalmente e in tutta sincerità non sapevo se si potevano unire.



Bastava facessi una prova, comunque si...si possono unire due pdf uno verticale e uno orizzontale in un solo file











Domenico
Win 10 - Excel 2016
07/01/2024 14:07

Non mi sono volatilizzato.

Ho avuto problemi di black-out elettrico e impegni personali.

Nonostante ciò sono dietro a quanto proposto da Domenico.

21/01/2024 13:09

Ho ricevuto dal Forum questa messaggio:

[Excel Forum] Sta diminuendo la carica del tuo badge forum energy

Notifiche FreeForumZone 05:31 (7 ore fa)

Torna a scrivere nel forum per ricaricare il tuo badge energy!


Lo farei volentieri ma in tutta sincerità dopo vari tentativi senza riuscire a trovare la soluzione non me la sono sentita di fare ulteriori richieste onde evitare di passare per quello che cerca a tutti i costi "la pappa pronta".
25/01/2024 09:06

Allego la FrmAvvio del file che sto costruendo.
Cliccando sul pulsante "Guida" viene spiegato come dovrebbe funzionare.
Cliccando su "Stampa DiCo" ho abbozzato la procedura per stampare la dichiarazione di conformità.
"Per stampare la Dichiarazione di conformità è stata creata una tabella contenente i seguenti dati:"
e qui mi sono fermato perchè non sono riuscito a fare ciò che mi ha suggerito dodo47.
26/01/2024 16:41

Ho cercato di interpretare la proposta suggeritami da dodo47 nel post del 05/01/2024 12:50.
Propone di fare una tabella con più dati possibili, presumibilmente tratti dai dati che vengono inseriti nella “FrmDico” e nella “FrmProdotti”.
A questo punto verrebbe un foglio con x colonne dove per esempio sulla riga 2 verrebbero riportati tutti i suddetti dati riferiti ad una dichiarazione di conformità e poi con gli stessi creare il pdf editabile.
Chiedo solo di sapere se ho capito bene.
Grazie
Post: 3.709
Registrato il: 06/04/2013
Utente Master
2010
OFFLINE
26/01/2024 18:06

ciao
non so a che punto sei e come hai sviluppato il tutto....se hai mantenuto la vecchia impostazione o ne hai fatta una nuova....

A parte questo, il mio suggerimento era solo quello di avere una tabella dalla quale risultasse univocamente la DiCo - il Cliente - gli eventuali Allegati.

Per questo avevo suggerito una numerazione univoca delle DiCo da riportare anche nel nome dei file di eventuali allegati.
Non creare i pdf da una tabella, ma il contrario: se crei una DICo alimenti la tabella, se crei l'allegato alimenti la tabella

es:
DiCo_00001_Nominativo_data_etc etc.pdf
Allegato_DiCo_00001.....

Spero che tu risolva rapidamente perchè sono a corto di idee e non me la sento di andare oltre su questo estenuante post.

saluti




Domenico
Win 10 - Excel 2016
26/01/2024 18:16

Chiedo scusa, ma il mio intento era soltanto di capire se quello che volevo fare rispecchiava il tuo consiglio.
Come vedi avevo preso una tranvata.
Grazie per la risposta.
Un saluto.
rex88
Post: 3.710
Registrato il: 06/04/2013
Utente Master
2010
OFFLINE
26/01/2024 18:50

Re:
rex88 (nTdQ231201), 26/01/2024 18:16:

Chiedo scusa, ma il mio intento era soltanto di capire se quello che volevo fare rispecchiava il tuo consiglio.
Come vedi avevo preso una tranvata.
Grazie per la risposta.
Un saluto.
rex88



Consiglio spassionato e senza ombra di polemica:

devi essere tu il primo ad esser convinto che una procedura sia giusta o no e ciò implica che nella tua testa hai chiaro l'iter da seguire.

Se non sei convinto oppure stai andando avanti senza avere una visione d'insieme del progetto, stai commettendo un errore.

Ti faccio una domanda: a che ti serve la tabella? (e non dirmi che te l'ho suggerita io)

saluti





[Modificato da dodo47 26/01/2024 19:17]
Domenico
Win 10 - Excel 2016
Vota:
Nuova Discussione
 | 
Rispondi
Cerca nel forum
Tag discussione
Discussioni Simili   [vedi tutte]
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 03:12. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com