Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

.vbs Script mit VBA schreiben
#1
Hallo schon wieder..

Ich würde gern ein .vbs - Script mit vba umschreiben, um eine Exceldatei damit aufzurufen die den Namen immer ändert... 

Hat mir da jemand eine Hilfestellung?
Eine Menge reden, aber nichts sagen können viele...
Antwortento top
#2
Hallo,

Mehrere Möglichkeiten:
-Erstelle eine Textdatei mit dem vbs-Code, die Du mit der Endung .vbs speicherst.
-Erstelle eine .vbs-Datei, die Du per VBA öffnest und die Teile dann abänderst, die Du ändern möchtest
-Mache das, was Du mit dem vbs-Code machen willst, gleich mit VBA

Dazu müsstest Du aber etwas konkreter werden.
Gruß
Michael
Antwortento top
#3
Hallo,

bei *.bat - Dateien kann man Parameter, z.B. einen Dateinamen übergeben. Hast Du geprüft, ob dies auch mit *.vbs geht?

mfg
Antwortento top
#4
Also @steuerfuzzi

Ich habe eine Datei, die sich selbständig mit "Application.OnTime" Oder durch Schaltflächenbetätigung speichert! Dabei wird immer das aktuelle Datum und ein Dateibeisatz gesetzt "Schichtprotokoll vom 11.09.2018" z.B...

Nun möchte ich aber immer über den Desktop die aktuelle Datei öffnen, ohne im Verzeichnis danach zu suchen, da das Programm öffentlich zugänglich ist! 

Die Datei soll immer durch ein Icon geöffnet werden, das immer die aktuellste Datei öffnet...

Also ich würde gern in dem Skript einfach immer den aktuelle Dateipfad ändern wollen!

Hier das Script als .vbs (mit Beispielpfad geschrieben mit dem Notepad)

Code:
Option Explicit
Dim xlApp , Pfad
Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = True
Pfad = "C:\Eigene Dateien\Deine Datei.xls"
xlApp.Workbooks.Open Pfad
set xlApp = nothing
Eine Menge reden, aber nichts sagen können viele...
Antwortento top
#5
Da würde ich die aktuelle Datei immer ohne Zusatz speichern. Wenn die neue Speicherung erfolgt, ist der erste Schritt, die (noch) aktuelle Datei unter dem gewünschten Namen mit Datum zu speichern und dann die Alte Datei mit der neuen zu überspeichern. Damit kannst Du eine Verknüpfung zu der Datei ohne Endung auf dem Desktop lassen, ohne diese ändern zu müssen.

Ich lese aus Deinem Post heraus, dass es sich bei der betreffenden Datei um die geöffnete handelt. Dann könnte das Speichern evtl. so ähnlich aussehen:
Code:
Sub speichern()
Dim objFSO
Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.CopyFile ThisWorkbook.FullName, ThisWorkbook.Path & "\Schichtprotokoll vom " & Format(Now(), "dd.mm.yyyy") & ".xlsm", True
ThisWorkbook.Save
End Sub

EDIT: Achtung! Beim Filecopy mit True wird die Datei überschrieben, wenn diese bereits exisitiert! Ggf. die Zeit (mit Sekunden) in den Dateinamen aufnehmen, damit es nicht vorkommt, dass Dateien überschrieben werden.
Gruß
Michael
[-] Folgende(r) 1 Benutzer sagt Danke an Der Steuerfuzzi für diesen Beitrag:
  • Frogger1986
Antwortento top
#6
Du bist einsame Spitze.. da hätte ich auch selbst drauf kommen können...  20 20 

Klaar erst speichere ich die Datei mit den Daten unter dem Namen den ich brauche, dann leere ich die Daten und speichere die Datei wieder im der Ursprünglichen Bezeichnung...… 

Irgendwann sieht man vor lauter Bäumen den Wald nicht mehr.. 

Danke dir!!
Eine Menge reden, aber nichts sagen können viele...
Antwortento top
#7
Hallöchen,

nur mal der Vollständigkeit halber.

Argumente an ein Script werden mit wscript.arguments ausgewertet. …(0), …(1) usw.
Man kann dazu z.B. eine oder mehrere Dateien auf ein Script ziehen und diese werden dann "abgearbeitet".
   \\\|///      Hoffe, geholfen zu haben.
   ( ô ô )      Grüße, André aus G in T  
 ooO-(_)-Ooo    (Excel 97-2016)
Antwortento top
#8
Ok.. Würdest du mir aus reiner Interesse ein Bespiel machen? Wie ich mein Vorhaben umsetzen hätte können auf diesem Weg?
Eine Menge reden, aber nichts sagen können viele...
Antwortento top
#9
Hallöchen,

Eigentlich war der Hinweis an Fennek gedacht wegen dessen Frage nach den Argumenten Smile
Da muss ich aber nochmal fragen, welche Aufgabe genau. Die letzte / aktuellste Datei in einem bestimmten Pfad öffnen? Nach welchen Gesichtspunkten soll ein Pfad geändert werden und warum?

Das wäre erst mal die letzte Datei:
Code:
'Ordner festlegen
Const Path = "C:\Test"
'Varialendeklarationen
Dim oFso, oFile, sFilePath, SFileName, dFileTime
'Objekt setzen
Set oFso = CreateObject("Scripting.FileSystemObject")
'Startdatum setzen
sFileTime = DateValue("01.01.2000")
'Schleife ueber alle Dateien des Ordners
For Each oFile In oFso.GetFolder(Path).Files
        'Wenn das Dateidatum neuer ist, Zeit und Name und Pfad uebernehmen
        If dFileTime < oFile.DateLastModified Then
        dFileTime = oFile.DateLastModified
        sFilePathName = oFile.Path
    End If
Next
MsgBox sFilePathName & vbLf & "Letzte Aenderung: " & dFileTime
   \\\|///      Hoffe, geholfen zu haben.
   ( ô ô )      Grüße, André aus G in T  
 ooO-(_)-Ooo    (Excel 97-2016)
Antwortento top
#10
Der Pfad sollte geändert werden, da sich der Dateiname der Aktuellen Datei ständig verändert! Ich wollte mit der Besagten Datei (tägliches Schichtprotokoll) eben das Script schreiben um immer das Aktuelle zu greifen, da das Schichtprotokoll dann von ettlichen Mitarbeitern gefüllt wird! ( Allerdings war das natürlich in der Form dann nicht so klug, wie wir ja dann festgestellt hatten)

Sozusagen eine Verknüpfung mit variablem Ziel
Eine Menge reden, aber nichts sagen können viele...
Antwortento top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste