Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema TextBox
BildScreenshot zu TextBox TextBox-Seite mit Beispielarbeitsmappe aufrufen

Textlänge bei Eingabe in Textbox begrenzen

Betrifft: Textlänge bei Eingabe in Textbox begrenzen von: TomTom
Geschrieben am: 23.07.2008 19:14:19

Hi,

ich lade mir auf meinem Sheet Daten aus einer Zelle in eine Textbox:

For Each C in Range ("A5")
Textbox2.Value = Textbox2.Value & C.Value
Next

Nun möchte ich die Eingabe in die Texgbox begrenzen, und zwar nach 2 Kriterien:

1. es sollen max. 500 Zeichen in die Textbox geschrieben werden oder,
2. es sollen max. 10 Zeilen in die Textbox geschrieben werden

(Je nachdem , was eintritt)

Sollte der Fall mal eintreten, dass nicht der gasamt Inhalt aufgrund der 2 genannten Kriterien in die Textbox geschrieben werden kann, dann soll am Schluss der Information noch ein "..." angefügt werden.

1. Beispiel : "Wenn diese Information über 500 Zeichen hätte, dann soll am Schluss, an der Stelle wo abgeschnitten wurde nach das hier ran : ...."

2. Beispiel:
"Wenn diese Information
über 10 Zeilen
hätte, dann
soll am
Schluss,
an der
Stelle wo
abgeschnitten
wurde nach
das hier ran :
...."

Ich hoffe, ich konnte Euch mein Problem richtig erklären und jemand kann mir sagen, wie ich meinen seither genutzten Code erweitere,

Danke mal

Gruss
Tom

  

Betrifft: AW: Textlänge bei Eingabe in Textbox begrenzen von: Worti
Geschrieben am: 23.07.2008 20:26:19

Hi Tom,
liest du nur die eine Zelle A5 aus (1)?
Oder einen Zellbereich, wo du nach jeder Zelle einen Zeilenumbruch in der Textbox einfügen willst (2)?
Oder haben eventuell die zusammenzufügenden Zellen schon Zeilenumbrüche(3) ?


für den Fall (2) versuch mal diesen Code:

Sub tom()

    Dim rngC As Range
    Dim intAnzahlzeilen
    intAnzahlzeilen = 0
    For Each rngC In Range("A1:A15")
       If Len(UserForm1.TextBox1.Value) + Len(rngC) <= 500 And _
          intAnzahlzeilen < 10 Then
          If rngC <> "" Then
             UserForm1.TextBox1.Value = UserForm1.TextBox1.Value + rngC.Value & Chr(10)
             intAnzahlzeilen = intAnzahlzeilen + 1
          End If
       Else
          UserForm1.TextBox1.Value = UserForm1.TextBox1.Value & "..."
          Exit For
       End If
    Next

    UserForm1.Show

End Sub




Gruß Worti


  

Betrifft: AW: Textlänge bei Eingabe in Textbox begrenzen von: TomTom
Geschrieben am: 23.07.2008 23:36:03

Hi worti,

ich habe eigentlich beides. Es kommt vor, dass es in der Zelle ein einfacher String gibt, der über 500 Zeichen haben kann (eine Zeile). Dann soll nach dem 500 Zeichenabgeschnitten werden.
Es kann aber auch vorkommen, dass die Information selbst schon Zeilenumbrüche hat und dann soll nach der 10 Zeile schluss sein (egal, ais wiedvie Zeiechen eien Zeile besteht)

Gruss
Tom


  

Betrifft: AW: Textlänge bei Eingabe in Textbox begrenzen von: Matthias L
Geschrieben am: 23.07.2008 20:27:20

Hallo Tom

Gib der MaxLength-Eigenschaft der Textbox einen Wert z.B 503
Vergleiche nun Len(Textbox1.Value) mit MaxLength.

Nun kannst Du mit einer If Abfrage die Länge die Box neu befüllen, unter dem Motto

If Len(Textbox1.Value)=500 then Textbox1.Value= Left(Textbox1.Value,500) &"..."

- nicht getestet -

Gruß Matthias


  

Betrifft: AW: Textlänge bei Eingabe in Textbox begrenzen von: Daniel
Geschrieben am: 24.07.2008 02:15:31

Hi

du könntest mit diesem Code nach vollständiger Texteingabe die Textbox beschneiden:

With TextBox1
Do Until .LineCount <= 10 And Len(.Text) <= 500
    .Text = Left$(.Text, Len(.Text) - 1)
Loop
.Text = Left$(.Text, Len(.Text) - 3) & "..."
End With




Gruß, Daniel


 

Beiträge aus den Excel-Beispielen zum Thema "Textlänge bei Eingabe in Textbox begrenzen"