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

Excel VBA FTP

19 views
Skip to first unread message

Beck, Alwin

unread,
Apr 8, 2009, 4:32:03 AM4/8/09
to
Hallo,
ich versuche �ber EXCEL eine Datei auf ein System zu �bertragen.
Dabei gibt es Probleme beim Login.
Wenn ich gem. unten aufgef�hrtem code das mache, kommt immer
ein Fehler beim Kennwort - es erfolgt kein Login.

Setze ich die Shell ganz ans Ende also nach Block

Print #1, "close"
Print #1, "quit"
Close #1

so funktioniert der Login - aber es wird nichts �bertragen.
Was stimmt hier nicht ?

Private Sub CommandButton1_Click()
'FTP �bertragung einer Datei auf Server

Dim Name01
Dim PW01
Dim System

Name01 = InputBox("Name eingeben")
PW01 = InputBox("PW eingaben")
System = "192.168.100.1"

Open "c:\ftpupload.bat" For Output As #1
Print #1, "@echo off"
Print #1, "ftp %1 %2"
Print #1, "pause"
Close #1

Open "c:\ftpupload.txt" For Output As #1
Print #1, Name01
Print #1, PW01
Print #1, "Binary"
Print #1, "verbose aus"
Print #1, "cd test"

Shell "c:\ftpupload.bat -s:c:\ftpupload.txt " & System, vbNormalFocus

Print #1, "close"
Print #1, "quit"
Close #1

End Sub

Danke
Gru�
Albe

Thomas Kühn

unread,
Apr 8, 2009, 5:11:02 AM4/8/09
to
Hallo Alwin,

>
> Open "c:\ftpupload.txt" For Output As #1

Hier überschreibst Du die zuvor geschrieben Datei
wieder. Versuche mal:

Open "c:\ftpupload.txt" For Append As #1


Gruß Thomas


--
http://www.thomas-kuehn.de

Bernhard Sander

unread,
Apr 8, 2009, 5:35:58 AM4/8/09
to
Hallo Alwin

> ich versuche über EXCEL eine Datei auf ein System zu übertragen.


> Dabei gibt es Probleme beim Login.

> Wenn ich gem. unten aufgeführtem code das mache, kommt immer


> ein Fehler beim Kennwort - es erfolgt kein Login.
>
> Setze ich die Shell ganz ans Ende also nach Block
>
> Print #1, "close"
> Print #1, "quit"
> Close #1
>

> so funktioniert der Login - aber es wird nichts übertragen.


> Was stimmt hier nicht ?
>
> Private Sub CommandButton1_Click()

> 'FTP Übertragung einer Datei auf Server


>
> Dim Name01
> Dim PW01
> Dim System
>
> Name01 = InputBox("Name eingeben")
> PW01 = InputBox("PW eingaben")
> System = "192.168.100.1"
>
> Open "c:\ftpupload.bat" For Output As #1
> Print #1, "@echo off"
> Print #1, "ftp %1 %2"
> Print #1, "pause"
> Close #1
>
> Open "c:\ftpupload.txt" For Output As #1
> Print #1, Name01
> Print #1, PW01
> Print #1, "Binary"
> Print #1, "verbose aus"
> Print #1, "cd test"
>
> Shell "c:\ftpupload.bat -s:c:\ftpupload.txt " & System, vbNormalFocus
>
> Print #1, "close"
> Print #1, "quit"
> Close #1
>
> End Sub

Der Shell-Aufruf darf erst nach dem Close #1 kommen. Denn im Shell-Befehl wird
die Datei ftpupoad.txt verwendet, die ist aber noch in VBA geöffnet, das beisst
sich heftig.

Du hast diese Variante schon probiert, aber es wurde nichts hochgeladen. Das
verwundert eher nicht, denn das Hochladen wird durch den FTP-Befehl PUT
bewerkstelligt, der kommt in Deiner Steuerdatei nicht vor.

NB: Der Befehl verbose hat keinen Parameter sondern schaltet bei jedem Aufruf
den Modus um. Das "aus" dahinter hat keine Wirkung.

Gruß
Bernhard Sander

Beck, Alwin

unread,
Apr 8, 2009, 5:57:52 AM4/8/09
to

"Bernhard Sander" <off...@kein.spam> schrieb im Newsbeitrag
news:uKRYt1Cu...@TK2MSFTNGP04.phx.gbl...
Hallo Alwin

Gruß
Bernhard Sander

Hallo Bernhard,

das mit Close #1 habe ich soeben auch festgestellt. Danke für Deine
Info.
Wenn ich jedoch nach der Shell PUT verwende passiert nichts - es wird
nichts
mehr geschrieben im DOS Fenster - bin ich nun "Rauß" aus dem DOS
Fenster nach dem Close ?


Dim Name01
Dim PW01
Dim System


Name01 = InputBox("Name eingeben")
PW01 = InputBox("PW eingaben")
System = "192.168.100.1"

Open "c:\ftpupload.bat" For Output As #1
Print #1, "@echo off"
Print #1, "ftp %1 %2"
Print #1, "pause"
Close #1

'Open "c:\ftpupload.txt" For Append As #1


Open "c:\ftpupload.txt" For Output As #1
Print #1, Name01
Print #1, PW01
Print #1, "Binary"

Print #1, "cd test"
Close #1

Shell "c:\ftpupload.bat -s:c:\ftpupload.txt " & System, vbNormalFocus

Print #1, "put ftpupload.txt" -----> ab hier passiert nun
nichts mehr - im Dos Fesnter wird nichts mehr geschrieben


Print #1, "quit"
Close #1
End Sub


Danke
Gruß
Albe

Beck, Alwin

unread,
Apr 8, 2009, 6:03:54 AM4/8/09
to
Sorry - mein Fehler
Schreibe natürlich vor der Shell !
Nun passt es
Danke

"Beck, Alwin" <ungu...@ungueltig.invalid> schrieb im Newsbeitrag
news:eHRe9BDu...@TK2MSFTNGP05.phx.gbl...

0 new messages