mrhtoast
Goto Top

Aufgabenplanung .vbs Skript zur Kovertierung .xls in .csv funktioniert nicht

Guten Tag,
ich würde gerne das .vbs (siehe unten) automatisch ausführen per Aufgabenplanung. Das Skript wird aber nur ausgeführt, wenn "nur Ausführen, wenn Benutzer angemeldet" ausgewählt ist. Aber es soll immer ausgeführt werden, egal welcher Benutzer angemeldet ist. Sobald ich es umstelle und einen Benuter hinterlege führt es das Skript nicht mehr aus. Als Benutzer habe ich Administrator, mein Domain Konto und das Konto system getestet.

12341414
So sieht der Aufruf des Skripts in der Aufgabenplanung aus.

Blockiert das Excel? Gibt es da Einstellungen, die man setzten muss?


Dim i
Dim xlsDatei
Dim csvDatei
Dim strDate, strWs
Dim fso, oExcel, wb, ws

Set fso = CreateObject("Scripting.FileSystemObject")  
Set oExcel = WScript.CreateObject("Excel.Application")  
Set objFileSystem = WScript.CreateObject("Scripting.FileSystemObject")  


'---------------------------------------------------------------------  

'---------------------------------------------------------------------  

'aktuelles Jahr  
	strDate = cstr(Year(now))

'Dateipfade  
'	xlsDatei = "\\server\firma\we\BestNr.xls"  
	csvDatei = "\\server\caq-system\Scan\" & strDate & ".csv"  
	txtFehler = Left(txtFehler,InstrRev(csvDatei,"\"))  

'Datei kopieren  
	If fso.FileExists(xlsDatei)= true then
		'Datei öffnen  
			Set wb = oExcel.Workbooks.Open(xlsDatei)
			oExcel.DisplayAlerts = False
			oExcel.Visible = false
		
		'Tabellenblätter werten  
			For i = 1 to wb.Worksheets.count	
				If wb.Worksheets(i).Name = strDate then
					'Speichern  
						wb.Worksheets(i).Activate
						wb.SaveAs csvDatei, 6, , , , , , , , , , True
					
					'Beenden  
						wb.Saved = false
						oExcel.Application.Quit
						Exit For									
				End If
				
				If i = wb.Worksheets.count then
					txtFehler = txtFehler & "Fehler_keinWb_" & date() & ".txt"  
					Set objFile = objFileSystem.CreateTextFile(txtFehler,True)	
					objFile.Close
				End If
			Next				
	Else
		txtFehler = txtFehler & "Fehler_keineXLS_" & date() & ".txt"  
		Set objFile = objFileSystem.CreateTextFile(txtFehler,True)	
		objFile.Close
	End If

Content-Key: 465638

Url: https://administrator.de/contentid/465638

Printed on: April 25, 2024 at 13:04 o'clock

Member: colinardo
colinardo Jun 24, 2019 updated at 13:16:01 (UTC)
Goto Top
Servus,
als erstes muss der jeweilige User natürlich entsprechende Zugriffsrechte auf die UNC-Pfade besitzen, davon gehe ich mal aus, wenn nicht nachholen.
Zweitens muss man bei COM-Automation in der Aufgabenplanung etwas beachten und zwar folgendes
Hatten wir mal in diesem Thread:
Per Batch in Aufgabeplanung XLS in CSV umwandeln
Windows erwartet je nachdem mit welcher Bitness Office installiert ist einen Ordner namens Desktop im Systemprofile-Pfad.
C:\Windows\SysWOW64\config\systemprofile\Desktop (für 32Bit Office)
oder
C:\Windows\system32\config\systemprofile\Desktop (für 64Bit Office)

Windows erstellt diesen Ordner nicht selbst, existiert dieser nicht weigert es sich COM-Aufgaben mit Word/Excel & Co. per Aufgabenplanung unbeaufsichtigt auszuführen.

Wenn man sein VBS Skript die Fehler alle loggen lässt sieht man das auch sehr schön.

Grüße Uwe
Member: MrHToast
MrHToast Jun 24, 2019 at 13:19:58 (UTC)
Goto Top
Danke. Den Thread hatte ich auch gesehen. Hab scheinbar den Ordner irgendwo anders erstellt. Hab das jetzt nochmal überprüft und erstellt, es geht jetzt.