Autor
|
Thema: Eingabefeld in Inputbox begrenzen.. (2756 mal gelesen)
|
ackee Mitglied
Beiträge: 20 Registriert: 25.11.2004
|
erstellt am: 21. Dez. 2005 09:22 <-- editieren / zitieren --> Unities abgeben:
Hallo V5ler, Hab hier mal wieder ein kleines Problem mit meinem Macro. Ich hab in meinem Macro ein Eingabefeld, in das eine Bezeichnung mit höchstens 10 Stellen eingegeben werden muss. Wie kann ich das Eingabefeld begrenzen, dass der Benutzer nicht mehr Stellen eingeben kann. Das wär mal das wichtigste. Wenn dann zufällig noch jemand weiß wie, wenn nicht die kompletten zehn Stellen ausgefüllt werden, ich dem Macro sagen kann, dass es die restlichen stellen mit Punkten auffüllt. Euch schon mal vielen Dank ein frohes Fest an alle und Gruß an die Welle
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
gehirnsuelze Mitglied Student
Beiträge: 58 Registriert: 16.11.2005
|
erstellt am: 21. Dez. 2005 09:46 <-- editieren / zitieren --> Unities abgeben: Nur für ackee
Nu ja, diese Aufgabenstellung wird sich wohl nicht gerade einfach umsetzen lassen. Ich nehme an du programmierts in CATScript oder VBScript !?! Denke nicht das das dort so einfach zu gestalten ist. Ich würde dir vorschlagen CATvba zu verwenden, denn dort kannst du dir eigene Eingabefelder erzeugen, die dann auch viel flexibler auf die Nutzereingaben reagieren können. Nachteil: neben der Makroprogrammierung an sich, musst du dir noch etwas über VBA anlesen. Das geht aber relativ zügig wenn man mal ein paar Quellen gefunden hat. Die Lösung mit dem begrenzten String sollte man dann in einem VBA- Forum finden. Dafür gibt es sicherlich schon Ansätze. Hab dir zwar nicht geholfen aber dich hoffentlich etwas weiter gebracht. Mfg Gehirnsuelze Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tomtom1972 Mitglied dipl ing maschinenbau
Beiträge: 605 Registriert: 22.03.2005 NVidia Quadro K4000 Intel Xeon E5-1620, 64GB RAM Windows10 64bit R30 <= CATIA V5 > =R19
|
erstellt am: 21. Dez. 2005 14:28 <-- editieren / zitieren --> Unities abgeben: Nur für ackee
Hallo, du kannst zwar nicht die Länge des Eingabefeldes selbst begrenzen, aber du kannst die Eingabe in eine Loop setzten, die erst verlassen wird, wenn die Eingabe <=10 Zeichen ist. Dann bis zum 10 Zeichen Punkte zufügen. Test es mal. Mehr kannst du mit einer Inputbox (CATScript) nicht machen. Gruss TomTom Sub CATMain() Dim sInfo, sVorgabe, sString as String sInfo = "Bitte einen maximal 10stelligen String eingeben" sVorgabe = "12345" Do sString = inputbox(sInfo, "TestEingabeBox", sVorgabe) sInfo = "Das waren aber mehr als 10 Stellen. Nochmal." Loop until (Len(sString) <= 10) Do While (Len(sString) < 10) sString = sString & "." Loop msgbox sString, 64, "Info" End Sub ------------------ tomtom1972 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ackee Mitglied
Beiträge: 20 Registriert: 25.11.2004
|
erstellt am: 21. Dez. 2005 14:55 <-- editieren / zitieren --> Unities abgeben:
|
tanker17 Mitglied
Beiträge: 5 Registriert: 16.09.2005
|
erstellt am: 22. Dez. 2005 11:08 <-- editieren / zitieren --> Unities abgeben: Nur für ackee
Hallo TomTom, ich habe ein ähnliches Problem ... Ich möchte, wie ackee, die Eingabemöglichkeiten begrenzen. Allerdings nicht in der Anzahl, sondern, ich möchte dem Benutzer verbieten, Umlaute (ä,ö,ü) zu verwenden. Sollte der Benutzer dennoch einen Umlaut verwenden, soll er erneut eine Eingabe machen müssen.(wie bei ackee) Vielen Dank vorab und schöne Feiertage,
tanker17 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tomtom1972 Mitglied dipl ing maschinenbau
Beiträge: 605 Registriert: 22.03.2005 NVidia Quadro K4000 Intel Xeon E5-1620, 64GB RAM Windows10 64bit R30 <= CATIA V5 > =R19
|
erstellt am: 22. Dez. 2005 13:36 <-- editieren / zitieren --> Unities abgeben: Nur für ackee
Hallo, das geht am einfachsten über die Abfrage des Ascii-Codes eines Zeichen. Die Grossbuchstaben A-Z entsprechen z.B. 65-90 im Ascii-Code, die kleinen (a-z) 97-122. Eine Liste findest du, wenn du in Googel nach < +Ascii +Code +Liste > suchst. Das ganze in eine Schleife und fertig. Das Script unten lässt nur Grossbuchstaben als Eingabe zu. Die Abfrage kannst du erweitern wie du willst. Es geht auch einfach das Gegenteil, d.h. die Ascii- Codes der Länderspezifischen Zeichen (>192) sollens nicht sein: .... If Not (asc(Mid(sString, i, Len(sString))) >= 192 Then Viel Spass damit und auch ein schönes Weihnachtsfest. Gruss TomTom Der Code: Sub CATMain() Dim sInfo, sVorgabe, sString as String Dim bAllowedSigns As Boolean sInfo = "Bitte nur Buchstaben eingeben (A-Z)" sVorgabe = "ABCDEÖÄÜ" Do sString = inputbox(sInfo, "TestEingabeBox", sVorgabe) sInfo = "Das waren aber keine Buchstaben (A-Z). Nochmal." For i = 1 to Len(sString) If (asc(Mid(sString, i, Len(sString))) >= 65 AND asc(Mid(sString, i, Len(sString))) < 90) Then bAllowedSigns = true End if Next Loop until bAllowedSigns msgbox sString, 64, "Info" End Sub ------------------ tomtom1972 [Diese Nachricht wurde von tomtom1972 am 22. Dez. 2005 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tanker17 Mitglied
Beiträge: 5 Registriert: 16.09.2005
|
erstellt am: 22. Dez. 2005 15:05 <-- editieren / zitieren --> Unities abgeben: Nur für ackee
|
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|