Contenuto del file Script.ftp:
open 11.222.333.44
A123456
A123456
quote site rec=FB lr=600 blk=0 pri=20 sec=20 chk=0 trail
sbd=DS03.FTPXXXXX.TCPXLBIN
put AGGPRATI_20100118.txt 'DJ04.A8888M1F.AGGPRATI.R.WORK'
quit
Contenuto del file Comando.bat
ftp -s:Script.ftp
Quello che vorrei é poter comandare l'invio tramite FTP, direttamente
dal codice VBA, eliminando i file .ftp e .bat
Ciao a tutti e grazie in anticipo.
Excel 2003 e Win XP PRO
>Premessa:
>Alla fine dell'esecuzione di un codice VBA, il file xls viene salvato
>come txt, con il nome AGGPRATI_20100118.txt. (la seconda parte del
>nome � una data e varia ogni giorno; non � la data odierna!)
>Successivamente apro il file Script.ftp, sostituisco il nome del file
>con quello nuovo, salvo e lo chiudo.
>Per ultimo lancio il file Comando.bat che inoltra tramite FTP.
>Quello che vorrei � poter comandare l'invio tramite FTP, direttamente
>dal codice VBA, eliminando i file .ftp e .bat
http://www.bygsoftware.com/Excel/VBA/ftp.htm
Facci sapere se e come hai risolto, grazie.
--
Tiziano Marmiroli
Microsoft MVP - Office System
http://www.riolab.org
Funziona sino alla penultima riga.
Ecco come ho adattato:
Dim Cartella As String
Dim FiledaInviare As String
Dim Password As String
Dim FileSript As Integer
Dim FileInvio As Integer
Cartella = "C:\Documents and Settings\U0362AA\Desktop\FTP_MAD\"
FiledaInviare = "AGGPRATI_20100111.txt" 'inserire in automatico
If Dir(Cartella & "Invio.bat") <> "" Then Kill (Cartella &
"Invio.bat")
If Dir(Cartella & "Script.ftp") <> "" Then Kill (Cartella &
"Script.ftp")
FileSript = FreeFile
FileInvio = FreeFile
'Crea file Script
Password = InputBox("Inserire password FTP !")
Open Cartella & "Script.ftp" For Output As #FileSript
Print #FileSript, "open 11.222.333.44"
Print #FileSript, "U0362AA"
Print #FileSript, Password
Print #FileSript, "quote site rec=FB lr=600 blk=0 pri=20 sec=20
chk=0 trail sbd=DS03.FTPICCRE.TCPXLBIN"
Print #FileSript, "put FiledaInviare & "
'DJ04.AXXXXXXX.AGGPRATI.R.WORK'"
Close #FileSript
'Crea file Batch
Open Cartella & "Invio.bat" For Output As #FileInvio
Print #FileInvio, "ftp -s:Script.ftp"
Close #FileInvio
fino a quì funziona tutto ok; se clicco manualmente sul file Invio.bat
il file viene trasmesso a/m FTP
se invece aggiungo
Shell (Cartella & "Invio.bat"), vbMaximizedFocus
per automatizzare anche l'invio finale, la cosa non funziona.
si apre la finestra dos, scrive qualcosa e si richiude subito senza
darmi la possibilità di leggere quello che ha scritto.
e comunque il file non parte.
Ho provato anche con
Dim RetVal
RetVal = Shell(Cartella & "Invio.bat", 3)
ma la musica non cambia!!!
Ciao Tiziano e grazie per la dritta.
Alberto