Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1024to1028
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

UserForm Textfeld

UserForm Textfeld
22.11.2008 13:20:44
Jochen
Hallo Forum
Ich habe mir über eine UserForm eine Eingabemaske für meine Daten erstellt.
Dort gibt es mehrere Textfelder die den selben Wert erhalten.
Wie kann ich die Eigenschaften der Textfelder die den gleichen Wert erhalten sollen so einstellen
das sie den Wert übernehmen.
Beispiel:
Textfeld a Wert: 500
Textfeld b Wert: 600
Textfeld c Wert: Wert von Textfeld a
Textfeld d Wert: 250
Textfeld e Wert: Wert von Textfeld a
Kann ich die Textfelder so einsellen das der Wert übernomen wird,und man nicht
auf die Textfelder zugreifen kann.
Gruß Jochen

19
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: UserForm Textfeld
22.11.2008 14:07:47
hary
hallo Jochen
versuch mal in der Art
TextBoxc = TextBoxa
Eigenschaft von TextBoxc Enable = false
Gruss Hary
AW: UserForm Textfeld
22.11.2008 18:22:00
Jochen
Hallo
Das man in das Textfeld keine Werte mehr eintragen kann geht jetzt.
Aber wo soll ich bei den Eigenschaften des Textfeldes den Befehl zum kopieren
oder übernehmen eintragen?
Gruß Jochen
AW: UserForm Textfeld
22.11.2008 19:27:00
hary
Hallo Jochen
Du musst in das Textfeldc mit rechts klicken auf Code.
da gibst Du ein zb.
TextBoxc = TextBoxa
schau mal hier rein
https://www.herber.de/bbs/user/57052.xls
Gruss Hary
Anzeige
muss heissen TextBoxa owt
22.11.2008 19:31:13
hary
.
AW: muss heissen TextBoxa owt
22.11.2008 22:32:00
Jochen
Hallo Hary
Jetzt gehts so in die Richtung was ich erreichen möchte.
Habe den Befehl umgeändert für mein Programm.
Wenn die Textboxc gesperrt ist wird kein Wert eingetragen, also habe ich die Sperre
wieder aufgehoben.
Der Wert wird nur dann eingetragen wenn die Textbox aktiv ist, auf der Tastatur
eine Taste gedrückt wird (egal welche) und wenn dann auch noch Return gedrückt wird.
Möchte aber erreichen das der Wert eingetragen wird und die Textbox übersprungen wird.
Stell mir das so vor: Wert in Textboxa eintragen und Return drücken, in Textboxc erscheint der Wert von Textboxa, Textboxb wird aktiv, der Wert wird eingetragen,Return gedrück und dann wird Textboxd aktiv.
Geht das so überhaupt oder möchte ich da etwas machen was man so nicht machen kann.
Gruß Jochen
Anzeige
jetzt richtig
23.11.2008 07:27:01
hary
Hallo Jochen
War gestern so zwischen Tuer und Angel gemacht. Jetzt verbesserte UserForm.
Habe die zu sperrenden Boxen nicht mit enable sonder mit locked = true gemacht, dann kann es besser gelesen werden. Die Aktivierreihenfolge geaendert nach Deinen Vorgaben. Zur Reihenfolge kommst Du wenn Du mit rechts auf die Userform klickst.

Die Datei https://www.herber.de/bbs/user/57053.xls wurde aus Datenschutzgründen gelöscht


Gruss Hary
AW: jetzt richtig
23.11.2008 14:46:00
Jochen
Hallo Hary
Zuerst mal vielen vielen Dank
Das ist jetzt genau so wie ich es wollte.
Habe dein Userfeld für meines umgeändert und es funktioniert nun so wie ich es mir
vorsestellt habe.
Nun habe ich noch 2 Fragen.
Frage 1:
Das Programm in dem ich arbeite berechnet Oberflächen.
Bis jetzt wurden die einzelnen Werte über einen Inputbox eingetragen.
Alle Werte wurden einzeln abgefragt und eingetragen.
Geht nun besser weil ich alle Werte die benötigt werden auf einmal sehen kann.
Bei der Eingabe in die Inputbox wird überprüft ob die Eingabe eine Zahl ist und das Eingabefeld
der Inputbox auch einen Wert hat und nicht leer ist. Wenn die Eingabe nicht richtig ist wird
auch nichts in die angesprochene Zelle übertragen.
Kann ich das auch so mit den einzelnen Textboxen machen?
Wenn ja wie?
Frage 2:
Bei der Eingabe der Werte sind die Eingaben mit Bedingungen verbunden.
Wenn man in die Textboxe und in die Textboxf eine Null einträgt muß in der Textboxr
ein Wert größer Null erscheinen.
Oder der Wert der Textboxn darf nicht größer sein als 500.
Habe das bei der Eingabe über die Inputbox mit einer IF-Anweisung gelöst.
Da der Wert sofort eingetragen wird und das Makro die Bedingungen überprüft.
Das ganze funktioniert mit Sprungmarken zb. If.... then Goto 1 und das Makro startet wieder
an der Sprungmarke 1.
Ist nicht die eleganteste Lösung aber es geht.
Kann ich das auch mit den Textboxen in der selben Art machen.
Wenn ja wie oder gibt es da einen anderen Weg.
Die Werte bei der Textbox müssten ja überprüft werden bevor sie in die einzelnen Zellen
übertragen werden.
Gruß Jochen
Anzeige
AW: jetzt richtig
23.11.2008 15:02:14
Jochen
Hallo Hary
Habe vergessen zu schreiben wenn bei der Eingabe mit der Inputbox
die Bedingungen nicht erfüllt sind wird der Benutzer mit einer Msgbox darauf
aufmerksam gemacht.
Sollte nach Möglichkeit auch bei den Textfeldern gesehen.
Der Benutzer muß ja wissen warum das so nicht geht.
Gruß Jochen
AW: Nummern
23.11.2008 17:02:00
hary
Hallo Jochen
Nur Nummern zulassen kannst Du so machen. hier den in den Textboxa Code.

Private Sub Textboxa_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case 48 To 57
Case Else: KeyAscii = 0
End Select
End Sub


lasse die Frage mal auf offen. Gleich feierabend
Hary

Anzeige
ein teil
23.11.2008 20:01:00
hary
Hallo Jochen nochmal ich. Noch nicht optimal, aber wenn nix eingetragen wird kommt die Meldung und die Zahl wird verlangt auch bei eingabe von Buchstaben.

Die Datei https://www.herber.de/bbs/user/57077.xls wurde aus Datenschutzgründen gelöscht


Gruss Hary
AW: ein teil
24.11.2008 21:17:41
Jochen
Hallo Hary
Habe mir den Code angeschaut.
Ist doch schon gut.
Optimal wäre jetzt, wenn man nichts einträgt oder Buchstaben und dann Return drückt
müsste die Textbox die im Moment aktiv ist auch aktiv bleiben, solange
bis ein Wert eingetragen ist. So das der Benutzer einen Wert eingeben muss.
Hast du auch einen Lösungsvorschlag für meine zweite Frage?
Will nicht unverschämt sein.
Werde morgen Abend wieder reinschauen kann aber erst nach 20:30 Uhr sein.
Habe in der Woche von Montag bis Donnerstag immer lange Arbeitstage.
Gruß Jochen
Anzeige
AW: so? Genau So!!!!!
25.11.2008 23:12:46
Jochen
Hallo Hary
Erstmal danke für deine Antwort.
Habe deine Änderung in meinen Code eingebaut.
Jetzt kann man nur noch das eingeben was auch als Eingabe gebraucht wird.
Die Formeln können rechnen ohne das beim Ergebnis eine falsche Oberfläche errechnet wird.
Kann ich auch auf dem selben Weg die Bedingungen zwischen den Textboxen überprüfen?
So wie du jetzt den Inhalt überprüft hast.
Oder gibt es da eine andere Möglichkeit.
Die DIN sagt zB.: wenn Textboxe =0 und Textboxf =0 dann darf Textboxr nicht 0 sein.
Ist Textboxe größer 0 und TextBoxf größer 0 dann darf Texboxr =0 sein.
Ich muss als entweder in Texboxe und Textboxf einen Wert größer 0 haben oder
einen Wert in Textboxr größer 0.
Mit meinen Inputboxen habe ich das ja mit If.... Then gelöst.
Ist das der richtige Weg?
Gruß Jochen
PS. Was mach ich wenn unsere Chat nicht mehr auf dem Bildschirm erscheint.
Kann man dann trotz dem darin weiter Schreiben?
Anzeige
werds versuchen
26.11.2008 00:10:00
hary
Nabend Jochen
Mit if...then muesste es gehen, ich werds mal mit Case probieren.
wenn der Thread rausfaellt. Neuen Thread und in Betreff: @Hary
dann werd ich's schon finden.
Gruss Hary
fuer textboxr
26.11.2008 01:10:00
hary
Hallo Jochen
ich weiss ja nicht wie die zahlen in F und R reinkommen. Gehe mal von per Handeingabe aus.
Dann fuer TextBoxr

Private Sub TextBoxr_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBoxe = 0 And TextBoxf = 0 And TextBoxr = 0 Then
TextBoxr = ""
TextBoxf = ""
MsgBox ("Boxen e und f müssen >0 sein")
Cancel = TextBoxf = ""
End If
End Sub


Gruss hary

Anzeige
AW: fuer textboxr Beispiel
27.11.2008 00:07:08
Jochen
Hallo Hary
Habe jetzt alles was ich von dir bekommen habe eingebaut.
Sind noch ein paar Dinge die ich gerne ändern würde.
Damit du einmal sehen kannst was überhaupt abläuft schau mal hier rein.
Klick einfach auf die Schaltfläche

Die Datei https://www.herber.de/bbs/user/57171.xls wurde aus Datenschutzgründen gelöscht


Das was ich noch ändern möchte ist.
1. Wenn b und d gleich sind soll nach der Msgmeldung b aktiv sein und die Eingaben von b und d
sollen leer sein.
2. Sind e, f und r alle 0 dann soll nach der Msgmeldung e aktiv sein.
3. Wenn ich beim Winkel keine Eingabe mache und Return drücke soll der Winkel aktiv bleiben,
springt jetzt auf Übernehmen.
Habe mich bis zu dem Ergebnis was du sehen kannst durchgekämpft.
Bin vieleicht blind und habe auch irgendwo was übersehen.
Kannst du mir hier für einen Lösungsvorschlag machen.
Viele Grüße Jochen
Anzeige
oh oh
27.11.2008 03:52:44
hary
Hallo Jochen
habe gebastelt wie'n Kesselflicker und habe den Focus nach der Ueberpruefung, doch nicht ins Feld gebracht. Habe dann mal im Archiv gewuehlt. und siehe da: Da stand ein kleiner unscheinbarer Satz.
ein control kann niemals den Focus auf sich selbst setzen
evtl. sehe ich noch de Moeglichkeit einer Ueberpruefung mit einen extra Button.
Einen fehler habe ich entdeckt. Gibt mal in f die zahl 54 ein. Im Code sind alle Zahlen in " " gesetzt, das heisst Text.
Thread fliegt bald raus, mal sehen ob ichs morgen schaffe. entweder hier oder in Betreff @Jochen achten
Gruss Hary
Anzeige
AW: stueck fuer stueck weiter
28.11.2008 00:07:00
Jochen
Hallo Hary
Habe mir deinen nächsten Schritt angesehen, aber noch nicht in mein Programm übernommen.
Mache ich morgen.
Geh jetzt schlafen mir fallen die Augen zu.
Hab heute abend versucht das Problem mit der wEingabe über die Eingabemaske zulösen.
Ergebnis:
Habe das auch schon mal mit Access gemacht, einfach ein weiteres Textfeld in den
MaßeingaberahmenBA legen, darüber ein Bezeichnungsfeld.
Die Farben so ändern das man es nicht mehr sehen kann.
Jetzt kann man wEingabe genauso behandeln wie die anderen Eingabefelder beim benutzen von
Update und Exit.
Einziger Nachtteil nach dem man Return gedrückt hat ist die Übernahmen nicht aktiv.
Muss dann zweimal drücken oder mit der Maus.
Gute Nacht bis morgen
Gruß Jochen

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige