Print Page | Close Window

[ RISOLTO ]da bat a vba...

Printed From: IALweb
Category: MS Office
Forum Name: Microsoft Access
Forum Discription: Temi legati ad Access e altri software per la gestione di database
URL: https://forum.ialweb.it/forum_posts.asp?TID=16467208
Printed Date: 23/Apr/2019 at 20:11
Software Version: Web Wiz Forums 10.17 - http://www.webwizforums.com


Topic: [ RISOLTO ]da bat a vba...
Posted By: cicciu75
Subject: [ RISOLTO ]da bat a vba...
Date Posted: 08/Gen/2018 at 22:33

Salve,
ho acquistato un programma per splittare i file pdf che funziona anche tramite riga di comando.
eseguendo il seguente file bat infatti funziona:
 


cd C:\Program Files (x86)\A-PDF Content Splitter
PCSCMD.exe "C:\DATI\BustePaga\2017\12\TOT.pdf" "bustepaga.rul" -o"C:\DATI\BustePaga\2017\12"

infatti da un unico file pdf (TOT.pdf) mi genera x file pdf.
ora vorrei automatizzare il processo  tramite vba inserendo le variabili mese ed anno da 2 combobox di una apposita form.
immagino che sia necessario usare la funzione shell ma non riesco a venirne a capo.
Per ora ho provato soluzioni di questo tipo ( addirittura senza l'inserimento delle variabili) ma senza nessun successo:


   Dim strProgramName As String
    Dim strArgument1 As String
    Dim strArgument2 As String
    Dim strArgument3 As String

 ' '"C:\DATI\BustePaga\2017\12\TOT.pdf" "bustepaga.rul" -o"C:\DATI\BustePaga\2017\12"
    strProgramName = "C:\Program Files (x86)\A-PDF Content Splitter\PCSCMD.exe"
    strArgument1 = "C:\DATI\BustePaga\2017\12\TOT.pdf"
    strArgument2 = "bustepaga.rul"
    strArgument3 = -o"C:\DATI\BustePaga\2017\12"
   Call Shell(strProgramName & """ """ & strArgument1 & """" & """ """ & strArgument2 & """"& """ """ & strArgument3 & """" , vbNormalFocus)

Potete darmi una mano?
Grazie mille




Replies:
Posted By: willy55
Date Posted: 08/Gen/2018 at 23:38

Se l'esempio, da te citato, del batch si riferisce all'anno 2017 e al mese di dicembre (12) come nella istruzione del file BAT:


PCSCMD.exe "C:\DATI\BustePaga\2017\12\TOT.pdf" "bustepaga.rul" -o"C:\DATI\BustePaga\2017\12"

dovrai impostare le stringhe degli argomenti facendo riferimento ai relativi controlli di anno e mese con cui nella maschera selezionerai il periodo.
Quindi, ipotizzando che i due controlli (che denomineremo controlloAnno e controlloMese) siano di tipo numerico dovrai effettuare la conversione a stringa con STR, togliendo eventuale spazio in testa (a sinistra) con la funzione LTRIM, come ad esempio:

strArgument1 = "C:\DATI\BustePaga\"& LTRIM(STR(controlloAnno)) & "\" & LTRIM(STR(controlloMese)) & "\TOT.pdf"

ed allo stesso modo lo dovrai adattare al terzo argomento.
Poi ricostruirai l'intera stringa del file batch (con eseguibile e la concatenazione dei tre argomenti) da passare alla SHELL; ove qualora il path contenga degli spazi deve essere racchiuso fra doppi apici, ovvero il carattere ASCII CHR(34) così come quando gli argomenti debbano essere compresi fra doppi apici.
 
PS quando alleghi del codice, come previsto racchiudilo fra tag-code (questa volta ho provveduto personalmente).

 



-------------
Willy


Posted By: cicciu75
Date Posted: 08/Gen/2018 at 23:51
Innanzi tutto ti ringrazio per avermi risposto.
in realtà sono ancora un passo indietro.
se provo ad eseguire direttamente questo ( il terzo argomento è facoltativo):

Call Shell("C:\Program Files (x86)\A-PDF Content Splitter\PCSCMD.exe" & """ """ & "C:\DATI\BustePaga\2017\12\TOT.pdf" & """ """ & "bustepaga.rul", vbNormalFocus)
mi dice file non trovato.
penso che si tratti di un banale problema di sintassi ma che no nriesco a risolvere. mi potresti dare una mano? grazie


Posted By: cicciu75
Date Posted: 09/Gen/2018 at 00:01
....banalissimo errore che mi ha fatto perdere diverse ore...allego soluzione
Banalmente mettevo troppi apici....
 

    strProgramName = "C:\Program Files (x86)\A-PDF Content Splitter\PCSCMD.exe"
    strArgument1 = "C:\DATI\BustePaga\" & Me.Anno & "\" & Me.mese & "\TOT.pdf"
    strArgument2 = "bustepaga.rul"
    Call Shell(strProgramName & " " & strArgument1 & " " & strArgument2, vbNormalFocus)
 
Grazie mille!!


Posted By: willy55
Date Posted: 09/Gen/2018 at 00:26
Se hai concluso positivamente il thread, come previsto dela forum, devi porre "Risolto" nel titolo del tuo primo post, con l'occasione ti rinnovo ad impiegare i tag-code nel codice in modo da favorire la lettura ai futuri lettori 

-------------
Willy


Posted By: cicciu75
Date Posted: 09/Gen/2018 at 00:31
..ehm....se sapessi come si fa.... ho provato a fare edit del post ma mi fa modificare il testo e non il titolo...poi la storia di tag proprio non ne ho idea... mi spieghi qui o devo aprire un post apposito?  Geek


Posted By: willy55
Date Posted: 09/Gen/2018 at 13:06
Per l'impiego dei tag-code esiste, nel forum, apposito tutorial:
http://forum.ialweb.it/forum_posts.asp?TID=16465374&title=tutorial-tag-code" rel="nofollow - http://forum.ialweb.it/forum_posts.asp?TID=16465374&title=tutorial-tag-code


-------------
Willy


Posted By: cicciu75
Date Posted: 09/Gen/2018 at 23:44
ho imparato a mettere i tag ma nel frattempo qualcuno l'ha già fatto al posto mio. Grazie mille!!



Print Page | Close Window

Forum Software by Web Wiz Forums® version 10.17 - http://www.webwizforums.com
Copyright ©2001-2013 Web Wiz Ltd. - http://www.webwiz.co.uk