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

Forumthread: Textfeld füllen mit VBA

Textfeld füllen mit VBA
15.01.2014 13:57:56
eres
Zunächst einen herzlichen Gruß ins Forum.
Habe auf einem Excel-Blatt "per Hand" ein leeres Textfeld angelegt (Tab Einfügen, dort Textfeld) und diesem den Namen "Textfeld1" gegeben. Dann habe ich ein Makro zum Füllen des Texfeldes aufgezeichnet:
    ActiveSheet.Shapes.Range(Array("Textfeld1")).Select
Selection.ShapeRange(1).TextFrame2.TextRange.Characters.Text = "Y"
Beim Versuch das "Select" zu eliminieren:
ActiveSheet.Shapes.Range(Array("Textfeld1")).ShapeRange(1).TextFrame2.TextRange.Characters.Text = "Y"
erhalte ich die Fehlermeldung 438 (Objekt unterstützt diese Eigenschaft nicht).
Kann mir jemand helfen, wie ich dies ohne Select bzw. kürzer formulieren kann?
Bin für jede Hilfe dankbar.
Gruß
erwin

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Textfeld füllen mit VBA
15.01.2014 15:03:35
selli
hallo erwin,
Dim objTb As Shape, strText As String
strText = "Y"
Set objTb = ActiveSheet.Shapes("Textfeld1")
objTb.TextFrame.Characters.Text = strText
gruß
selli

oder so
15.01.2014 15:07:48
selli
hallo erwin,
ActiveSheet.Shapes("Textfeld1").TextFrame.Characters.Text = "Y"
gruß
selli

Anzeige
AW: Textfeld füllen mit VBA
15.01.2014 15:07:00
Beverly
Hi Erwin,
   ActiveSheet.Shapes("Textfeld 1").DrawingObject.Text = "Y"


Herzlichen Dank selli & Beverly - klappt prima o.T
15.01.2014 15:15:32
eres
.
;
Anzeige
Anzeige

Infobox / Tutorial

Textfeld füllen mit VBA in Excel


Schritt-für-Schritt-Anleitung

  1. Textfeld erstellen: Füge ein Textfeld in dein Excel-Blatt ein. Klicke dazu auf "Einfügen" und wähle "Textfeld". Benenne es beispielsweise "Textfeld1".

  2. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Modul hinzufügen: Klicke mit der rechten Maustaste auf "VBAProject (DeineDatei.xlsx)", wähle "Einfügen" und dann "Modul".

  4. VBA-Code eingeben: Füge den folgenden Code in das Modul ein, um das Textfeld zu füllen:

    Sub FillTextField()
        Dim objTb As Shape
        Set objTb = ActiveSheet.Shapes("Textfeld1")
        objTb.TextFrame.Characters.Text = "Y"
    End Sub
  5. Makro ausführen: Schließe den VBA-Editor und kehre zu Excel zurück. Drücke ALT + F8, wähle "FillTextField" aus und klicke auf "Ausführen".


Häufige Fehler und Lösungen

  • Fehlermeldung 438: Wenn du die Fehlermeldung "Objekt unterstützt diese Eigenschaft nicht" erhältst, überprüfe, ob du die richtige Syntax verwendest. Stelle sicher, dass der Name des Textfeldes korrekt geschrieben ist.

  • Text wird nicht angezeigt: Wenn der Text nicht im Textfeld erscheint, überprüfe die Sichtbarkeit des Textfeldes. Manchmal kann es sein, dass das Textfeld hinter einem anderen Objekt verborgen ist.


Alternative Methoden

  1. Verwendung eines Tab-Characters: Wenn du ein Tabulator-Zeichen einfügen möchtest, kannst du es wie folgt tun:

    objTb.TextFrame.Characters.Text = "Y" & vbTab
  2. Füllen mehrerer Textfelder: Wenn du mehrere Textfelder füllen möchtest, kannst du eine Schleife verwenden:

    Dim shp As Shape
    For Each shp In ActiveSheet.Shapes
        If shp.Type = msoTextBox Then
            shp.TextFrame.Characters.Text = "Fülltext"
        End If
    Next shp

Praktische Beispiele

  • Einfaches Füllen: Ein einfaches Beispiel für das Füllen eines Textfeldes:

    ActiveSheet.Shapes("Textfeld1").TextFrame.Characters.Text = "Hallo Welt"
  • Mehrere Textfelder füllen: Um mehrere Textfelder in einem UserForm zu füllen:

    Dim txt As Control
    For Each txt In UserForm1.Controls
        If TypeName(txt) = "TextBox" Then
            txt.Value = "Text"
        End If
    Next txt

Tipps für Profis

  • Namen von Textfeldern: Achte darauf, dass die Namen deiner Textfelder eindeutig sind, um Verwirrung zu vermeiden.

  • Debugging: Nutze Debug.Print im VBA-Editor, um den Inhalt von Variablen zu überprüfen, falls etwas nicht funktioniert.

  • Fehlerbehandlung: Füge Fehlerbehandlungsroutinen hinzu, um unerwartete Probleme während der Ausführung zu vermeiden:

    On Error Resume Next
    ' Dein Code hier
    On Error GoTo 0

FAQ: Häufige Fragen

1. Wie kann ich den Text in einem Textfeld dynamisch ändern?
Du kannst den Text in einem Textfeld durch eine Variable festlegen. Beispiel:

Dim strText As String
strText = "Neuer Text"
ActiveSheet.Shapes("Textfeld1").TextFrame.Characters.Text = strText

2. Kann ich Textfelder in einem UserForm füllen?
Ja, du kannst Textfelder in einem UserForm mit ähnlichen Methoden füllen, indem du auf die Steuerelemente zugreifst:

UserForm1.TextBox1.Value = "Text für TextBox1"

Dieses Tutorial gibt dir eine klare Anleitung, wie du ein Textfeld in Excel mithilfe von VBA füllen kannst. Es bietet dir verschiedene Möglichkeiten und Tipps, um dein Wissen über Excel VBA zu erweitern.

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