Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

VBA Textbox Zeichen und Zeilenbegrenzung

987 views
Skip to first unread message

Jürgen Stadermann

unread,
Feb 17, 2013, 4:08:52 AM2/17/13
to
Hallo!
Viele lösbare Antworten habe ich hier schon erhalten.
Erstmal DANKE dafür an Alle.

Nun eiere ich schon wieder an folgender Aufgabe herum.

ich suche eine Möglichkeit, bei Eingabe in einer Textbox, die Anzahl der
Zeichen - einschl. Leerzeichen- auf 10 pro Zeile und die Anzahl der
Zeilen auf max 3 zu begrenzen.
D.h. hat der User die erste Zeile beschrieben,springt der Courser in die
2. Zeile, b.z.w. dann in die 3. Zeile und mehr ist nicht möglich.

Danke schon mal für Antworten.

Jürgen

Claus Busch

unread,
Feb 17, 2013, 4:50:53 AM2/17/13
to
Hallo Jürgen,

Am Sun, 17 Feb 2013 10:08:52 +0100 schrieb Jürgen Stadermann:

> ich suche eine Möglichkeit, bei Eingabe in einer Textbox, die Anzahl der
> Zeichen - einschl. Leerzeichen- auf 10 pro Zeile und die Anzahl der
> Zeilen auf max 3 zu begrenzen.
> D.h. hat der User die erste Zeile beschrieben,springt der Courser in die
> 2. Zeile, b.z.w. dann in die 3. Zeile und mehr ist nicht möglich.

du kannst die Anzahl Zeichen beschränken mit der Eigenschaft MaxLength.
Aber du kannst nicht die Zeichen pro Zeile beschränken.
Die Zeilen lassen sich auch nicht beschränken. Du hast entweder
Multiline true oder false, also entweder lässt du mehrere Zeilen zu oder
nicht.
Du müsstest das Ganze per Code lösen. Also Mulitline auf true setzen,
Anzahl Zeichen mit Maxlength beschränken und wenn dann die Textbox
verlassen wird den Text in 3 Zeilen per 10 Zeichen anordnen. Teste mal
folgenden Code für eine TextBox2:

Private Sub TextBox2_Change()
With TextBox2
.MultiLine = True
.MaxLength = 35
End With
End Sub

Private Sub TextBox2_LostFocus()
With TextBox2
.Text = Mid(.Text, 1, 10) & vbNewLine & _
Mid(.Text, 11, 10) & vbNewLine & _
Mid(.Text, 21, 10)
End With
End Sub


Mit freundlichen Grüßen
Claus Busch
--
Win XP Prof SP3 / Vista Ultimate SP2
Office 2003 SP3 /2007 Ultimate SP3

Hans Alborg

unread,
Feb 17, 2013, 12:53:35 PM2/17/13
to
Huhu Jürgen,

"Jürgen Stadermann" schrieb...

> D.h. hat der User die erste Zeile beschrieben,springt der Courser in die
> 2. Zeile, b.z.w. dann in die 3. Zeile und mehr ist nicht möglich.

Einfach schummeln?
3 Textboxen untereinandersetzen und wenn eine voll ist, den Focus in die
nächste setzen. Ich habs ähnlich mit "einer" 3-spaltigen Box gemacht. Es ist
allerdings ein dünner Strich zwischen den Textfeldern zu sehen.
Also: "MaxLengh" auf 10 (wie Claus erwähnt), "MultiLine" aus und...

Hans

Jürgen Stadermann

unread,
Feb 19, 2013, 3:08:33 AM2/19/13
to
Am 17.02.2013 10:50, schrieb Claus Busch:
> Hallo J�rgen,
>
> Am Sun, 17 Feb 2013 10:08:52 +0100 schrieb J�rgen Stadermann:
>
>> ich suche eine M�glichkeit, bei Eingabe in einer Textbox, die Anzahl der
>> Zeichen - einschl. Leerzeichen- auf 10 pro Zeile und die Anzahl der
>> Zeilen auf max 3 zu begrenzen.
>> D.h. hat der User die erste Zeile beschrieben,springt der Courser in die
>> 2. Zeile, b.z.w. dann in die 3. Zeile und mehr ist nicht m�glich.
>
> du kannst die Anzahl Zeichen beschr�nken mit der Eigenschaft MaxLength.
> Aber du kannst nicht die Zeichen pro Zeile beschr�nken.
> Die Zeilen lassen sich auch nicht beschr�nken. Du hast entweder
> Multiline true oder false, also entweder l�sst du mehrere Zeilen zu oder
> nicht.
> Du m�sstest das Ganze per Code l�sen. Also Mulitline auf true setzen,
> Anzahl Zeichen mit Maxlength beschr�nken und wenn dann die Textbox
> verlassen wird den Text in 3 Zeilen per 10 Zeichen anordnen. Teste mal
> folgenden Code f�r eine TextBox2:
>
> Private Sub TextBox2_Change()
> With TextBox2
> .MultiLine = True
> .MaxLength = 35
> End With
> End Sub
>
> Private Sub TextBox2_LostFocus()
> With TextBox2
> .Text = Mid(.Text, 1, 10) & vbNewLine & _
> Mid(.Text, 11, 10) & vbNewLine & _
> Mid(.Text, 21, 10)
> End With
> End Sub
>
>
> Mit freundlichen Gr��en
> Claus Busch
>
Hallo Claus.
Danke f�r die Antwort.
Doch, wo finde ich >> LostFocus() << ?
Ich arbeite mit Excel 2010

Gru�
J�rgen







Claus Busch

unread,
Feb 19, 2013, 3:12:13 AM2/19/13
to
Hallo J�rgen,

Am Tue, 19 Feb 2013 09:08:33 +0100 schrieb J�rgen Stadermann:

> Doch, wo finde ich >> LostFocus() << ?
> Ich arbeite mit Excel 2010

wenn der Berarbeiter merkt, dass er nichts mehr eingeben kann, wird er
die Textbox verlassen und damit wird LostFocus ausgel�st.


Mit freundlichen Gr��en
Claus Busch

Claus Busch

unread,
Feb 19, 2013, 3:21:23 AM2/19/13
to
Hallo J�rgen,

Am Tue, 19 Feb 2013 09:08:33 +0100 schrieb J�rgen Stadermann:

> Doch, wo finde ich >> LostFocus() << ?
> Ich arbeite mit Excel 2010

du kansnt die TextBox auch �ber den Code verlassen, z.B.:

Private Sub TextBox1_Change()
With TextBox1
.MultiLine = True
.MaxLength = 35
If Len(.Text) = 35 Then
Me.Range("A1").Select
End If
End With
End Sub

Da aber der Bearbeiter fr�hlich am Schreiben ist, wird er noch ein wenig
weiterschreiben, bis er realisiert, dass er nicht mehr in der Textbox
ist. Daher w�re hier sinnvoll eine Zelle auszusuchen, bei der
�berschreiben keine Probleme macht.


Mit freundlichen Gr��en
Claus Busch
0 new messages