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

Forumthread: Textboxen mit variablen Namen ansprechen

Textboxen mit variablen Namen ansprechen
23.06.2015 14:15:59
Thomas
Hallo Ihr lieben Profis,
ich versuche seit ein paar Stunden ein paar Textboxen auf einem anderen sheet mit einem festen und einem variablen Namensteil anzusprechen... und scheitere.
Folgendes habe ich probiert:
MsgBox Sheets("test").TextBox.Text ==== geht natürlich
MsgBox Sheets("test").TextBox(variable).Text ==== geht nicht
MsgBox Sheets("test").TextBox(variable & "fixer_name").Text ==== geht nicht
MsgBox Sheets("test").variable.Text ==== geht nicht
MsgBox Sheets("test").shapes(variable & "fixer_name").Text ==== geht nicht
Auch wenn ich .Value anstatt .Text verwende funktioniert das nicht.
Die Textbox befindet sich dabei nicht auf einer Userform, sondern einfach nur auf dem Sheet. Wäre super, wenn mir einer helfen könnte.
Vielen Dank

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Textboxen mit variablen Namen ansprechen
23.06.2015 14:24:48
Nepumuk
Hallo,
so:
MsgBox Worksheets("test").OLEObjects("TextBox" & CStr(variable)).Object.Text
Gruß
Nepumuk

AW: Textboxen mit variablen Namen ansprechen
23.06.2015 14:48:47
Thomas
FANTASTISCH! Danke
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Textboxen in Excel mit variablen Namen ansprechen


Schritt-für-Schritt-Anleitung

Um Textboxen auf einem Excel-Arbeitsblatt mit variablen Namen anzusprechen, gehe wie folgt vor:

  1. Variablen definieren: Stelle sicher, dass Du eine Variable hast, die den variablen Teil des Namens der Textbox enthält. Beispiel:

    Dim variable As Integer
    variable = 1 ' Setze die Variable auf den gewünschten Wert
  2. Textbox ansprechen: Verwende den folgenden Code, um auf die Textbox zuzugreifen:

    MsgBox Worksheets("test").OLEObjects("TextBox" & CStr(variable)).Object.Text

    Hierbei wird die Textbox mit dem Namen TextBox1 angesprochen, wenn die Variable 1 ist.


Häufige Fehler und Lösungen

  • Fehler: MsgBox Sheets("test").TextBox(variable).Text funktioniert nicht
    Lösung: Verwende OLEObjects anstelle von TextBox. Der korrekte Code lautet:

    MsgBox Worksheets("test").OLEObjects("TextBox" & CStr(variable)).Object.Text
  • Fehler: MsgBox Sheets("test").Shapes(variable & "fixer_name").Text funktioniert nicht
    Lösung: Um auf die Textbox zuzugreifen, musst Du OLEObjects verwenden, nicht Shapes.


Alternative Methoden

Eine alternative Methode ist die Verwendung von For Each-Schleifen, um durch alle OLEObjects auf dem Arbeitsblatt zu iterieren. So kannst Du auch Textboxen mit variablen Namen dynamisch ansprechen:

Dim obj As OLEObject
For Each obj In Worksheets("test").OLEObjects
    If TypeName(obj.Object) = "TextBox" Then
        ' Hier kannst Du die Bedingungen für den variablen Namen hinzufügen
        MsgBox obj.Object.Text
    End If
Next obj

Praktische Beispiele

Hier sind einige praktische Beispiele, wie Du Textboxen mit variablen Namen ansprechen kannst:

  1. Zugriff auf spezifische Textbox:

    Dim variable As Integer
    variable = 2
    MsgBox Worksheets("test").OLEObjects("TextBox" & CStr(variable)).Object.Text
  2. Dynamisches Auslesen aller Textboxen:

    Dim obj As OLEObject
    Dim output As String
    For Each obj In Worksheets("test").OLEObjects
       If TypeName(obj.Object) = "TextBox" Then
           output = output & obj.Object.Text & vbCrLf
       End If
    Next obj
    MsgBox output

Tipps für Profis

  • Namen konsistent halten: Stelle sicher, dass die Textboxen auf dem Arbeitsblatt eine konsistente Namensgebung haben, um den Zugriff zu erleichtern.
  • Fehlerbehandlung einfügen: Verwende On Error Resume Next, um mögliche Laufzeitfehler beim Zugriff auf nicht vorhandene Textboxen zu vermeiden.
  • Verwendung von Arrays: Überlege, ob Du die Namen der Textboxen in einem Array speichern möchtest, um den Zugriff zu vereinfachen.

FAQ: Häufige Fragen

1. Wie kann ich den Text einer Textbox ändern?
Du kannst den Text einer Textbox so ändern:

Worksheets("test").OLEObjects("TextBox" & CStr(variable)).Object.Text = "Neuer Text"

2. Funktioniert das auch in Excel 2016?
Ja, dieser Code funktioniert in Excel 2010 und späteren Versionen, einschließlich Excel 2016.

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