Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Excel mit VBA Userform mit Enter
#1
Hallo Zusammen,

ich bin der neue und aus purer Verzweiflung hier nun angemeldet. Ich hab auch schon einige Threads durchsucht, aber meine Lösung noch nicht gefunden.

Kurz zu mir: Meine Kenntnisse mit VBA sind zwischen nicht und gar nicht vorhanden und ich habe mir den folgenden Code Mühselig zusammen gegoogelt und weitestgehend macht er auch, was ich will.  

Code:
Private Sub Button_Take_Click()

Set finden = Range("A2:A999").Find(What:=TextBox1)

If finden Is Nothing Then
MsgBox "Nichts gefunden"
Exit Sub
End If

If Eingang Then
Range("$C" & finden.Row).Value = "in"
Range("$D" & finden.Row).Value = Text_Datum
With TextBox1
.SetFocus
.SelStart = 0
.SelLength = 8
End With
End If

If Ausgang Then
Range("$C" & finden.Row).Value = "out"
Range("$D" & finden.Row).Value = Text_Datum
With TextBox1
.SetFocus
.SelStart = 0
.SelLength = 8
End With
End If

Was will ich machen?
Wir haben in der Firma Mietarbeitskleidung - das einzige was vom Dienstleister regelmäßig und zuverlässig kommt, ist die Rechnung. Nun würde ich den Ausgang der Schmutzwäsche und den Eingang der sauberen Wäsche gerne Buchen, damit wir die Abrechnung gegenprüfen können. Die Kleidungsstücke haben einen Barcode und mit einem Handbarcodescanner kann ich die Kleidungsstücke scannen.
Das o.g. Script soll diesen Barcode in der Range A2:A999 suchen und finden. Wenn der BC nicht gefunden wird, soll die Meldung kommen, wenn er gefunden wird, mittels zuvor gewählter Checkbox ein IN bzw. OUT und das Datum in die nebenstehenden Spalten schreiben.

Das ganze funktioniert soweit wirklich hervorragend, allerdings hat es einen Haken. Gebe ich die BC-Nummer händisch ein und bestätige mittels Klick auf meinen Button "Absenden" ("Button_Take_Click"), führt er das Script aus und springt wie gewollt anschließend wieder in die "TextBox1", wo der Inhalt Markiert wird, dass sofort überschrieben werden kann.

Nun möchte ich natürlich nicht jedes Mal händisch mit der Maus auf Absenden klicken, sondern einfach mit der Eingabetaste bestätigen - Nichts anderes macht übrigens der Barcodescanner, als nach der Übertragung der Nummer ein "LF" (Line Feed, also Enter) zu senden.

Hierzu habe ich mir mit dem folgenden Code beholfen:
Code:
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If KeyCode = 13 Then
        Button_Take_Click
       End If
End Sub
 
Auch das Funktioniert an für sich gut, allerdings funktioniert dann der folgende Part nicht mehr:

Code:
With TextBox1
.SetFocus
.SelStart = 0
.SelLength = 8

Das Formular verhält sich, als hätte man den Tabulator gedrückt.

Hätte hier jemand für mich einen Lösungsansatz den ich versuchen könnte?

Ich bedanke mich vielmals im Voraus.

Viele Grüße

ein verzweifelter Manuel =)


.xlsm   Test.xlsm (Größe: 29,28 KB / Downloads: 0)
Antworten Top
#2
Ohne Beispieldatei ??
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#3
(18.10.2022, 11:08)snb schrieb: Ohne Beispieldatei ??

Ups, ich bitte vielmals um Entschuldigung, da ist der Anhang verloren gegangen...


.xlsm   Test.xlsm (Größe: 29,28 KB / Downloads: 1)
Antworten Top
#4
Hallo, 19 

das "Private Sub TextBox1_KeyDown" brauchst du nicht. Löschen. 21

Dann stellst du bei dem Button "Button_Take" in den Eigenschaften "DEFAULT" auf True. Dann wird er bei Return automatisch ausgelöst.

"SelEnd" gibt es nicht. Wenn du einen Text in der TextBox markieren willst, dann so:

Code:
With TextBox1
    .SetFocus
    .SelStart = 0
    .SelLength = Len(.Text)
End With
________
Servus
Case
[-] Folgende(r) 1 Nutzer sagt Danke an Case für diesen Beitrag:
  • DoKa
Antworten Top
#5
(18.10.2022, 11:43)Case schrieb: Hallo, 19 

das "Private Sub TextBox1_KeyDown" brauchst du nicht. Löschen. 21

Dann stellst du bei dem Button "Button_Take" in den Eigenschaften "DEFAULT" auf True. Dann wird er bei Return automatisch ausgelöst.

"SelEnd" gibt es nicht. Wenn du einen Text in der TextBox markieren willst, dann so:

Code:
With TextBox1
    .SetFocus
    .SelStart = 0
    .SelLength = Len(.Text)
End With

das "SelEnd" hatte ich tatsächlich schon geändert, da hatte ich beim Abtippen nen Knoten im Kopf, tatsächlich hatte ich aber vorm Hochladen der Datei vergessen die aktuellste Version zu speichern - das war aber der einzige Unterschied =)

Juhuu... das war echt simpel - vielen herzlichen Dank, das Problem ist damit gelöst. Ich schließe dich in meine Nachtgebete mit ein  100 (oder so  19 )

Im Anhang hab ich nochmal das komplette Exceldokument in der "Finalen", aber noch unformatierten Version. Vielleicht kann das jemand brauchen. Den Code hab ich noch so angepasst, dass wenn der Artikel nicht vorhanden ist, dann automatisch in die nächste freie Zeile eingetragen wird.

Code:
Set finden = Range("A2:A999").Find(What:=TextBox1)

If finden Is Nothing Then

Dim Rafound As Range
Set Rafound = Columns(1).Find("", Range("A" & Rows.Count), xlFormulas, _
xlWhole, , xlNext)
If Not Rafound Is Nothing Then
Range("$A" & Rafound.Row).Value = CDbl(Suche.TextBox1.Value)
MsgBox "Artikel war nicht vorhanden und wurde Hinzugefügt"
Button_Take_Click

End If

Man verzeihe mir das eventuell sehr unsaubere Programmieren, aber das ist mein ersten Script und ich bin ein kleines bisschen Stolz darauf  Angel


Angehängte Dateien
.xlsm   Test.xlsm (Größe: 35,13 KB / Downloads: 1)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste