Hallo,
bei meinem Makro habe ich nach Anzahl X durchläufen eine Fehlermeldung: Ungültige Parameter. Die entsprechende Zeile ist immer die gleiche, Zeile 147.
woran kann das liegen?
Code-Tags eingefügt und Farbe korrigiert ~ EaranMaleasi
bei meinem Makro habe ich nach Anzahl X durchläufen eine Fehlermeldung: Ungültige Parameter. Die entsprechende Zeile ist immer die gleiche, Zeile 147.
Visual Basic-Quellcode
- [PCOMM SCRIPT HEADER]
- LANGUAGE=VBSCRIPT
- DESCRIPTION=
- [PCOMM SCRIPT SOURCE]
- OPTION EXPLICIT
- autECLSession.SetConnectionByName(ThisSessionName)
- REM This line calls the macro subroutine
- subSub1_
- Sub subSub1_()
- Dim LfrndNummer, str_JobDatei, str_ZeileLesen
- Dim Pos, Liefertermin, Bestellnummer
- Dim obj_FSO, obj_File
- Dim OrdnerDesktop, File
- Dim MsBoErgebnis, tempzeile
- Set obj_FSO = CreateObject("Scripting.FileSystemObject")
- '--------------------- Jobdatei finden -------------------------------------------------------------------
- str_JobDatei = ""
- LfrndNummer = leseBildschrim(6, 12, 7)
- str_JobDatei = Desktopfinden() & "a_Termin.csv"
- If obj_FSO.FileExists(str_JobDatei) = True Then
- MsBoErgebnis = vbNo
- MsBoErgebnis = MsgBox("Wollen sie folgende Jobdatei einlesen?" & vbNewLine & str_JobDatei, vbYesNo OR vbQuestion, "Jobdatei gefunden!")
- If MsBoErgebnis = vbNo then
- str_JobDatei = ""
- End If
- Else
- str_JobDatei = ""
- End If
- If str_JobDatei = "" Then
- Set OrdnerDesktop = obj_FSO.GetFolder(Desktopfinden())
- For Each File in OrdnerDesktop.Files
- If LCase(Right(File.Name,4)) = ".csv" = True Then
- MsBoErgebnis = vbNo
- MsBoErgebnis = MsgBox("Wollen sie folgende Datei einlesen?" & vbNewLine & Desktopfinden() & File.Name, vbYesNo OR vbQuestion OR vbDefaultButton2, "CSV gefunden!")
- If MsBoErgebnis = vbYes then
- str_JobDatei = Desktopfinden() & File.Name
- Exit For
- End If
- End If
- Next
- End If
- If str_JobDatei = "" Then
- MsgBox "keine Jobdatei gefunden",vbcritical,"Fehler - Skript beendet"
- Exit Sub
- End If
- '---------------------------------------------------------------------------------------------------------
- ' --------------------- Jobdatei prüfen ------------------------------------------------------------------
- ' #### ToDo: Prüfung der Jobdatei vor Beginn der Eingabe
- Set obj_File = obj_FSO.OpenTextFile(str_JobDatei)
- str_ZeileLesen = obj_File.ReadLine 'Kopfzeile wird nicht geprüft (wird sowieso ignoriert)
- Do Until obj_File.AtEndOfStream
- str_ZeileLesen = obj_File.ReadLine
- tempzeile = Split(str_ZeileLesen,",")
- Pos = tempzeile(1)
- Liefertermin = tempzeile(2)
- If GueltigeLiefertermin(Liefertermin) = False Then
- Msgbox "ungültige Liefertermin gefunden" & vbNewLine & str_ZeileLesen ,vbCritical,"Fehler - Skript beendet !"
- Exit Sub
- End If
- If Len(Pos) > 4 Then
- Msgbox "ungültige Pos gefunden" & vbNewLine & str_ZeileLesen ,vbCritical,"Fehler - Skript beendet !"
- Exit Sub
- End If
- Loop
- obj_File.close
- '---------------------------------------------------------------------------------------------------------
- '------------------- Artikel eingeben --------------------------------------------------------------------
- Set obj_File = obj_FSO.OpenTextFile(str_JobDatei)
- str_ZeileLesen = obj_File.ReadLine 'Kopfzeile ignorieren
- Do Until obj_File.AtEndOfStream
- str_ZeileLesen = obj_File.ReadLine
- tempzeile = Split(str_ZeileLesen,",")
- 'Auslesen der Pos und der Liefertermin; Linke Spalte: Pos, Rechte Spalte: Liefertermin
- Bestellnummer = tempzeile(0)
- Pos = tempzeile(1)
- Liefertermin = tempzeile(2)
- If CLng(Liefertermin) > 0 Then
- schreibeText 8,20,Bestellnummer
- druecketaste "[enter]"
- schreibeText 8,2, "2"
- druecketaste "[enter]"
- schreibeText 10,26,Pos
- druecketaste "[field+]"
- schreibeText 10,38,Pos
- druecketaste "[field+]"
- schreibeText 12,26,Liefertermin
- druecketaste "[field+]"
- druecketaste "[enter]"
- druecketaste "[pf5]"
- druecketaste "[pf12]"
- end if
- Loop
- obj_File.close
- '---------------------------------------------------------------------------------------------------
- end sub
- Function GueltigeLiefertermin(eingabe)
- Dim i
- GueltigeLiefertermin = True
- If Len(eingabe) = 0 Then
- GueltigeLiefertermin = False
- Exit Function
- End If
- For i = 1 to len(Eingabe) Step 1
- Select Case mid(eingabe,i,1)
- Case "1","2","3","4","5","6","7","8","9","0"
- Case Else
- GueltigeLiefertermin = False
- End Select
- Next
- End Function
- Function Desktopfinden()
- Dim objShell
- Set objShell = CreateObject("WScript.Shell")
- Desktopfinden = objShell.SpecialFolders("Desktop")
- If Right(Desktopfinden,1) <> "\" Then Desktopfinden = Desktopfinden & "\"
- set objShell = Nothing
- End Function
- Sub warten (wartedauer)
- wai()
- autECLSession.autECLPS.Wait(wartedauer)
- wai()
- End Sub
- sub wai()
- autECLSession.autECLOIA.WaitForAppAvailable
- autECLSession.autECLOIA.WaitForInputReady
- end sub
- Sub schreibeText(eingabezeile, eingabespalte, eingabetext)
- wai()
- autECLSession.autECLPS.SetCursorPos eingabezeile, eingabespalte
- wai()
- autECLSession.autECLPS.SendKeys (eingabetext)
- wai()
- End Sub
- Sub druecketaste (eingabetaste)
- wai()
- autECLSession.autECLPS.SendKeys (eingabetaste)
- wai()
- End Sub
- Function leseBildschrim(eingabezeile, eingabespalte, eingabelaenge)
- wai()
- leseBildschrim = autECLSession.autECLPS.GetText(eingabezeile, eingabespalte, eingabelaenge)
- wai()
- End Function
- Function ZeichenZaehlen(str_Eingabe, str_Zeichen)
- Dim i
- ZeichenZaehlen = 0
- For i = 1 To Len(str_Eingabe) Step 1
- If Mid(str_Eingabe, i, 1) = str_Zeichen Then
- ZeichenZaehlen = ZeichenZaehlen + 1
- End If
- Next
- End Function
- Function IsItLFRND(Eingabe)
- IsItLFRND = False
- If IsNumeric(Eingabe) = True AND Len(Eingabe) = 7 AND Mid(Eingabe,1,1) = "9" Then
- IsItLFRND = True
- End If
- Dim tempz
- For tempz = 2 to 7 Step 1
- If Mid(Eingabe,tempz,1) <> "1" AND Mid(Eingabe,tempz,1) <> "2" AND Mid(Eingabe,tempz,1) <> "3"_
- AND Mid(Eingabe,tempz,1) <> "4" AND Mid(Eingabe,tempz,1) <> "5" AND Mid(Eingabe,tempz,1) <> "6"_
- AND Mid(Eingabe,tempz,1) <> "7" AND Mid(Eingabe,tempz,1) <> "8" AND Mid(Eingabe,tempz,1) <> "9"_
- AND Mid(Eingabe,tempz,1) <> "0" Then
- IsItLFRND = False
- End If
- Next
- End Function
woran kann das liegen?
Code-Tags eingefügt und Farbe korrigiert ~ EaranMaleasi
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „EaranMaleasi“ ()