Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Textfeld mit Autosize , Breite fest einstellbar ?

Forumthread: Textfeld mit Autosize , Breite fest einstellbar ?

Textfeld mit Autosize , Breite fest einstellbar ?
26.02.2009 22:14:51
a_ke
Hallo,
ich habe ein Problem bei der Textausgabe mit einem Textfeld.
Die Ausgabe der Druckseiten soll in Excel erfolgen, damit nicht mehrere Programme geöffnet werden müssen. Da einzelne Zellen nicht mehr als 1024 Zeichen darstellen, aber teilweise mehr Text dargestellt werden muss, scheidet die Übernahme in eine einzelne Zelle aus. Eine Aufteilung in mehrere Zellen mit max. 1024 und automatischer Anpassung der Zeilenhöhe habe ich ausprobiert und wieder verworfen, da durch die Trennung teilweise ein einzelnes Wort in der letzten Zeile steht, der Satz aber in der ersten Zeile des nächsten Blocks weitergeführt wird.
Aus diesem Grund habe ich ein Textfeld eingefügt. Die Daten werden über Linked Cell eingefügt.
Über AutoSize, Multiline und WordWrap erfolgt die Anpassung.
Der Fehler: Sobald über das Eingabeformular der Text gelöscht wird und anschließend wieder ein Text
gewählt wird, stellt sich die Breite der Textbox auf ein Zeichen und stellt den Text nach unten dar.
Wie kann der Breite ein fester Wert zugewiesen werden, aber dennoch eine Erweiterung nach
unten möglich bleiben ? (Anpassung bei Schließen des Eingabeformulars ?)
Am besten dürfte es aber an der beigefügten Datei ersichtlich sein.
Hinweis: Wegen des zweiten Fehlers beim Import von mehr als 200 Zeichen in eine Zelle habe ich mich
bereits an J. Lorenz gewandt, da er mir seinerzeit diese Funktion erstellt hat und den Grund
sicher schnell parat hat.
Ich möchte die Kollegen im Forum jedenfalls nicht unnötig strapazieren.
Falls der Aufwand in dieser Sache generell zu hoch ist und nicht im Forum gelöst werden kann, bitte ich
ebenfalls um kurze Antwort bzw. Mail, falls es jemand als Programmierauftrag erledigen könnte.
Nach Behebung der Probleme würde ich die Datei jedoch gern an H. Herber weitergeben, falls Interesse
für die Beispieldateien besteht. (ist mit Hilfe des Forums entstanden, dabei nochmal vielen Dank an Josef)
https://www.herber.de/bbs/user/59824.zip
Andre
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Textfeld mit Autosize , Breite fest einstellbar ?
27.02.2009 11:28:33
fcs
Hallo Andre,
das Problem mit der Textbox kannst du wahrscheinlich lösen, indem du ein Ereignismakro einfügst, das die Breite einstellt und mit Anpassung der Textbox-Eigenschaften.
Gruß
Franz

'Ereignismakro unter dem Tabellenblatt "Textausgabe"
Private Sub TextBox1_Change()
With Me.TextBox1
.Width = 365
End With
End Sub
Eigenschaften der Textbox:
Autosize:  True
IntegralHeight: False


Anzeige
Vielen Dank an Franz, Lösung gefunden
27.02.2009 13:46:00
a_ke
Hallo Franz,
vielen Dank für Deine Lösung. IN die gleiche Richtung hatte ich heute auch schon experimentiert.
Auf alle Fälle muss vor der Aktivierung von AutoSize die Breite Width vorgegeben werden.
Nur dann funktioniert es.
Andre
;
Anzeige
Anzeige

Infobox / Tutorial

Textfeld in Excel mit fester Breite und automatischer Höhe anpassen


Schritt-für-Schritt-Anleitung

  1. Textfeld einfügen: Öffne deine Excel-Datei und gehe zum Tab "Entwicklertools". Klicke auf "Einfügen" und wähle das "Textfeld" aus. Zeichne das Textfeld auf deinem Arbeitsblatt.

  2. Textbox-Eigenschaften anpassen: Klicke mit der rechten Maustaste auf das Textfeld und wähle "Steuerelement formatieren". Stelle sicher, dass die Eigenschaften Autosize auf True, IntegralHeight auf False und Multiline ebenfalls aktiviert sind.

  3. Ereignismakro erstellen: Um die Breite des Textfeldes festzulegen, musst du ein VBA-Makro erstellen. Drücke ALT + F11, um den VBA-Editor zu öffnen. Füge im entsprechenden Arbeitsblatt (z.B. "Textausgabe") den folgenden Code ein:

    'Ereignismakro unter dem Tabellenblatt "Textausgabe"
    Private Sub TextBox1_Change()
       With Me.TextBox1
           .Width = 365 'Feste Breite für das Textfeld
       End With
    End Sub
  4. Makro speichern: Schließe den VBA-Editor und speichere deine Datei als "Excel-Arbeitsmappe mit Makros" (*.xlsm).

  5. Testen: Gib nun Text in das Textfeld ein und teste die Funktionalität. Das Textfeld sollte die Breite von 365 Punkten beibehalten und die Höhe automatisch anpassen.


Häufige Fehler und Lösungen

  • Problem: Das Textfeld hat nach dem Löschen und erneuten Eingeben von Text die Breite auf ein Zeichen reduziert.

    • Lösung: Stelle sicher, dass das oben genannte Ereignismakro korrekt implementiert ist. Es sorgt dafür, dass die Breite des Textfeldes nach jeder Änderung wieder auf 365 Punkte gesetzt wird.
  • Problem: Der Text wird nicht richtig umgebrochen.

    • Lösung: Überprüfe, ob die Eigenschaften Multiline und WordWrap im Textfeld aktiviert sind.

Alternative Methoden

Eine alternative Methode zur Verwendung von Textfeldern in Excel ist die Verwendung von Formularsteuerelementen. Diese bieten ähnliche Funktionalitäten, können jedoch je nach Anwendungsfall einfacher zu handhaben sein.

  1. Formularsteuerelement einfügen: Gehe zu "Entwicklertools" und wähle "Formularsteuerelemente". Füge ein "Textfeld" ein und passe die Eigenschaften an.

  2. VBA für Formularsteuerelemente: Der VBA-Code ist ähnlich wie oben, jedoch musst du die spezifischen Steuerelementnamen in deinem Projekt verwenden.


Praktische Beispiele

Ein praktisches Beispiel für die Anwendung eines Textfeldes in Excel ist die Erstellung eines Eingabeformulars für die Dateneingabe. Wenn du eine große Menge an Informationen erfassen möchtest, kannst du das Textfeld nutzen, um sicherzustellen, dass der Benutzer genügend Platz hat, um seine Eingaben zu machen.

Beispielsweise:

  • Anwendungsfall: Kundenfeedback erfassen
  • Vorgehensweise: Erstelle ein Formular mit einem Textfeld, in dem Kunden ihre Rückmeldungen eingeben können. Setze die Breite und die AutoSize-Eigenschaft so, dass es benutzerfreundlich ist.

Tipps für Profis

  • VBA-Optimierung: Wenn du mehrere Textfelder hast, kannst du den VBA-Code optimieren, indem du eine Schleife einfügst, um die Breite für alle Textfelder gleichzeitig festzulegen.

  • Ereignisse nutzen: Verwende zusätzlich andere Ereignisse wie TextBox1_GotFocus oder TextBox1_LostFocus, um weitere Anpassungen vorzunehmen, wenn das Textfeld aktiviert oder deaktiviert wird.


FAQ: Häufige Fragen

1. Wie kann ich die Größe des Textfelds dauerhaft speichern? Um die Größe des Textfeldes dauerhaft zu speichern, musst du sicherstellen, dass du die Datei als Makro-fähige Arbeitsmappe speicherst (*.xlsm).

2. Was kann ich tun, wenn die AutoSize-Funktion nicht richtig funktioniert? Überprüfe die Eigenschaften des Textfeldes und stelle sicher, dass Autosize auf True und IntegralHeight auf False gesetzt ist. Diese Einstellungen sind entscheidend für die korrekte Funktionsweise des Textfeldes.

3. Ist die Vorgehensweise in allen Excel-Versionen gleich? Die beschriebene Methode funktioniert in den meisten modernen Excel-Versionen (Excel 2010 und später). Es kann jedoch Unterschiede in der Benutzeroberfläche geben.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige