Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1596to1600
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Eingabe in Textbox unterdrucken
30.12.2017 20:04:57
Nicole
Hallo zusammen
ich habe eine Problem und hoffe auf eure hilfe:
Private Sub Textbox1_Change()
If Textbox2 "" Then
Exit Sub
'es folgt weiterer Code, der ausgeführt wird bei Änderungen in Textbox1
End If
Dabei habe ich obigen Code: Wenn textbox2 NICHT leer ist soll nichts passieren (Exit) Sub... Meine Frage nun: Wie kann ich die Eingabe/Änderung die die Sub ausgelöst hat, verhindern bzw. nicht ausführen.
Sprich: Ich versuche den Inhalt zu ändern, dadurch wird die Sub ausgeführt, die Änderungen werden aber nicht ausgeführt.
Gibt es dazu eine Lösung ?
Vielen Dank schonmal
Gruß Petra

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Eingabe in Textbox unterdrucken
30.12.2017 20:24:37
Sepp
Hallo Nicole,
probier mal.
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Select Case KeyCode
  Case 1 To 47
    KeyCode = 0
  Case Else
End Select
End Sub

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If TextBox2 = "" Then KeyAscii = 0
End Sub

Gruß Sepp

Anzeige
AW: Eingabe in Textbox unterdrucken
30.12.2017 20:33:07
Nicole
Hallo Sepp
vielen Dank für die Antwort.
Wie meinst du es genau?
Soll ich anstatt des Ereignisses Change das Keypress oder Keydown verwenden und den entsprechenden Code darin ergänzen?
Vielen Dank nochmal
Gruß Nicole
AW: Eingabe in Textbox unterdrucken
30.12.2017 20:47:01
Sepp
Hallo Nicole,
ja, allerdings den Code den ich hier gepostet habe.
Im Change-Ereignis kannst du eine Eingabe nicht verhindern.
Gruß Sepp

Sorry, natürlich so!
30.12.2017 20:31:08
Sepp
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If TextBox2 = "" Then KeyCode = 0
End Sub

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If TextBox2 = "" Then KeyAscii = 0
End Sub

Gruß Sepp

Anzeige
AW: Sorry, natürlich so!
30.12.2017 21:00:59
Nicole
Hallo Sepp
hat super funktioniert DANKE.
gibt es das gleiche auch für Listen...
Sprich ich habe folgenden Code:
Private Sub Listbox_Click()
If Textbox2 "" Then
Exit Sub
'es folgt weiterer Code, der ausgeführt wird wenn ein Eintrag in angeklickt wird
End If
Funktion: Testbox 2 ist leer also soll die Aktion der Listbox nicht ausgeführt werden, Funktioniert auch soweit, jedoch wird danach der Eintrag markiert den ich angeklickt habe (wird aber nicht ausgeführt)
Gibt es eine Möglichkeit auch das zu verhindern, dass die Markierung also so bleibt wie sie vor dem Klick war...
Vielen Dank nochmal
Gruß Nicole
Anzeige
AW: Sorry, natürlich so!
30.12.2017 21:11:16
Sepp
Hallo Nicole,
Private Sub ListBox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox2 = "" Then ListBox1.ListIndex = -1
End Sub

Gruß Sepp

Anzeige
AW: Sorry, natürlich so!
30.12.2017 21:37:00
Nicole
Hallo Sepp
Wie kann ich das dann am besten mit dem click Ereignis der Listbox verbinden? Dein Code als eigener Sub schreiben und im click Ereignis aufrufen geht ja nicht ...
Vielen Dank nochmals für die vorherigen antworten
Gruß Nicole
AW: Sorry, natürlich so!
30.12.2017 21:49:38
Sepp
Hallo Nicole,
warum nicht so?
Private Sub ListBox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox2 = "" Then ListBox1.ListIndex = -1
End Sub

Private Sub ListBox1_Change()
If TextBox2 <> "" Then
  'Dein Code!
  MsgBox "Test" 'Zum testen!
End If
End Sub

Gruß Sepp

Anzeige
Klapp noch nicht
31.12.2017 10:24:53
Nicole
Guten morgen Sepp
sorry aber ich bins nochmal
Private Sub Lst_Firmenname_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
If Tx_min_Werkstückd  "" Or Tx_max_Werkstückd  "" Or Tx_max_Bearbeitungslänge  "" Or  _
Tx_MaßX  "" Or Tx_MaßY  "" Or Tx_MaßZ  "" Or _
Tx_Bemerkungen  "" Then
Lst_Firmenname.ListIndex = -1
Else
End If
End Sub

'
Private Sub Lst_Firmenname_Click()
If Textbox1 = "" And Textbox2 = ""  Then
Else
MsgBox "Sie müssen erst ihre Eingaben rechts speichern bzw. die Eingaben löschen, um die  _
Lieferantenauswahl in der Liste zu ändern.", vbOKOnly + vbExclamation, _
"Listenänderung nicht möglich"
Exit Sub
End If
'Code der bei klick ausgeführt werden soll
End Sub
Irgendwie funktioniert es noch nicht so richtig... obigen Code habe ich geschrieben.
Hast du da noch eine Idee an was es liegen könnte?
Gruß Nicole
Anzeige
AW: Klapp noch nicht
31.12.2017 10:54:01
Sepp
Hallo Nicole,
was heißt "funktioniert nicht richtig"?
Wann soll die Listbox NICHT ausgewählt werden können?
Wann soll dein Code ausgeführt werden?
Gruß Sepp

AW: Klapp noch nicht
31.12.2017 11:00:11
Nicole
Hallo Sepp
sorry für meine ungenaue Erklärung
Ziel: Wenn die TextBoxen NICHT leer sind soll bei klicken auf ein Eintrag in Liste die Msgbox erscheinen. Gleichzeitig soll der Eintrag der vor dem Klicken markiert/ausgewählt war, immernoch markiert sein und nicht der, auf den geklickt wurde bevor die Msgbox kommt
Bis jetzt kommt zwar die Meldung, aber der angeklickte Eintrag wird noch ausgewählt und Wie es sein soll: nicht ausgeführt.
Es fehlt also nur noch, dass der neue Eintrag nicht angewählt wird und der Alte markiert bleibt...
Ich hoffe das Problem ist eindeutig.
Vielen Dank
Gruß
Nicole
Anzeige
AW: Klapp noch nicht
31.12.2017 11:29:23
Sepp
Hallo Nicole,
kannst du deine Datei hochladen? Mit deinem Code, so wie dun ihn jetzt probiert hast.
Gruß Sepp

AW: Datei hochgeladen
31.12.2017 16:46:44
Nicole
Hallo Sepp
Vielen Dank es hat endlich geklappt!!
Danke
Nicole

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige