Registriert seit: 02.12.2017
Version(en): Office 365
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?
Registriert seit: 11.03.2015
Version(en): mittlerweile meistens 2019
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
Registriert seit: 06.12.2015
Version(en): 2016
Hallo,
bei *.bat - Dateien kann man Parameter, z.B. einen Dateinamen übergeben. Hast Du geprüft, ob dies auch mit *.vbs geht?
mfg
Registriert seit: 02.12.2017
Version(en): Office 365
11.09.2018, 15:33
(Dieser Beitrag wurde zuletzt bearbeitet: 11.09.2018, 15:33 von Frogger1986.)
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
Registriert seit: 11.03.2015
Version(en): mittlerweile meistens 2019
11.09.2018, 15:53
(Dieser Beitrag wurde zuletzt bearbeitet: 11.09.2018, 15:58 von Der Steuerfuzzi.)
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
Registriert seit: 02.12.2017
Version(en): Office 365
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!!
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
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-2019+365)
Registriert seit: 02.12.2017
Version(en): Office 365
Ok.. Würdest du mir aus reiner Interesse ein Bespiel machen? Wie ich mein Vorhaben umsetzen hätte können auf diesem Weg?
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen,
Eigentlich war der Hinweis an Fennek gedacht wegen dessen Frage nach den Argumenten

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-2019+365)
Registriert seit: 02.12.2017
Version(en): Office 365
12.09.2018, 07:17
(Dieser Beitrag wurde zuletzt bearbeitet: 12.09.2018, 07:17 von Frogger1986.)
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