Bei Change erneute Suche nach Wert
15.06.2020 15:40:06
J.
ich habe mir eine Userform gebastelt, die als Eingabefenster für diverse Daten aus der Fertigung funktionieren soll.
Passt soweit auch.
Um das Ganze nutzerfreundlicher zu gestalten, würde ich gerne die Daten der vorangegangenen Fertigung eingetragen haben, damit man sie nur anfassen muss, wenn sich tatsächlich mal was verändert haben sollte.
hier mal mein Ansatz:
Private Sub Eingabe_Artikelnummer_Zykluszähler_Change()
Dim Artikelnummer As String
Dim c As Range
Artikelnummer = Abfrage_Ausschusserfassung.Eingabe_Artikelnummer_Zykluszähler.Value
Set c = Range("D:D").Find(Artikelnummer, LookIn:=xlValues, LookAt:=xlWhole)
If Not c Is Nothing Then
v = 1
Else
v = 0
End If
If v = 1 Then
' findet Position, als Artikel zuletzt gefertigt wurde (Suche von hinten)
Z = Sheets("Zykluszähler_Daten").Range("D:D").Find(Artikelnummer, _
after:=Range("D50000"), searchdirection:=xlPrevious).Row
'verwendet Wert aus Reihe "E" und Position Z als Vorlage für letzte Zykluszeit
x = "E" & Z
Zykluszeit_Zyklus = Sheets("Zykluszähler_Daten").Range(x).Value
'verwendet Wert aus Reihe "F" und Position Z als Vorlage für letzte Fachzahl
y = "F" & Z
Formnester_Zyklus = Sheets("Zykluszähler_Daten").Range(y).Value
Else
End If
End Sub
Mein Problem geht nun in 2 Richtungen:
1. Wenn er bei der ersten "Änderung"(also erste eingetragene Zahl) nicht gleich einen passenden Wert findet, erhalte ich Laufzeitfehler 91 für die Zeile "Z = Sheets("Zykluszähler....."
2. Wenn er gleich einen Wert findet (vereinfachte Werte weil ich schauen wollte ob es funktioniert), dann beißt es sich an diesem Wert fest. Wenn durch zusätzliche Eingabe kein oder ein anderer Wert gefunden werden sollte wird das ausgeblendet.
Sub *_Change () müsste doch bei jeder Änderung aufs neue Starten, oder?
Und die Idee, durch "v" dafür zu sorgen, dass der Rest nur läuft wenn es auch Anlass gibt ist vermutlich dann nur aufwendige Deko? :/
Danke im Voraus!