Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
784to788
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
784to788
784to788
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
KeyAscii Textbox wert in Zelle schreiben
31.07.2006 12:37:49
Daniel
Hallo ExcelFreunde,
ich habe heute diesen KeyAscii-Code im Forumarchiv entdeckt. Sieht gut aus nur komm ich mit der Umsetzung nicht so richtig hin. Genauer gesagt ich kenne auch die KeyPress Funktion erst seit heute.
Mein Problem:
Den numerischen Textbox1 Zahlenwert moechte ich in das Tabellenblatt userforms in Zelle B29 reingeschrieben haben. Wenn ich die userform abspiele und die erste ziffer eingebe passiert nach dem ersten tastendruck nichts sichtbares, die ziffer wird irgendwo gespeichert. Beim zweiten Tastendruck wird die zuerst getippte Ziffer in B29 geschrieben. Nach drei/vier Ziffern waere der user fertig und wuerde mit nem commandobutton die etwa vierstellige Zahl bestaetigen und die userform verlassen. Es fehlt aber immer die zuletzt eigegebene ziffer... wo bekomme ich diese letzte getippte ziffer nun her oder was muss ich umschreiben oder ergaenzen?
hoffe mir kann jemand die KeyPress und diese KeyAscii funktion dazu erklaeren und meinen unten aufgefuerhten code reparieren.
Nochwas kennt vielleicht jemand den Case-Code fuer nen Punkt "." ?
vielen dank schon im voraus fuer euere hilfe!!!
viele gruesse Daniel

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case 44             'Komma
Case 48 To 57       'zahlen von 1 bis 9
Case Else           'alle anderen zeichen ignorieren
KeyAscii = 0
End Select
Sheets("userforms").Select          'tabellenblatt
Range("b29").Value = TextBox1.Value 'Zielzelle im Tabellenblatt
End Sub

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: KeyAscii Textbox wert in Zelle schreiben
31.07.2006 13:27:46
Luschi
Hallo Daniel,
mach es so und nutze das KeyDown-Ereignis statt dem KeyPress-Ereignis, denn hier wird das Drücken der Enter-Taste mit ausgewertert.
Allerdings ändern sich dadurch die KeyCode-Werte gegenüber den KeyAscii-Werte etwas:
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Select Case KeyCode
Case 8               'BackSpace-Taste zum Korrigieren
Case 188             'Komma
'nur 1 Kommastelle zulasen
If InStr(1, Me.TextBox1.Text, ",", vbTextCompare) > 0 Then
KeyCode = 0
End If
Case 37, 39          'Cursor-Tasten (<— und —>)
Case 46              'Entf-Taste
Case 48 To 57        'Zahlen von 0 bis 9 (Zifferntastatur)
Case 96 To 105       'Zahlen von 0 bis 9 (Nummerntastatur)
Case 13              'Enter-Taste (<——')
Sheets("Tabelle1").Select          'tabellenblatt
Range("b29").Value = CDbl(TextBox1.Value) 'Zielzelle im Tabellenblatt
Case Else           'alle anderen zeichen ignorieren
KeyCode = 0
End Select
End Sub
Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If Left(Me.TextBox1.Text, 1) = "," Then
'wenn an 1. Stelle kein Komma stehen soll
'Me.TextBox1.Text = Mid(Me.TextBox1.Text, 2)
End If
End Sub
Gruß von Luschi
aus klein-Paris
Anzeige
AW: KeyAscii Textbox wert in Zelle schreiben
31.07.2006 13:30:51
ANdreas
Hallo Daniel,
wenn das KeyPress Ereignis durchlaufen wird, ist die gedrückte Zahl noch nicht im Textbox.Value enthalten. Daher so:

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case 44, 48 To 57           'Komma + Ziffern von 1 bis 9
Case Else: KeyAscii = 0     'alle anderen zeichen ignorieren
End Select
Sheets("userforms").Range("B29").Value = _
TextBox1.Value & Chr(KeyAscii) 'Zielzelle im Tabellenblatt
End Sub

Und bitte auf Select verzichten.
Gruß
Andreas
AW: KeyAscii Textbox wert in Zelle schreiben
31.07.2006 14:10:12
Daniel
Hi Luschi und Andreas,
auf die schnelle hab ich mal die Loesung vom Andreas eingearbeitet und sie funktioniert.... sie funktioniert... hahaha
morgen werd ich mal Luschis ausfuehrlichere loesung testen und davon berichten.
Danach werde ich weiter daran arbeiten die weltherrschaft an mich reissen. ;o)
vielen Dank nochmals Freunde. Herzlichste gruesse aus downunder.
Daniel
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige