Page 1 of 2 1 2 LastLast
Showing results 1 to 10 of 17

Thread: Mit VBA Dateien von einem PC auf einen anderen PC kopieren

  1. #1
    Join Date
    13.10.2017
    Posts
    19

    Default Mit VBA Dateien von einem PC auf einen anderen PC kopieren

    Hallo,

    Ich habe mir eine Batch Datei erstellt (mit Parameter Übergabe) mit der ich von mehreren PCs zu einem anderen PC Dateien kopieren kann.
    Der Parameter ist für die Datei die kopiert werden soll. Immer eine andere Datei.

    Jetzt wollte ich diese Batch Datei mit Zenon über eine Funktion (Starte Programm) aufrufen lassen.
    Und eine Variable aus der SPS als Parameter mit übergeben.
    Das geht leider nicht.

    Jetzt versuche ich das mit VBA zu lösen da ich die Variable aus der SPS in VBA schon zur Verfügung habe.

    Da weiß ich aber nicht genau wie.

    Code:
    Quellpfad = "\\PC1\Freigabeordner\"
    Quellpfad = "\\PC2\Freigabeordner\"
    Quellpfad = "\\PC3\Freigabeordner\"
    
    
    Zielpfad = "D:\AppData\" 
    
    
    Set fso = CreateObject("Scripting.FileSystemObject") 
    
    For Each Quellpfad.....???
    
    fso.CopyFile Quellpfad & "(Variable aus der SPS).csv", Zielpfad
    Wäre toll wenn mir einer helfen könnte.

    Mfg Tommylik
    Last edited by Tommylik : 29th April 2020 at 13:24

  2. #2
    Join Date
    10.12.2007
    Posts
    210

    Default AW: Mit VBA Dateien von einem PC auf einen anderen PC kopieren

    Naja ein bisschen mehr Eigeninitiative (mit VBA Datei kopieren googeln) oder Information (warum benutzt du nicht die zenon Funktion Dateioperation?) wäre schon gut.

  3. #3
    Join Date
    13.10.2017
    Posts
    19

    Default AW: Mit VBA Dateien von einem PC auf einen anderen PC kopieren

    Hallo,

    Habe die Lösung gefunden.

    Code:
    Dim FSO As Object
    Set FSO = CreateObject("Scripting.FileSystemObject")
    FSO.CopyFile "\\PC1\AppData\*.txt", "D:\AppData\"
    FSO.CopyFile "\\PC2\AppData\*.txt", "D:\AppData\"
    FSO.CopyFile "\\PC3\AppData\*.txt", "D:\AppData\"
    @mst

    (warum benutzt du nicht die zenon Funktion Dateioperation?)
    Weil ich der Dateioperation keine Variable aus der SPS übergeben kann, was zwingend Notwendig ist.

    Vielen Dank

    Mfg Tommylik

  4. #4
    Join Date
    28.02.2013
    Posts
    215

    Default Re: AW: Mit VBA Dateien von einem PC auf einen anderen PC kopieren

    Hallo Tommylik,

    bitte beachte, dass VBA-Code den zenon Hauptthread blockieren kann.
    Ich würde das daher ausgiebigst testen. Auch mit Testfällen wo die Rechner übers Netz nicht erreichbar sind oder viele/große Dateien über langsame Verbindungen geholt werden müssten.

    Und ich weise nochmal auf das AddIn-Framework hin, dass auch asynchrone Programmierung unterstützt.

    Schöne Grüße aus Salzburg,
    Felix

  5. #5
    Join Date
    13.10.2017
    Posts
    19

    Default Re: Mit VBA Dateien von einem PC auf einen anderen PC kopieren

    Hallo felixst,

    Vielen Dank für deine Antwort.

    Ich würde das daher ausgiebigst testen.
    Das werde ich. Die Dateien sind sehr klein (kB) und Neztwerk wird überwacht.

    Und ich weise nochmal auf das AddIn-Framework hin.
    Das ist bestimmt die Zukunft davon habe ich aber leider keine Ahnung genauso wenig wie von C#.
    Also muss ich auf Sachen zurückgreifen die ich zur Verfügung habe und wenigstens ein bisschen verstehe.

    Vielleicht kannst du mir trotzdem helfen.

    Wenn ich WildCards benutze (*) oder den kompletten Dateinamen angebe dann werden die Dateien ohne Probleme kopiert.
    Code:
    FSO.CopyFile "\\PC1\AppData\*.txt", "D:\AppData\"
    oder 
    FSO.CopyFile "\\PC1\AppData\12345.txt", "D:\AppData\"
    Wenn ich aber eine Variable benutze dann bekomme ich den Laufzeitfehler 53: Datei nicht gefunden.

    Code:
    Dim FSO As Object
    Dim VarNr As String
    Dim Vartext As String
    
    
    VarNr = thisProject.Variables.Item("PraegeNr").Value
    Vartext = Format(CStr(VarNr), "00000000000")  
    
    
    
    Set FSO = CreateObject("Scripting.FileSystemObject")
    FSO.CopyFile "\\PC1\AppData\" + Vartext + ".txt", "D:\AppData\"
    Wo ist der Fehler? Es liegt am Syntax oder?

    Vielen Dank nochmal für deine Hilfe.

    Mfg Tommylik

  6. #6
    Join Date
    10.12.2007
    Posts
    210

    Default AW: Mit VBA Dateien von einem PC auf einen anderen PC kopieren

    Kann es am Format Ausdruck liegen?
    Vartext = Format(CStr(VarNr), "00000000000")

    ergibt für den Wert 12345 -> "00000012345" und nicht "12345"

    (vgl.:
    FSO.CopyFile "\\PC1\AppData\12345.txt", "D:\AppData")

  7. #7
    Join Date
    02.02.2012
    Posts
    14

    Default Re: Mit VBA Dateien von einem PC auf einen anderen PC kopieren

    Hallo Tommylik,

    könnte es sein, dass die Variable nicht am Treiber angemeldet ist? Falls nein, würde der lesende Zugriff auf die Variable nicht den erwarteten Wert liefern.

    Das Variablenobjekt hat ein Property isOnly, über welches man dies prüfen kann.

    Gerade bei einer Variable des internen Treibers kann aber schon das Akitivieren des Parameters "Variable ständig lesen" helfen.

    Schöne Grüße aus Ottobrunn,
    Martin

  8. #8
    Join Date
    13.10.2017
    Posts
    19

    Default AW: Mit VBA Dateien von einem PC auf einen anderen PC kopieren

    Hallo,

    @ alle

    Ich habe noch etwas geändert. Das "+" Zeichen gegen das "&" Zeichen ausgetauscht.

    Code:
    FSO.CopyFile "\\PC1\AppData\" & Vartext & ".txt", "D:\AppData\"
    Die Variable ist Online weil ich mit der vorher schon ein Ordner erstelle.

    Das Problem ist gewesen das ich den VBA Code im Debuggmodus durchlaufen lassen habe.

    Ich habe dann einfach mal einen Button mit einer Funktion erstellt die das Makro aufruft und sie da es funktioniert.

    @ martin_f

    Ich habe die Variable auf ständig lesen, weiß aber nicht wie ich diese Funktion dann im VBA Editor nutzen kann.

    Nun gut, es funktioniert jetzt und ich danke Euch für Eure Hilfe.

    Mfg Tommylik

  9. #9
    Join Date
    10.12.2007
    Posts
    210

    Default AW: Mit VBA Dateien von einem PC auf einen anderen PC kopieren

    @martin_f: Das Property dass du gemeint hast war vermutlich .IsOnline - wobei ich .IsOnly auch witzig fände

    @Tommylik: Die Option "ständig lesen" musst Du nicht aktiv in VBA nutzen, sie stellt nur sicher, dass die Variable einen Wert hat (s.o. dass sie also Online ist). Sonst kann der Zugriff auf Value einen Fehler liefern.

  10. #10
    Join Date
    13.10.2017
    Posts
    19

    Default AW: Mit VBA Dateien von einem PC auf einen anderen PC kopieren

    Hallo mst,

    Vielen Dank für deine Antwort.

    Die Option "ständig lesen" ist für alle Variablen gedacht oder nur für die Variblen die man mit .value abfragt.

    Weil ich auch Variablen nutze die ich als "Boolean" oder "Variable" deklariert habe.

    musst Du nicht aktiv in VBA nutzen,
    Könntest du mir ein Beispiel zeigen wie man es aktiv nutzen kann.

    Vielen Dank noch mal für deine Hilfe.

    Mfg Tommylik

Similar Threads

  1. Replies: 1
    Last Post: 14th August 2014, 14:19
  2. Werte kopieren
    By jochenh in forum VBA
    Replies: 4
    Last Post: 28th March 2014, 08:13
  3. Umzug Zenon Runtime und Archive auf anderen Server
    By zero in forum zenon Supervisor
    Replies: 2
    Last Post: 29th January 2014, 10:47
  4. Kopieren großer Dateien
    By armins in forum VSTA
    Replies: 4
    Last Post: 18th October 2013, 07:13
  5. Daten an anderen Rechner senden
    By wenzm in forum zenon Network
    Replies: 6
    Last Post: 5th July 2013, 00:51

Posting Rules

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •