Sun_set_1
Captain
- Registriert
- Sep. 2008
- Beiträge
- 3.974
Hallo zusammen,
je nach Eingabewert einer Inputbox sollen verschiedene Module gestartet werden. Beispielsweise kann eine Order-Nummer eingegeben werden oder eine Nummer mit "BP:1234", wobei das "BP" dann dafür sorgt das im Netzwerk im Kundenstamm gespeichert wird. Wenn nur eine Nummer eingeben wird, soll automatisch im Auftragsstamm gespeichert werden wobei Nummer = OrderNummer.
Das funktioniert soweit auch alles wunderbar. Ich arbeite hier bewusst mit Modulen, und nicht mit vielen Prozeduren. Da je nach Abteilung unterschiedliche Umgebungen benötigt werden und sich Module doch deutlich einfacher pflegen / austauschen lassen -> Module und keine Unter-Prozeduren. Ich schreibs nur, da das meistens als erstes vorgeschlagen wird
Nun zur Frage,
Wenn man nun einmal BP:1234 eingetragen hat, funktioniert alles. Wenn ich aber nun ein wenig später das Skript wieder starte und beispielsweise "VT" eingebe, Ruft er manchmal direkt Zeile 21& 22 & 23 auf:
Call SaveAsPDF.SaveAsPDFfile
Call Modul1.OrderSaveCarLo
Sprich er prüft den Input nicht mehr und springt direkt zur Else Routine. Irgendeine Idee was den Bug verursachen könnte? Am Anfang war das Problem immer, hier hatte ich noch in Zeile 6 GOTO 1 stehen, anstelle GOTO 2. Das hat schon deutliche Abhilfe geschaffen.
Daher sicherlich kein schlimmes Problem, da es nun nur noch vereinzelt auftritt. Würde trotzdem gerne wissen ob ich unsauber programmiert habe - oder es vllt einfach ein Windows / Outlook-Bug ist.
Version ist Office 2013.
je nach Eingabewert einer Inputbox sollen verschiedene Module gestartet werden. Beispielsweise kann eine Order-Nummer eingegeben werden oder eine Nummer mit "BP:1234", wobei das "BP" dann dafür sorgt das im Netzwerk im Kundenstamm gespeichert wird. Wenn nur eine Nummer eingeben wird, soll automatisch im Auftragsstamm gespeichert werden wobei Nummer = OrderNummer.
Das funktioniert soweit auch alles wunderbar. Ich arbeite hier bewusst mit Modulen, und nicht mit vielen Prozeduren. Da je nach Abteilung unterschiedliche Umgebungen benötigt werden und sich Module doch deutlich einfacher pflegen / austauschen lassen -> Module und keine Unter-Prozeduren. Ich schreibs nur, da das meistens als erstes vorgeschlagen wird
Nun zur Frage,
Code:
Sub All_in_One()
strgCarloOrder = InputBox("CarLo Order-Number:")
Dim SearchChar As String
SearchChar = ":"
Location = InStr(strgCarloOrder, SearchChar)
On Error GoTo 2
ChooseModul = Left(strgCarloOrder, Location - 1)
strgBPNumber = Mid(strgCarloOrder, Location + 1)
1: Select Case ChooseModul
Case "BP", "bp": Call Modul9.BusinessPartner
GoTo 11
Case Else
GoTo 2
2: Select Case strgCarloOrder
Case "VT", "vt": Call Modul1.ILImporte
Case "AT", "at": Call Modul5.ILImporte
Case "BE", "be": Call Modul4.ILImporte
Case "CH", "ch": Call Modul6.ILImporte
Case "Desktop", "desktop", "dt": Call Modul1.OrderSaveDesktop
Case Else
strSubDir = strBackupPath1 & strgCarloOrder
Call SaveAsPDF.SaveAsPDFfile
Call Modul1.OrderSaveCarLo
[...]
11: End Sub
Wenn man nun einmal BP:1234 eingetragen hat, funktioniert alles. Wenn ich aber nun ein wenig später das Skript wieder starte und beispielsweise "VT" eingebe, Ruft er manchmal direkt Zeile 21& 22 & 23 auf:
Call SaveAsPDF.SaveAsPDFfile
Call Modul1.OrderSaveCarLo
Sprich er prüft den Input nicht mehr und springt direkt zur Else Routine. Irgendeine Idee was den Bug verursachen könnte? Am Anfang war das Problem immer, hier hatte ich noch in Zeile 6 GOTO 1 stehen, anstelle GOTO 2. Das hat schon deutliche Abhilfe geschaffen.
Daher sicherlich kein schlimmes Problem, da es nun nur noch vereinzelt auftritt. Würde trotzdem gerne wissen ob ich unsauber programmiert habe - oder es vllt einfach ein Windows / Outlook-Bug ist.
Version ist Office 2013.
Zuletzt bearbeitet: