Autor
|
Thema: Textbox in Userform: Gültigkeit/aktiv (5596 mal gelesen)
|
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice
|
erstellt am: 05. Feb. 2007 11:16 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, ich habe ein kleines Problem mit einer Textbox in einer Userform. In die Box soll eine Dezimalzahl eingegeben werden; auf der Userform befinden sich weiter Boxen, OptionButtons usw., die danach angesprochen werden können/sollen. Was ich suche, ist eine halbwegs elegante Lösung, den Inhalt der Textbox auf Gültigkeit zu prüfen (das kriege ich mit isnumeric hin) und der Cursor soll dabei in dieser Textbox bleiben; der User wird über eine msgbox über die ungültige Eingabe informiert ->neuer Versuch, bis... ;-) Wenn ich mit "_Change()" arbeite, reagiert die Form etwas nervig; nun bin ich auf folgendes gekommen: Code: Private Sub txtHoehe_AfterUpdate()If Not IsNumeric(frmXXX.txtHoehe.Value) Then MsgBox "Keine gültige Zahl für die Höhe eingegeben!", vbOKOnly + vbInformation, "Fehler" 'txtbox erneut aktivieren!!! Hoehe = 9999 'beliebiger, unsinniger Wert End If End Sub
Der User gibt einen Wert (Text oder Zahl) ein und drückt Tab/Enter. Der Cursor springt in (meinem Fall) die nächste Textbox. Dann taucht die msgbox auf. War der Wert unzulässig (also keine Zahl), soll die Eingabe wiederholt werden. Bei meiner Variante muß der Nutzer jedoch jedesmal die Textbox txtHoehe erneut anklicken. Die Textbox soll also aktiv bleiben -bzw. re-aktiviert werden, bis die Eingabe passt.Ist zwar nur eine Kleinigkeit - aber es nervt und ich bin neugierig, ob es auch schöner geht. Gruß, Frederik
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
okl Mitglied Wirtsch-Ing (Maschbau)
Beiträge: 157 Registriert: 21.04.2006 3,6 GHz, 2 GB RAM, NVIDIA Quadro FX 1300, Delmia V5R16 SP1, Win XP Prof SP2, Office 2003, VS 2005, VB 6
|
erstellt am: 05. Feb. 2007 11:29 <-- editieren / zitieren --> Unities abgeben: Nur für Paulchen
|
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice
|
erstellt am: 05. Feb. 2007 11:32 <-- editieren / zitieren --> Unities abgeben:
|
okl Mitglied Wirtsch-Ing (Maschbau)
Beiträge: 157 Registriert: 21.04.2006 3,6 GHz, 2 GB RAM, NVIDIA Quadro FX 1300, Delmia V5R16 SP1, Win XP Prof SP2, Office 2003, VS 2005, VB 6
|
erstellt am: 05. Feb. 2007 11:38 <-- editieren / zitieren --> Unities abgeben: Nur für Paulchen
Also bei mir funzt Code: Private Sub TextBox5_Change() If Not IsNumeric(TextBox5.text) Then TextBox5.SetFocus End If End Sub
doch schon recht gut - nur eben nicht mit MsgBox etc. Du benutzt Value als Mittel der Wahl und ich Text. Liegt's daran? Wer kennt den Unterschied?Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
okl Mitglied Wirtsch-Ing (Maschbau)
Beiträge: 157 Registriert: 21.04.2006 3,6 GHz, 2 GB RAM, NVIDIA Quadro FX 1300, Delmia V5R16 SP1, Win XP Prof SP2, Office 2003, VS 2005, VB 6
|
erstellt am: 05. Feb. 2007 11:47 <-- editieren / zitieren --> Unities abgeben: Nur für Paulchen
So, jetzt hab ich's: Code: Private Sub txtBox_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean) If Not IsNumeric(txtBox.text) Then 'ist gar nicht nötig txtBox.SetFocus Cancel = True End If End Sub
Bitte schön [Diese Nachricht wurde von okl am 05. Feb. 2007 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
startrek Moderator Architekt
Beiträge: 1361 Registriert: 13.02.2003 .
|
erstellt am: 05. Feb. 2007 12:48 <-- editieren / zitieren --> Unities abgeben: Nur für Paulchen
|
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice
|
erstellt am: 05. Feb. 2007 14:20 <-- editieren / zitieren --> Unities abgeben:
@Ole: Funzt soweit - Danke schön ! Hier mal der Code aus startreks link: Code: Option Explicit Private re As ObjectPrivate Sub UserForm_Initialize() Set re = CreateObject("vbscript.regexp") re.Pattern = "^-?\d*\.?\d*$" End Sub Private Sub TextBox1_Change() With TextBox1 If .TextLength > 0 And Not re.test(.Text) Then .Text = Mid(.Text, 1, .TextLength - 1) End With End Sub
Die zweite sub verstehe ich ja zumindest halbwegs - bei der ersten muß ich leider passen . Was passiert da? Ich würde es gerne verstehen; wenn Du magst, gib doch bitte der Erbse zwischen meinen Ohren 'nen kurzen Schubser...[thedit]Nur so, für den Hinterkopf: Wer lässt sich sowas einfallen - sprich: Wer hat's erfunden? [/thedit] Gruß, Frederik [Diese Nachricht wurde von Paulchen am 05. Feb. 2007 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
startrek Moderator Architekt
Beiträge: 1361 Registriert: 13.02.2003 .
|
erstellt am: 05. Feb. 2007 15:53 <-- editieren / zitieren --> Unities abgeben: Nur für Paulchen
|
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice
|
erstellt am: 05. Feb. 2007 17:22 <-- editieren / zitieren --> Unities abgeben:
Ich bin da noch über was gestolpert - bzw. geschubst worden. Mal sehen, ob und wieviel davon hängengeblieben ist. Wo fange ich an? Hier...^-?\d*\.?\d*$ ^ Anfang der Zeichenfolge $ Ende der Zeichenfolge -was die Sache schon wesentlich vereinfacht;-) . Der - darf bis zu einmal vorkommen,d.h. maximal eine Wiederholung, dann folgen mit d* beliebig viele Ziffern. .? darf bis zu einmal vorkommen, und nochmal beliebig viele Ziffern. Puh. Wenn das bis hierher stimmt, dann wären demnach mit -?\d*\.?\d* z.B. folgende Eingaben zugelassen: 1.1 1,1 1a1 11 1111111 111.111 ... und das ganze dann noch mit negativem Vorzeichen: "-"??? Eieiei... Ich kann nur hoffen, daß das mit dem hier erwähnten Forum was wird... Danke an ruebe für den link! So, ich bitte um rücksichtslose Zurechtweisung, falls in meinen obigen Ergüssen der Wurm drin sein sollte ! @trekkie: Hoffe, Du nimmst mir meine Gehversuche nicht als Vorgriffe übel - aber so hast Du heute abend hoffentlich etwas weniger zu tun; was ich allerdings immer noch nicht begriffen habe, ist die Zeile mit Zitat: Set re = CreateObject("vbscript.regexp") [...bzw. in sub 2...] ... re.test(.Text)...
Ich wundere mich, warum es funktioniert... Also, wie Du siehst, ist die Erbse etwas ins Rollen gekommen - es reicht aber noch nicht ;-( Gruß, Frederik Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Thomas Harmening Moderator Arbeiter ツ
Beiträge: 2897 Registriert: 06.07.2001 Das Innerste geäussert und aufs Äusserste verinnerlicht
|
erstellt am: 05. Feb. 2007 17:28 <-- editieren / zitieren --> Unities abgeben: Nur für Paulchen
|
startrek Moderator Architekt
Beiträge: 1361 Registriert: 13.02.2003 .
|
erstellt am: 05. Feb. 2007 19:32 <-- editieren / zitieren --> Unities abgeben: Nur für Paulchen
Zitat: Original erstellt von Paulchen: So, ich bitte um rücksichtslose Zurechtweisung, falls in meinen obigen Ergüssen der Wurm drin sein sollte !
Klar eyy, ich weise mal rücksichtslos ...;-) Also Frederik schonmal ganz gut, aber nicht ganz stimmen tun bei -?\d*\.?\d* die 1,1 und die 1a1. Code:
? ==> keinmal oder einmal * ==> keinmal oder mehrmal'd.h. für das Pattern ^-?\d*\.?\d*$ gilt: ^ ==> 'Start of string' unmittelbar gefolgt!! von: -? ==> kein oder ein '-' (Minus) \d* ==> kein oder mehrere digits \.? ==> kein oder ein '.' (Punkt) \d* ==> kein oder mehrere digits $ ==> unmittelbar beendet!! mit 'End of String' '...[mit ^ und $ ist also die Eingabe/das gültige Schema von Anfang-Ende festgezurrt, Platz für Spielraum im String gibt es absolut keinen mehr] ...
Es werden/sind also mal vereinfacht gesagt zugelassen:
Code: [-].#### [-]#.### [-]#####
Wobei immer gilt, bei jeder Eingabe eines neuen Zeichens in der Textbox, beginnt die RE den kompletten String von links nach rechts erneut zu prüfen. Es werden also keine einzelnen [hinzugekommenen] Zeichen geprüft, sondern immer der aktuelle Eingabestring als Gesamtes. Zum: > Set re = CreateObject("vbscript.regexp") Das ist der late Binding Ausdruck für die M$ VBScript Regular Expressions (5.5) Bibliothek, du kannst dir unter Menue > Extras > Verweise da auch einen Haken setzen, dann hiesse die Zeile:
Code:
Dim re as Object Set re = CreateObject("vbscript.regexp")'einfach: dim re as New RegExp
> re.test(.Text) test() ist einfach eine Methode/Funktion der o.g. dll/Bibliothek, welche einen Boolean zurückgibt: wahr == wenn der zu prüfende Ausdruck mit dem Muster/Pattern übereinstimmt, also matched falsch == wenn der zu prüfende Ausdruck nicht übereinstimmt / no match. Siehe auch: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/jscript 7/html/jsjsgrpregexpsyntax.asp [die VB-Teile hab ich grade nicht gefunden, aber jscript ist ähnlich bei M$;;;-))))] Wenn du die Bibliothek 'hart verdrahtet' also den Verweis angehakt hast, kannst Du Dir via <F2> auch den Objektkatalog anschauen. >[thedit]Nur so, für den Hinterkopf: Wer lässt sich sowas einfallen - > sprich: Wer hat's erfunden? [/thedit] **Puzzled**, ... die Schweizer?;-) Weiss nicht, wie die Frage gemeint war, was den Code für das Change()Ereignis der TB anging, das war mal eine Session mit Nepumuk, er hat den Standard-KeyPress genommen und ich parallel mich an RegExp versucht. Nepumuk war natürlich viel früher fertig mit seinem Code als ich, dann haben wir zusammen noch ca. 2-3h rumgedoktert, weil das recht tückisch war [synchron im change() prüfen]. Aber - als es dann ging, ging's mit 'nem fast One-Liner;;-)) (Oder was meintest Du?) cu & lg Nancy Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice
|
erstellt am: 05. Feb. 2007 20:56 <-- editieren / zitieren --> Unities abgeben:
***Schluck*** Puuh, 'ne Menge an Information. Sehr schön, danke - soviel mal vorweg. Mein Denkfehler ist mir noch aufgefallen. Ich hatte den . als wildcard betrachtet;-( Zitat: Das ist der late Binding Ausdruck für...
Nun ja, die ländliche Gegend in Böhmen scheint echt nett zu sein - wollte da schon immer mal hin . Werde das testen... Die Sache mit dem ...test... hatte ich mir fast schon gedacht, so blöd das auch klingen mag; leider funktioniert hier - wie auch gelegentlich andernorts - die "Auto-Ergänzung" im VBA-Editor nicht; das nur nebenbei; letztlich auch egal, Hauptsache, es funktioniert! Auch den Objektkatalog mit Verankerung will ich mir angucken -nur heut nimmer. Zitat: **Puzzled**, ... die Schweizer?;-)
Prinzipiell mal völlig richtig (schmunzel)! Ich dachte mir schon, daß da ein paar (gutmütig gemeint!) Freaks dran waren - aus dem Ärmel geschüttelt ist das nicht! Ich meinte eigentlich die Grundidee - die wird aber von obigen links erklärt; trotzdem danke für die Erklärung - und BTW ist der One-Liner genial. Habe mich zwischendrin noch ein wenig damit befasst; ich staune und lerne. So, ich sehe schon, ich habe Nachholbedarf. Danke, danke, danke für die ausführlichen Ausführungen! [thedit]Da war -weiter oben- noch 'ne Frage von Ole offen: "Du benutzt Value als Mittel der Wahl und ich Text. Liegt's daran? Wer kennt den Unterschied?" Tja - wer weiß auf die Schnelle den Unterschied zwischen *.text und *.value? [/thedit] Guten Abend - gute Nacht! Frederik [Diese Nachricht wurde von Paulchen am 05. Feb. 2007 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Nepumuk Mitglied Entwicklungsleiter
Beiträge: 351 Registriert: 16.10.2004
|
erstellt am: 05. Feb. 2007 21:49 <-- editieren / zitieren --> Unities abgeben: Nur für Paulchen
Hi, Zitat: Tja - wer weiß auf die Schnelle den Unterschied zwischen *.text und *.value?
Also bei einer Textbox geben die beiden Eigenschaften den identischen Wert zurück. Text = Value und Value = Text ------------------ Gruß Nepumuk Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
startrek Moderator Architekt
Beiträge: 1361 Registriert: 13.02.2003 .
|
erstellt am: 06. Feb. 2007 23:47 <-- editieren / zitieren --> Unities abgeben: Nur für Paulchen
Zitat: Original erstellt von Paulchen: Mein Denkfehler ist mir noch aufgefallen. Ich hatte den . als wildcard betrachtet;-(
Das ist kein Denkfehler an sich, der '.' stellt jedes beliebige Zeichen dar [ausser Zeilenumbrüche/Newline. Der '.' ist somit ein Metazeichen in der RE-Syntax. Um den '.' [Punkt] also wirklich als solchen zu beschreiben, musst du ihn 'escapen' mittels '\'. Code:
. ==> ein beliebiges Zeichen \. ==> der '.' Punkt selber d ==> alle 'd's also alle kleinen 'D'oras \d ==> nur digit's [0-9] \ ==> ein Metazeichen ohne irgendwas (gibt i.d.R. nen Error) \\ ==> um einen Backslash als Backslash zu erkennen
Kontextsensitive Eingaben funktionieren nur bei gesetzten Verweisen, aber niemals mit 'createObject', das ist völlig normal;-) lg Nancy Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice
|
erstellt am: 08. Feb. 2007 09:37 <-- editieren / zitieren --> Unities abgeben:
Mann, das Zeug kann süchtig machen... Nach einigen Experimenten gibt's weitere Erkenntnisse von der Erbsenfront (ist ganz schön am rotieren, das Teil...). TEIL 1: SUBS... VBA unterscheidet definitiv zwischen Code: Dim re as New regexp '1 'ODER Set re = CreateObject("vbscript.regexp") '2 re.Pattern = "^\d{1,4}$" 'nur Ganzzahl ;-))) mit min.1 und max.4 Stellen
Zu 1) Hierzu muß im Editor unter Extras-Verweise "M$ VBScript RegExp 5.5" aktiviert sein - sonst gibt's beim Kompilieren eins auf die Finger: "Benutzerdefinierter Typ nicht definiert". Dann wird auch freundlicherweise die Auto-Vervollständigung (-wie auch immer die im Fachjargon heißt-) wieder aktiv; "re.abc" wird also nur ergänzt, wenn beim Verweis ein Häkchen sitzt und mit "Dim" gearbeitet wird. Dafür hakt's dann in sub2: "Laufzeitfehler '91': Objektvariable oder With-Blockvariable nicht festgelegt" Nach Festlegung des re.Pattern wird der Inhalt beim Einzelschrittmodus (F8) in der Quickinfo angezeigt. Zu 2) Die CreateObject-Zeile hat scheinbar nur eine Macke: Vervollständigung. [OTon]Ich bin etwas verwöhnt und fühle mich wohler bzw. bestätigt, wenn der Editor mit mir einer Meinung ist und dies durch freundliches Aufblättern diverser Optionen kundtut. Ein bißchen Unsicherheit ist zugegebenermaßen auch dabei.[OToff] Soo viele Möglichkeiten gibt's wohl für die REs gar nicht; bei aktivem Verweis zeigt der Objektkatalog unter "VBScript_RebExp_55" die entsprechenden Optionen an - wie von trekkie bereits prophezeit:). Auch wenn also mal gerade nix ergänzt wird, so funktioniert's doch - bisher zumindest. Der Inhalt des re.Pattern wird in keiner Quickinfo angezeigt; Überwachungsausdruck klappt in beiden Fällen. Die Hilfe äußert sich (Office 2k) nicht gerade ausführlich. Nebenbei stelle ich gerade fest, daß die Textbox allgemein bei der Eingabe auf [Esc] sehr freundlich reagiert: Sämtliche (Zahlen-)Werte werden gelöscht. Nochmal zu Code: With TextBox1 If .TextLength > 0 And Not re.Test(.Text) Then .Text = Mid(.Text, 1, .TextLength - 1) End With
Diesen Teil habe ich nun tatsächlich 'verstanden'. Es wird jede Eingabe geprüft. Handelt es sich (hier) um eine Zahl, läuft sie anstandslos -ohne 'Then' und aber- durch. Wird z.B. ein Buchstabe eingegeben, tritt der 'Then'-Fall ein; 'Mid' ändert sofort den Inhalt der Textbox: Das zuletzt eingegebene Zeichen wird gestrichen, die sub wird mit geändertem Inhalt erneut durchlaufen; 'Mid' ändert den Inhalt der Textbox, also wird das Ereignis 'Change' aufgerufen. Etwas verwirrend schien, daß VBA im Debugmodus (und sonst wohl auch) dann zwischen 'End With' und 'End Sub' nochmals zurück- und wieder vorspringt; jetzt gibt das doch einen Sinn: Bei fehlerhafter Eingabe wird das 'End With' im ersten Durchlauf gar nicht ausgeführt, da sofort von 'Mid' zum Anfang gesprungen wird.TEIL 2: TEXT UND VALUE... Nepumuk hat natürlich Recht - bei einer Textbox macht es wohl nix aus??? Folgendes: Code: Dim Zellinhalt As Variant'1.Lauf: In Zelle B7 steht 'text' - ohne die ' versteht sich ;-) '2.Lauf: In Zelle B7 steht '123' Zellinhalt = Range("B7") 'liefert 1: "text" - 2: 123 Zellinhalt = Zellinhalt + Zellinhalt 'liefert 1: "texttext" -2: 246 Zellinhalt = Zellinhalt & Zellinhalt 'liefert 1: "texttexttexttext" -2: "246246" Zellinhalt = Range("B7").Text 'liefert 1: "text" - 2: "123" - UNTERSCHIED!!! Zellinhalt = Zellinhalt + Zellinhalt 'liefert 1: "texttext" -2: "123123" - UNTERSCHIED!!! Zellinhalt = Zellinhalt & Zellinhalt 'liefert 1: "texttexttexttext" -2: ""123123123123" Zellinhalt = Range("B7").Value 'liefert 1: "text" - 2: 123 Zellinhalt = Zellinhalt + Zellinhalt 'liefert 1: "texttext" -2: 246 Zellinhalt = Zellinhalt & Zellinhalt 'liefert 1: "texttexttexttext" -2: "246246" Zellinhalt = Range("B7").Value2 'liefert 1: "text" - 2: 123 Zellinhalt = Zellinhalt + Zellinhalt 'liefert 1: "texttext" -2: 246 Zellinhalt = Zellinhalt & Zellinhalt 'liefert 1: "texttexttexttext" -2: "246246" Zellinhalt = UserForm1.TextBox2 Zellinhalt = UserForm1.TextBox2.Text Zellinhalt = UserForm1.TextBox2.Value 'liefert 1: "text" -2: "123" - IMMER, zu mehr reicht's momentan zeitlich nicht. End Sub
Kein besonders eleganter Code, aber darum geht's mir gerade auch nicht - Schönschreiben kommt später. Meines Wissens ist die Default-Eigenschaft des 'Range'-Objekts 'Value' - was bedeutet, daß mand das Wörtchen '.Value' 1) weglassen kann und 2) die Zeilen 1 und 13 oben zwingend das selbe liefern müssen!!!Wird Zellinhalt als String definiert, läuft's. Bei integer zickt's - mit Inhalt 'text', also 1.Lauf, versteht sich. Bemerkenswert sind die (eigentlich logischen) Unterschiede mit '.Text'. Also: .Text wird verknüpft, .Value berechnet. So, das sind nun meine Erfahrungen der vergangenen Tage. Mit RegExp geht's natürlich auch weiter. To whom it may concern... Gruß, Frederik Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice
|
erstellt am: 10. Feb. 2007 18:04 <-- editieren / zitieren --> Unities abgeben:
Mit Regular Expressions geht's langsam voran; immerhin habe ich hier noch was gefunden - auf Deutsch, für VB/VBA. Ein einfaches Beispiel mal für VBA: Gültigkeit der Eingabe einer E-Mail-Adresse. Man benötigt: - Eine Userform namens UserForm1 - Eine Schaltfläche namens cmdEmail - Ein Textfeld namens txtEmail Außerdem unter Extras-Verweise Häkchen setzen! Die Userform enthält dann diesen Code: Option Explicit Dim myReg As RegExp Private Sub cmdEmail_Click() TestEmail UserForm1.txtEmail.Text End Sub Public Function TestEmail(ByVal vstrEmail As String) Dim blnTest As Boolean Set myReg = New RegExp myReg.Pattern = _ "^[a-z0-9\-\.]{2,63}@[a-z0-9\-\.]{2,63}\.[a-z]{2,4}$" myReg.IgnoreCase = True blnTest = myReg.Test(vstrEmail) If blnTest = True Then MsgBox "E-Mail-Adresse ist gültig.", vbOKOnly, "eMail-Test" Else MsgBox "E-Mail-Adresse ist ungültig!", vbOKOnly + vbCritical, _ "eMail-Test" End If UserForm1.txtEmail.SetFocus Set myReg = Nothing End Function
Ist schnell gebaut und zum Nachvollziehen recht gut geeignet - finde ich jedenfalls.Für mein eigenes Verständnis der RegExps habe ich den link von trekkie gelesen; da läßt sich sehr viel ableiten. Der 'Mengenlehre'-link von Thomas [auf deutsch] ist auch informativ und für den Einstieg recht gut gemacht, wenn auch weniger ausführlich; dafür gibt's zahlreiche weiterführende links. An der Prüfe-mir-den-Wert-direkt-bei-der-Eingabe-ohne-daß-der-User-auf-nen-Knopf-drücken-muß
-Geschichte für mein konkretes Vorhaben muß ich noch ein wenig feilen; jedenfalls lichten sich langsam, aber sicher die Schatten! Nun ist der Samstag auch schon wieder 'rum... Euch allen noch ein geruhsames Wochenende! [thedit] So, und aus aktuellem, gegebenem und glücklichen Anlass füge ich gleich mal den link zum neuen Forum ein [/thedit] Frederik [Diese Nachricht wurde von Paulchen am 06. Mrz. 2007 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|