PDA

View Full Version : [VBA Excel] Auto Esportazione su CSV


Vglider
10-01-2020, 11:04
Salve a tutti, sono nuovo quì quindi premetto subito che se ho sbagliato settore per il thread è perchè sono poco avvezzo al forum.

Vi spiego la mia situazione:
ho un grosso file xlsm che fa il suo lavoro perfettamente. C'è al suo interno una tabella con dei dati settimanali divisi per giorni della settimana (riga "LUNEDì", riga "MARTEDì", etc.). Il file viene aggiornato una volta a settimana da un utente e/o saltuariamente in caso di problematiche.

Problema:
Vorrei che creasse un CSV in automatico senza che qualcuno lanci la macro.
A file chiuso dovrebbe lanciare questa sub, che riporto sotto, che fa quel che mi serve:

Sub saveRangeToCSV()

Dim myCSVFileName As String
Dim myWB As Workbook
Dim tempWB As Workbook
Dim rngToSave As Range

Application.DisplayAlerts = False
On Error GoTo err

Set myWB = ThisWorkbook
myCSVFileName = myWB.Path & "\" & "Il_Mio_Nome_File" & ".csv"

Set rngToSave = Range("K72:U76")
rngToSave.Copy

Set tempWB = Application.Workbooks.Add(1)
With tempWB
.Sheets(1).Range("A1").PasteSpecial xlPasteValues
.SaveAs Filename:=myCSVFileName, FileFormat:=xlCSV, CreateBackup:=False
.Close
End With
err:
Application.DisplayAlerts = True
End Sub

Lanciandola a mano funziona, quindi tutto ok.
Ho provato ad aggiungere questa Sub sotto:

Sub Automatico()

Call saveRangeToCSV
'ontime fissa orario operazione
Application.OnTime TimeValue("17:00:00"), "Automatico"

End Sub

Ma non mi lancia il comando in automatico quando dovrebbe avviarsi.

Qualcuno ha consigli o suggerimenti?
(non chiedo il codice voglio solo capire dov'è il mio errore!)


Ho appena testato anche questo codice:

Application.OnTime Now + TimeValue("00:00:10"), "saveRangeToCSV"

lancio la macro a file aperto per vedere se succede qualcosa.
Ho salvato la Sub saveRangeToCSV su un file omonimo (saveRangeToCSV .vba) nella stessa cartella dell'xlsm e dopo 10 secondi come richiesto mi da come errore:

Impossibile eseguire la macro ''...(percorso e nome file).xlsm'!saveRangeToCSV'. E' possibile che tale macro non sia disponibile nella cartella di lavoro o che tutte le macro siano disattivate.

Non so più dove sbattere la testa da 3 giorni :muro:

Vglider
10-01-2020, 11:06
Ho dimenticato il titolo del thread mannaggia scusate

titolo:"Auto Esportazione su CSV"
come lo inserisco?

Vglider
10-01-2020, 14:13
credo di aver sopperito creando un file batch con esecuzione programmata gioranliera che apre a avvia lo script salvato in VBS....credo,sto facendo i test

Vglider
10-01-2020, 15:43
In realtà non mi avvia ne il vbs ne il bat....e non capisco perchè

il file bat è semplicemente
@call cscript "%~dp0funzione.vbs"

avviato a mano funziona...ma non mi va la task schedule.
praticamente rimane in stato "In esecuzione" e non mi parte la chiamata al VBS

misterx
10-01-2020, 23:30
a occhio sembra un problema di policy di sicurezza

Vglider
13-01-2020, 08:25
sto provando una nuova cosa letta online:
avvio direttamente lo script vbs ma ho dovuto cambiare le impostazioni delle operazioni pianificate. come programma da lanciare ho messo semplicemente wscript.exe e come argomento "c:\path..."

spero funzioni stavolta

Vglider
13-01-2020, 08:28
siiiiiiiiiiiiiiiiiiiiiiiiiiiiiii :ciapet:

lascio il link per altre persone che eventualmente finiranno quì con lo stesso problema (o forse sono solo stupido io)

https://turbolab.it/windows-10/eseguire-file-.vbs-tramite-operazioni-pianificate-errore-0x41301-oppure-finestra-apri-588