View Full Version : [VBA] - lanciare un foglio di excel passandogli come argomento
da una file batch, devo lanciare un foglio di excel passandogli come argomento un altro foglio di excel che contiene delle macro, in più, devo passare un valore numerico che rappresenta il numero del foglio da elaborare all'interno della cartella
esempio:
excel.exe fogliodilavoro1 5 fogliodilavoro2
dove fogliodilavoro1 è il foglio che contiene la macro e fogliodilavoro2 è il foglio da processare
così a me non funziona :(
anche riuscire a catturare gli argomenti passati a Excel non sarebbe male, esempio:
Excel.exe argomento.xls 5
cells(1,1) = "argomento.xls" 'come stringa
cells(2,1) = 5 'come stringa
ocio che è solo un esempio e non funziona :D
Perchè non ti fai una macro al'interno di Fogliodilavoro1 ?
ho già una macro in "fogliodilavoro1" che dovrebbe elaborare "fogliodilavoro2"
il problema per me non essendo un cultore di VBA è come leggere o passare gli argomenti
nel C hai "argc" = counter ed "argv" = vector ma in VBA ?
mi andrebbe bene anche la seconda ipotesi in quanto lancerei fogliodilavoro1 nel modo:
excel.exe fogliodilavoro1 fogliodaelaborare NumeroDelFogliodaElaborare
azz, abbandonato alla grande
chissà quell'a2OOO dove diamine è finito :D
altro problema
in Foglio1 ho un componente ListBox e nel codice del Foglio1 alcune macro
una l'ho chiamata paperino ma non c'è verso di lanciarla all'apertura del file di excel, sembra che manchi il riferimento, cos'è sbagliato ?
Private Sub Workbook_Open()
paperino
End Sub
ho risolto da me, grazie lo stesso :)
Originariamente inviato da misterx
ho già una macro in "fogliodilavoro1" che dovrebbe elaborare "fogliodilavoro2"
il problema per me non essendo un cultore di VBA è come leggere o passare gli argomenti
nel C hai "argc" = counter ed "argv" = vector ma in VBA ?
mi andrebbe bene anche la seconda ipotesi in quanto lancerei fogliodilavoro1 nel modo:
excel.exe fogliodilavoro1 fogliodaelaborare NumeroDelFogliodaElaborare
ho provato da una shell di MS-DOS a digitare:
excel.exe file1.xls file2.xls file3.xls
e funziona
perchè in un file batch no ?
Originariamente inviato da misterx
ho provato da una shell di MS-DOS a digitare:
excel.exe file1.xls file2.xls file3.xls
e funziona
perchè in un file batch no ?
Ma così te li apre tutti e tre...
Non capisco una cosa... Tu sai a priori i file da aprire ? In tal caso non hai bisogno del passaggiod ei aprametri da riga di comando...
si, conosco a priori il file da aprire
il trucco che mi è venuto in mente è che se io apro in sequenza e sempre:
prima il file da elaborare e poi il file che contiene la macro dovrei essere a posto
usando poi le diavolerie di VBA poi :
workbooks(1) che è il file1.xls quello con i dati e senza macro
e
workbooks(2) che è il file2.xls quello con la macro dovrei essere a posto
ma usando il file batch per aprire i 2 file non funziona
ho notato che i file batch vengono eseguiti in modo differente a seconda del'SO (win98/win2k/winXP)
purtroppo si è creato un ulteriore problema
il file1.xls (quello con i dati) è composto da più fogli di lavoro ed io avrei bisogno di passare al foglio che contiene la macro un valore numerico che rappresenta il numero di foglio da elaborare
al momento attuale sono costrtto ad elaborarli tutti di defaul:muro:
non so se sono riuscito a spiegare il mio problema
Ma se in foglio1.xls tramite VBA apri anche foglio2.xls e foglio3.xls non fai prima ?!?!?!
Dal batch apri solo foglio1.xls e tutti e tre i file si apriranno da soli...
aspetta, la questione è molto più complessa, io per brevità ho raccontato solo una parte della storia
ci sono decine di file di dati ed io non so a priori quale l'utente decide di far elaborare alla mia macro
hanno tutti il medesimo formato ma i dati contenuti sono diversi ed in più, sono "spalmati" su più fogli di lavoro
lui deve elaborare tali file lanciando Excel con un file batch seguendo una sintassi ben precisa
Excel.exe fogliodati.xls foglioconmacro.xls [numero del foglio in fogliodati.xls ???]
[numero del foglio in fogliodati.xls ???] = è il problema maggiore
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.