Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Upload da VBA Excel tramite FTP.

644 views
Skip to first unread message

Alberto

unread,
Jan 19, 2010, 9:45:04 AM1/19/10
to
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.


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

Tiziano Marmiroli

unread,
Jan 19, 2010, 3:57:05 PM1/19/10
to
Il Tue, 19 Jan 2010 06:45:04 -0800 (PST), Alberto ha scritto:

>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

Alberto

unread,
Jan 20, 2010, 3:28:50 AM1/20/10
to
A prima vista sembra fatto su misura per me.
Lo provo e ti faccio sapere.
Ciao e grazie
Alberto

Alberto

unread,
Jan 20, 2010, 7:23:44 AM1/20/10
to
> Lo provo e ti faccio sapere.

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!!!

Alberto

unread,
Jan 20, 2010, 9:53:03 AM1/20/10
to
Risolto!!!
Ho inserito
ChDir Cartella
prima di
Shell ...

Ciao Tiziano e grazie per la dritta.

Alberto

0 new messages