SetFocus funktioniert nicht
07.09.2018 10:50:01
Joerg
ich habe folgendes Phänomen:
Ich nutze eine VBA Makro um ein Messprogramm abzuarbeiten. Kopfdaten werden auf einem ersten Userform eingegeben. Ich verwende dann in der Abfolge For-Next Schleifen um die jeweiligen Messpunkte abzufragen, der Code liegt auf dieser ersten Userform. Jeder Messpunkt wird abgefragt und die ausführende Person muss den Wert messen und per Fusstaster/ Knopfdruck den Wert übertragen. Zwischen Excel und dem Messgerät hängt noch ein Schnittstellen- Programm, welches den Wert zur Verfügung stellt. Zur Erfassung des Wertes springe ich in eine zweite Userform, welche anzeigt wass ich messen muss und diese UF bekommt den Messwert. Über ein Change Ereignis beendet sich diese Userform der Wert wird verarbeitet und es geht in der Schleife weiter. 2te UF öffnet sich wieder usw....
Dies funktioniert alles soweit.
Jetzt habe ich ein neues Messmittel und möchte die Werte ohne Schnittstellen Programm in eine Textbox einlesen. Das geht auch grundsätzlich. Der Wert wird in eine aktive Zelle oder ein aktives Textfeld eingefügt.
Aber: Ich benötige den Fokus in dem Textfeld. Dazu habe ich in der Schleife bevor das 2te Userform aufgerufen wird ein setfocus drin. Das geht auch beim ersten Aufruf.
Beim zweiten Durchlauf der Schleife geht das aber nicht mehr. Der Fokus wird nicht gesetzt.
Setze ich hier einen Haltepunkt im Code vor dem Aufruf der 2ten UF dann geht es immer. Ich habe eine Wartezeit eingefügt, das bringt aber nichts.
Woran kann das liegen?
Vielen Dank schonmal für die Unterstützung.
Gruß Joerg
Code:
For Bohrung = 1 To 2
For Winkel = 0 To 45 Step 45
For Messpunkt = 200 To 1000 Step 200
ZielSpaltenBerechnung '>> Werte werden in dem Tabellenblatt gespeichert
Textfeldstring_Definition ' >> Werte werden auf der ersten UF angezeigt
UF2.lab_Eingabe.Caption = "B" & Bohrung & "," & Winkel & "," & Messpunkt
UF2.Controls(TexfeldstringMesskanal).Value = ""
UF2.Controls(TexfeldstringMesskanal).SetFocus
UF2.Show
__________
Code Userform2:
<pre>Private Sub txt_Kanal1_change()
If Len(txt_Kanal1.Text) = 8 Then
WertTxtString = txt_Kanal1.Value
...
...
End If
End Sub</pre>
____________
zurück zu UF1 > Wert wird berechnet, etc.
...
...
Diagramm_aktualisieren
Next Messpunkt
Next Winkel
Next Bohrung