Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
984to988
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
984to988
984to988
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Textformatierung Text-Boxen

Textformatierung Text-Boxen
13.06.2008 15:13:55
Peter
Hallo zusammen!
Ich habe in meiner Excel-Datei auf verschiedenen Tabellenblätter Textboxen, die ich so verknüpft habe, dass wenn ich in der Box auf dem Deckblatt etwas eintrage, in den anderen Boxen eben dieser Text auch erscheint. Ich habe also stets in jeder Textbox das gleiche stehen.
Nun tritt aber folgender Effekt auf: Klicke ich auf die Master-Textbox (also die, in die ich Text eintrage), rückt der Text etwas zusammen, sodass, wenn ich die Textbox zunächst vollschreibe, nachher nicht der vollständige Text zu sehen ist, weil er ja dann wieder ins ursprüngliche Format zurückspringt und damit größer wird. Das würde ich gerne abstellen.
Ein weiterer Punkt ist, dass der Text in den anderen Boxen grau dargestellt wird. Das kommt daher, dass ich diese Boxen als gesperrt deklariert habe, damit niemand den Text verändern kann. Man soll den Text nur einmal auf dem ersten Blatt eingeben können und es soll sichergestellt sein, dass in allen Textboxen das selbe steht. Aber der Text sollte halt in allen Boxen schwarz sein.
Freu mich auf Eure Ideen! Viel Spaß beim Knobeln! :-)
Gruß
Peter

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Textformatierung Text-Boxen
13.06.2008 17:36:00
Franc
Textbox1 = die Textbox die geändert werden darf
Textbox2 = die Textbox wo nichts geändert werden darf aber das gleiche drinstehen soll
Nun ist die Textbox2 (oder wieviel das auch immer ein mögen) nicht gesperrt aber wenn man was ändern will, würde automatisch immer das von Textbox 1 drinstehen.

Private Sub TextBox1_Change()
TextBox2.Text = TextBox1.Text
End Sub



Private Sub TextBox2_Change()
TextBox2.Text = TextBox1.Text
End Sub


AW: Textformatierung Text-Boxen
16.06.2008 08:40:01
Peter
Hallo Franc!
Danke für Deine Idee. Funktioniert (natürlich ;-) ) einwandfrei. Nun ist der Text in der zweiten Textbox nicht mehr grau, sondern schwarz. Und verändern kann ich ihn auch nicht. So wie ich's mir gewünscht habe.
Bleibt die Frage, was ich tun kann, damit die Textformatierung bzw. -größe beim Eingeben des Textes gleich der ist, die der Text nach dem Eingeben hat. Zur Erinnerung: beim Eingeben ist die Schrift kleiner, sodass mehr Text in die Box passt. Wenn ich dann die Eingabe beende, wird der Text wieder größer und der zu viel geschriebene Text ist nicht mehr sichtbar und wird auch nicht gedruckt.
Hat da noch jemand eine Idee? Eventuell wäre es auch eine Lösung, eine maximale Zeilenzahl festzulegen. Hatte da schonmal nach gefragt, aber da konnte mir keiner helfen. Aber vielleicht findet sich ja noch jemand.
Freu mich auf Eure Ideen!
Schöne Grüße
Peter

Anzeige
AW: Textformatierung Text-Boxen
16.06.2008 09:49:00
Franc
kann das bei mir nicht nachvollziehen, das bei Eingabe der Text kleiner dargestellt wird.
Wenn du etwas eingrenzen willst, hast nachfolgend ein Beispiel
Anzahl der zeichen wird mit len(textbox) begrenzt und wenn du auch nur bestimmte Zeichen erlauben willst, kannst das mit KeyAscii tun. (im Internet nach Ascii Tabelle suchen um zu wissen welches Zeichen welche Zahl hat)
Man kann auch in einer Tabelle zum Beispiel in A1 =CODE(B1) reinschreiben und in B1 dann ein zeichen eingeben und man sieht auch was das für Asscii zahl hat.

Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If Len(TextBox1) > 10 Then
MsgBox "max. 10 Zeichen erlaubt!"
KeyAscii = 0
Else
Select Case KeyAscii
Case 46, 48 To 57, 65 To 90, 97 To 122
Case Else
MsgBox "Sonderzeichen und Umlaute nicht erlaubt!", vbCritical, "Ungültige Zeichen"
KeyAscii = 0
End Select
End If
End Sub


Anzeige
AW: Textformatierung Text-Boxen
16.06.2008 10:07:00
Peter
Hi Franc,
danke für die schnelle Rückmeldung.
Das Phänomen der unterschiedlichen Schriftgröße trat bei mir auch erst später auf. Keine Ahnung wieso.
Dein Lösungsvorschlag für die Textbegrenzung trifft es leider nur bedingt. Meine Textboxen haben mehrere Zeilen und ich möchte gerne die Anzahl der verfügbaren Zeien begrenzen. Es kann ja sein, dass jemand insgesamt 100 Zeichen schreibt, aber dies entweder in einer Zeile tut, in 10 Zeilen zu je 10 Zeichen oder, im Extremfall, in 100 Zeilen zu je einem Zeichen. Ich möchte aber als einziges Kriterium die maximal Zeilenanzahl haben, unabhängig von der Zeichenanzahl pro Zeile. Ich habe die Box so eingestellt, dass sie MultiLine ist und Zeilenumbrüche automatisch einfügt.
Könnte man nicht einen Code schreiben, der die Anzahl der Zeilenumbrüche zählt? Dabei müsste man allerdings beachten, dass es ja automatische und manuelle Zeilenumbrüche gibt, deren jeweilige Anzahl durchaus variieren kann. Bin leider im Programmieren nicht wirklich fit.
Inwiefern unterscheidet sich denn Dein Vorschlag (von der Zeichensperrung mal abgesehen) von der Eigenschaft MaxLength?
Wie gesagt, andere hatten da auch keine Idee (was ich irgendwei komisch finde), aber ich habe trotz allem noch Hoffnung! ;-)
Schöne Grüße!
Peter

Anzeige
AW: Textformatierung Text-Boxen
16.06.2008 10:56:00
Franc

ich kenn keine Möglichkeit wie man die Zeilen aus einer Textbox ermitteln kann
Eine Möglichkeit ist, das wenn die Zeilenumbrüche mit "shift + enter" eingefügt werden folgende
damit teilt man bei jedem "Enter" den Text in ein array und sobald das array 10 werte = 10  _
Zeilen umfasst kommt zum Beispiel die msgbox oder was anderes.
If UBound(Split(TextBox1.Value, Chr(13))) >= 10 Then MsgBox "max. 10 Zeilen erlaubt!"
Schreibt man aber ganz normal weiter, dann wüßte ich nicht wie man die Zeilen rausbekommen soll.


AW: Textformatierung Text-Boxen
16.06.2008 11:00:00
Peter
Hi Franc!
Vielen Dank auf jeden Fall für Deine Hilfe. Schade, für mein Problem scheint es nicht wirklich eine Lösung zu geben. Naja, dann muss ich vermutlich auf die Anwender vertrauen, dass sie nicht mehr schreiben als sie sehen. Bin gespannt, wie das ausgeht...
Oder hat noch jemand anderes eine Idee?
Schöne Grüße
Peter

Anzeige
AW: Textformatierung Text-Boxen
16.06.2008 12:07:46
Franc
hmpf gibt da doch was ^^

Private Sub TextBox1_Change()
TextBox2.Text = TextBox1
End Sub


Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If TextBox1.LineCount >= 10 Then
KeyAscii = 0
MsgBox "max. 300 Zeichen oder 10 Zeilen erlaubt!"
End If
End Sub


AW: Textformatierung Text-Boxen
16.06.2008 12:50:00
Peter
Hey Franc,
kein Grund für ein Hmpf. Das ist doch schon super. Ich bin total begeistert. Ein Schritt in die richtige Richtung. Jetzt muss ich nur noch schaffen, dass man nach dem Wegklicken der Nachricht nicht noch mit Return weitere Zeilen einfügen kann. Momentan geht das nämlich noch; schreiben kann man in diesen Zeilen aber schon jetzt nicht mehr, was gut ist. Aber so rückt der Text noch aus dem Blick- und Druckbereich.
Hast Du da noch eine Idee? Bin selber leider absoluter Laie.
Vielen Dank für Deine Hilfe. Hat mich echt weitergebracht!
Schöne Grüße
Peter

Anzeige
AW: Textformatierung Text-Boxen
16.06.2008 13:28:00
Peter
Hi Franc,
noch was ist mir aufgefallen: wenn man in die letzte zulässige Zeile kommt, erhält man diese Fehlermeldung. Wenn man diese Zeile nun nicht löscht, kann man an keiner Stelle in der Textbox mehr schreiben, sondern bekommt jedes Mal die Fehlermeldung.
Man müsste also irgendwie erreichen, dass wenn die Fehlermeldung erscheint, der letzte Zeilenumbruch wieder rückgängig gemacht wird. So wird erreicht, dass man in den anderen Zeilen noch was schreiben kann.
Siehst Du oder jemand anderes da eine Möglichkeit?
Besten Dank im Voraus!
Peter

AW: Textformatierung Text-Boxen
16.06.2008 14:19:00
Franc
das KeyAscii Event weg und nur das nehmen und es sollte so sein wie du es willst.
Das kann man auch nicht wirklich austricksen - naja also fast nicht.
Wenn man mehr reinkopiert, kommt solang die Meldung bis es nur noch 300 Zeichen oder 10 Zeilen sind. (könnte man mit esc abbrechen aber naj .. das läßt sich nun glaub nicht verhindern)

Private Sub TextBox1_Change()
Dim pgup As Boolean
If Len(TextBox1) > 300 Or TextBox1.LineCount > 10 Then
MsgBox "max. 300 Zeichen oder 10 Zeilen erlaubt!"
SendKeys "{BKSP}"
pgup = True
End If
If pgup = True Then
SendKeys "{PGUP}"
pgup = False
End If
TextBox2.Text = TextBox1
End Sub


Anzeige
AW: Textformatierung Text-Boxen
16.06.2008 14:45:00
Peter
Franc, Du bist ein Genie!
Jetzt ist es so, wie ich's mir vorgestellt habe. Ich habe noch das pgup weggelassen, damit der Cursor an der Stelle bleibt, wo er ist und jetzt bin ich mit dieser Funktion super zufrieden. Perfekt!
Danke Dir sehr, sehr herzlich!
Zu der Frage mit der unterschiedlichen Textgröße beim Schreiben bzw. nicht mehr schreiben: hab in der gleichen Datei nochmal eine neue Textbox gemacht, die das gleiche Phänomen gezeigt hat. Hab dann eine neue Datei geöffnet, da trat das Phänomen nur in sehr geringem Maße auf. Aber es tritt auf. Der Text wird kleiner, wenn ich in die Box klicke und größer, wenn ich die Box verlasse.
Was mache ich da nur.......

Anzeige
AW: Textformatierung Text-Boxen
16.06.2008 14:59:31
Franc
post doch am besten die Datei mit den Textboxen. (die daten und makros die keiner sehen darf kannst ja weglassen also extra datei speichern die du hier hochladen kannst

AW: Textformatierung Text-Boxen
16.06.2008 15:42:00
Peter
Hi Franc,
Hab mal alles rausgelöscht und nur die 2 Textboxen übrig gelassen. Da sieht man's am Besten. Hab auch versucht, ne neue Datei zu machen, da kommt es aber nur ganz schwach zum Vorschein.
https://www.herber.de/bbs/user/53144.xls
Du siehst, wenn Du auf die Textbox auf Tabelle1 klickst, schrumpelt der Texst regelrecht zusammen. Wie kommt das? Und vorallem: was kann ich dagegen tun?
Ein anderes Phänomen, welches ich hier aber leider nicht reproduzieren konnte, ist, dass ich beim Anklicken der Text verrutscht, sodass er komplett zu sehen ist, sobald ich aber wieder außerhalb klicke, rutscht der Text 2 Zeilen nach oben, sodass ich die obersten zwei Zeilen nicht mehr sehe.
Seltsam, seltsam....
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige