Hallo an alle Wissenden.
Ich habe mir ein Lagerverwaltungsprogramm mit Barcode Scanner geschrieben.
Ablauf: Ware und Lagerplatz wird gescannt in Userform1 Sobald Textfeld2 (Lagerplatz) ausgefüllt wurde (von Scanner), startet automatisch das Makro zum einfüllen in die Lagerliste.
Jetzt das Problem.
Das Makro läuft ganz normal durch, setzt die Werte richtig ein.
Nachdem das Makro fertig ist, startet das Userform1 wieder. (Nur hier läuft das Makro wieder weiter. Das heißt Userform1 startet wieder das Makro zum ausfüllen (Hier kommt dann die Fehlermeldung, das nicht alles ausgefüllt ist, da das Makro im ersten Durchgang die Eingabedaten gelöscht hatte)
Das Paradoxe daran ist, wenn ich das Makro in der Schrittoption laufen lasse (betätige jeden Schritt händisch) funktioniert es einwandfrei…. (UserformMakroUserform)
An was liegt das ??
Könnt ihr mir helfen
Hab hier mal die beiden betroffenen Makro gepostet
Ich danke euch
Hier die Makro:
USERFORM1:
Private Sub TextBox1_Change()
Sheets(„ScannINFO“).Select
Range(„D6“) = TextBox1
TextBox2.Enabled = True
End Sub
Private Sub TextBox2_Change()
Sheets(„ScannINFO“).Select
Range(„D12“) = TextBox2
Application.OnTime Now + TimeSerial(0, 0, 4), „ArtikelEintragenSCANNER“
'Wartet drei Sekunden, damit Scanner die Daten in Zelle schreiben kann
End Sub
MAKRO „ArtikelEintragSCANNER“
Sub ArtikelEintragenSCANNER()
’
'SCANNER Eingabe
’
On Error GoTo Fehlereintrag
‚‘'Worksheets(„ScannINFO“).Visible = True
Dim Kontrolle As String
Sheets(„ScannINFO“).Select
AllesAusgefüllt = Range(„J6“).Value
'ANFANG Kontrolle ob alles ausgefüllt wurde
If AllesAusgefüllt = 0 Then
Sheets(„Artikel Eingabe“).Select
MsgBox „Es sind nicht alle Felder ausgefüllt“, vbCritical, „Bitte alles ausfüllen!“
End
End If
'ENDE Kontrolle ob alles ausgefüllt wurde
Sheets(„Artikel Eingabe“).Select
Lagerplatz = Range(„B18“).Value
ArtikelNr = Range(„C18“).Value
Menge = Range(„D18“).Value
Einheit = Range(„E18“).Value
EinlagerDatum = Date
EinlagerZeit = Time
Sheets(„Formel“).Select
Arbeiter = Range(„H30“).Value
ZeileVoll = 0
'Kontrolle ob Lagerplatz leer ist
'ANFANG Lagerplatz suchen
Sheets(„Lager WN“).Select
Columns(„A:A“).Select
Selection.Find(What:=(Lagerplatz), After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
'ENDE Lagerplatz suchen
'ANFANG Prüfen ob Platz leer ist
ZeileNr = ActiveCell.Row
ZellePrüfung = „B“ & ZeileNr
ZellePrüfung1 = Range(ZellePrüfung).Value
If ZellePrüfung1 <> „“ Then
ZeileVoll = 1
End If
'ENDE Prüfen ob Platz leer ist
PlatzBelegt = 0
Do While ZeileVoll = 1 'Schleifen Anfang
'Weitersuchen wenn gesuchte Zeile schon besetzt ist
Selection.FindNext(After:=ActiveCell).Activate
'ANFANG Prüfen ob Platz leer ist
ZeileNr = ActiveCell.Row
ZellePrüfung = "B" & ZeileNr
ZellePrüfung1 = Range(ZellePrüfung).Value
PlatzBelegt = PlatzBelegt + 1 'Damit es keine Endlosschleife wird, wenn alle Lagerplätze belegt sind
If ZellePrüfung1 = "" Then
ZeileVoll = 0
End If
If PlatzBelegt > 5 Then
Info = MsgBox("Dieser Lagerplatz ist schon mit der Maximal Anzahl belegt", vbCritical, "Bei Fragen Herr Krisam kontaktieren")
End
End If
'ENDE Prüfen ob Platz leer ist
Loop 'Schleifen Ende
'ANFANG Im Lagerplatz in freier Zelle eintragen
ArtikelNrZeile = „B“ & ZeileNr
MengeZeile = „C“ & ZeileNr
EinheitZeile = „D“ & ZeileNr
DatumZeile = „E“ & ZeileNr
ZeitZeile = „F“ & ZeileNr
ArbeiterZeile = „G“ & ZeileNr
Range(ArtikelNrZeile) = ArtikelNr
Range(MengeZeile) = Menge
Range(EinheitZeile) = Einheit
Range(DatumZeile) = EinlagerDatum
Range(ZeitZeile) = EinlagerZeit
Range(ArbeiterZeile) = Arbeiter
'ENDE Im Lagerplatz in freier Zelle eintragen
'ANFANG in Sicherungsliste eintragen
Sheets(„Aufzeichnungen“).Select
Range(„A1“) = "Eingetragen von " & Arbeiter & " am: " & EinlagerDatum & " " & EinlagerZeit
Range(„B1“) = ArtikelNr & " in Lagerplatz: " & Lagerplatz & " - " & Menge & " " & Einheit ’ Sicherungszeile eintragen
'Zeile einfügen
Rows(„1:1“).Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
'ENDE in Sicherungsliste eintragen
‚Daten löschen
Sheets(„ScannINFO“).Select
Range(„D6“).Select
Selection.ClearContents
Range(„D12“).Select
Selection.ClearContents
Range(„D6“).Select
‚Ordner verstecken
‚‘‘‘'Worksheets(„ScannINFO“).Visible = False
Unload UserForm1
UserForm1.Show
End
Fehlereintrag: MsgBox „FehlerEintrag“
‚Textbox und Eingabe löschen
Sheets(„ScannINFO“).Select
Range(„D6“) = „“
Range(„D12“) = „“
‚Ordner verstecken
‚‘‘‘'Worksheets(„ScannINFO“).Visible = False
Unload UserForm1
Call Schaltfläche1_Klicken