Hallo zusammen.
Suche für einen Kumpel ein VBSript das je nachdem wie Spät es ist eine Datei startet also zb. zwischen 6 u.12 Uhr datei1 und zwischen 12 u.18 Uhr datei2. Wenn es zb.8Uhr ist wird datei1 gestartet.
Ich hoffe ich habe mich verständlich genug ausgedrückt.
Vielen Dank im vorraus.
Programmieren - alles kontrollieren 4.934 Themen, 20.613 Beiträge
Übernahme nach Excel implementieren: ja, kann man, die Objekt von Excel, also z.B. die Zeilen und Spalten auf einem Excel-Tabellenblatt, können angesprochen werden - ist aber ein klein wenig komplizierter, werde mal ein Beispiel suchen ...
Für den Moment noch ein Tipp zum Entwickeln mit VBScript: das Skript in VBA entwickeln, also z.B. innerhalb von Word oder Excel.
Weg: Excel starten (leere Arbeitsmappe), unter Extras --> Makro den Visual-Basic-Editor öffnen. In der Liste links "Diese Arbeitsmappe" doppelklicken --> rechts wird ein Programmfenster geöffnet.
Darin jetzt den Code erfassen. Unterschied zu VBScript: in VBA muss auch das Hauptprogramm in einer Funktion drin definiert werden.
Vorteil: es werden schlauere Fehlermeldungen angezeigt, und der Debugger springt auf die Zeile, die ein Problem macht. Und: wenn unter Extras --> Verweise die entsprechenden Libraries angehakt sind, kann man mit F2 direkt eine Liste der Objekte / Eigenschaften etc. anzeigen lassen. Libraries: Windows Script Host Object Model, und Microsoft Scripting Runtime.
Ausserdem: wenn bei "Dim" der Datentyp richtig angegeben worden ist, kann man die Variable schreiben und den Punkt setzen --> eine Liste mit Methoden und Eigenschaften erscheint.
Hier das Programm, wie ich es in VBA entwickelt habe - für VBScript müssen die "as ..." nach dem "Dim" weg:
Option Explicit
Dim fso As FileSystemObject
Dim fout As TextStream
Function dirListe()
Dim WshShell As WshShell
Dim sCurDir As String
Dim sPfad As String
Dim sParentDir As String
' Objekte initialisieren
Set fso = CreateObject("Scripting.FileSystemObject")
Set WshShell = CreateObject("WScript.Shell")
' Verzeichnis angeben lassen
sParentDir = InputBox("Verzeichnis angeben:", _
"Verzeichnisinhalt auflisten", "C:\Temp")
If sParentDir = "" Then
MsgBox "Kein Verzeichnis angegeben."
Exit Function
End If
' Outputdatei öffnen
sCurDir = WshShell.CurrentDirectory
sPfad = fso.BuildPath(sCurDir, "dir.txt")
Set fout = fso.OpenTextFile(sPfad, ForWriting, True)
fout.Write "Verzeichnis von " & sParentDir & vbCrLf & vbCrLf
' Liste erzeugen
Call DateilisteAnzeigen(sParentDir, 0)
' Ende
fout.Close
MsgBox "Verzeichnis wurde geschrieben nach: " & sPfad
End Function
Function DateilisteAnzeigen(ordnerAngabe, tiefe)
Dim oParent As Folder
Dim oFolders As folders
Dim oFiles As files
Dim fo As Folder
Dim fi As file
Dim sList As String
' Liste beginnt mit Verzeichnis
Set oParent = fso.GetFolder(ordnerAngabe)
sList = Space(tiefe) & oParent.Name
sList = sList & Space(60 - Len(sList)) & oParent.DateLastModified
sList = sList & vbCrLf
fout.Write sList
'hier geht's rekursiv los:
'für alle Unterverzeichnisse die Funktion nochmal aufrufen ...
Set oFolders = oParent.SubFolders
For Each fo In oFolders
Call DateilisteAnzeigen(fo, tiefe + 3)
fout.Write vbCrLf
Next
'und jetzt noch die Files im Verzeichnis:
Set oFiles = oParent.files
For Each fi In oFiles
sList = Space(tiefe + 3) & fi.Name
sList = sList & Space(60 - Len(sList)) & fi.DateLastModified
sList = sList & vbCrLf
fout.Write sList
Next
End Function