Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1304to1308
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
Inhaltsverzeichnis

Keypress Ereignis funktioniert nicht mit Refedit

Keypress Ereignis funktioniert nicht mit Refedit
05.04.2013 18:01:56
Sodonikus
Hi ich habe ein Problem mit dem Keypress Ereignis.
In meiner Textbox funktioniert dieses wunderbar, wenn ich es allerdings
in meinem RefEdit benutzen will bekomme ich folgende Fehlermeldung
für folgenden Ereignis-Kopf:
Private Sub Grenze_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case 48 To 57
Case Else
KeyAscii = 0
End Select
Fehlermeldung:
Fehler beim Kompilieren. Deklaration der Prozedur entspricht nicht der
Beschreibung eines Ereignisses oder einer Prozedur mit demselben Namen.
Ich habe mir daraufhin das Objekt mal angeschaut und den Kopf wie folgt abgeändert:
Private Sub ObergrenzeBox_KeyPress(KeyAscii As Integer)
Das führte dazu das ich keine Fehlermeldung mehr bekam, aber trotzdem
noch ohne Einschränkung in meinem Feld tippen konnte, sprich meine Anweisungen
funktionierten nicht wie bei der Textbox.
Kennt jemand eine Lösung für das Problem oder eine andere Möglichkeit Eingaben direkt von der Tastatur in einem RefEdit nur teilweise zuzulassen (z.B. nur zahlen und ein Komma)
Mfg

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Erkläre den Sinn für ein RefEdit ! (owT)
05.04.2013 18:29:00
EtoPHG

AW: Erkläre den Sinn für ein RefEdit ! (owT)
05.04.2013 19:18:17
Sodonikus
Ich weiss das man ein Refedit dazu nutzt Werte aus einer Tabelle einzulesen.
Ich muss trotzdem die Werte die man dort eingeben kann irgendwie über ein Keypress Event abfangen, aus Gründen die mit der Aufgabenstellung zusammenhängen.
Ich sehe im Objektmanager auch das das Objekt RefEdit eine Eigenschaft hat die eben meinem zweiten Syntax für Keypress entspricht, aus irgendeinem Grund funktioniert dies jedoch nicht.

AW: Erkläre den Sinn für ein RefEdit ! (owT)
06.04.2013 08:35:51
Luschi
Hallo Sodonikus,
wenn ich in einem Formular dieses RefEdit-Steuerelement einfüge, und das PressKey-Ereignis im Vba-Editor auswähle, dann sieht der automatisch eingefügte Prozedur-Rumpf bei mir so aus und dann klappt das auch!
Private Sub Grenze_KeyPress(KeyAscii As Integer)
End Sub
Gruß von Luschi
aus klein-Paris

Anzeige
AW: Erkläre den Sinn für ein RefEdit ! (owT)
06.04.2013 12:09:21
Sodonikus
Also genauso habe ich es versucht aber in meiner Form reagiert das Fenster einfach nicht.
Hier mein Code dazu:
Private Sub RefEdit1_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case 48 To 57
Case 44
If InStr(1, ObergrenzeBox.Text, ",") > 0 Then KeyAscii = 0
Case Else
KeyAscii = 0
End Select
End Sub
Gibt es vielleicht eine Eigenschaft des Refedit oder sonstwas die das verhindert? Ich hab wie
gesagt excel 2010, weiss nicht ob da andere Standard Einstellungen sind, aber mit einer
Textbox klappt es ja.

AW: Erkläre den Sinn für ein RefEdit ! (owT)
06.04.2013 13:41:27
Luschi
Hallo Sodonikus,
habe gerade mal ein bischen mit den RefEdit-Control (Excel 2010/13) rumgetestet. Die Ereignisse KeyPress, KeyUp & KeyDown reagieren nicht auf Tastenbedienungen. Warum sollten sie auch, da ja die Aufgabe dieses Steuerelementes ist, eine Textkette zurückzugegen, die einen Tabellenbereich repräsentiert, siehe:
Excel® 2010 Power Programming with VBA - by Walkenbach, John © 2010 John Wiley & Sons
Seite 458/459

RefEdit1.Text = ActiveWindow.RangeSelection.Address
On Error Resume Next
Set UserRange = Range(RefEdit1.Text)
If Err.Number  0 Then
MsgBox "Invalid range selected"
RefEdit1.SetFocus
Exit Sub
End If
On Error GoTo 0
Man kann also erst nach dem Verlassen dieses Controls feststellen, ob der per Maus oder Tastatur übertragene Text sinnvoll ist und einem Range-Objekt entspricht.
Gruß von Luschi
aus klein-Paris
PS: Ich habe immer noch nicht begriffen, wozu Du das RefEdit-Element überhaupt benutzen willst, als zur Festlegung eines Rangebereiches.

Anzeige
AW: Erkläre den Sinn für ein RefEdit ! (owT)
06.04.2013 15:40:54
Sodonikus
Hm - es geht darum das ich das RefEdit wie eine textbox benutzen will.
wie gesagt haengt es mit der aufgabenstellung zusammen. was wäre denn eine geeignete
methode zu überprüfen ob in meinem refedit, dass ich auf ein range objekt übergeben will
auch wirklich eine range steht? ich übergebe aus der refeditbox ja nur einen string und kann
es schlecht darauf prüfen ob es tatsächlich eine range ist.

AW: Erkläre den Sinn für ein RefEdit ! (owT)
06.04.2013 15:43:09
Sodonikus
Bzw. Fehleingaben abzufangen ohne eine Goto Anweisung zu benutzen. Das darf ich nämlich nicht aus aufgabentechnischen Gründen.

AW: Erkläre den Sinn für ein RefEdit ! (owT)
06.04.2013 15:48:16
Sodonikus
Und wieso gibt es dann überhaupt ein KeyPress Event für Objekte vom Typ RefEdit, wenn dieses nicht nutzbar ist. Macht doch keinen Sinn...

Anzeige
AW: Erkläre den Sinn für ein RefEdit ! (owT)
06.04.2013 17:37:19
Luschi
Hallo Sodonikus,
im meinem letzten Posting habe ich Dir doch die Lösung vib j.Walkenbach geschickt:
Set UserRange = Range(RefEdit1.Text)
versucht aus dem Text-Inhalt des RefEdit-Controls eine Range-Objekt zu bilden. Geht das schief, hat UserRange den Wert 'Nothing' und
If Err.Number 0 Then
verzweigt in den Zweig, wo Du organisierst, eas in einem solchen Fall passieren soll.
Kommst Du damit nicht klar, dann poste ein bischen mehr Vba-Code.
Gruß von Luschi
aus klein-Paris

AW: Erkläre den Sinn für ein RefEdit ! (owT)
06.04.2013 18:05:50
Sodonikus
Ah verstehe, gibt es eine Art Liste welche Error Number welche Fehlermeldung auslöst?
In der Doku stand nichts beim error objekt.
Was ich auch nur sagen wollte war das es mich eben wundert das es ein Keypress Ereignis gibt, das man aber nicht benutzen kann.
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige