Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA: Textbox - ControlSource - Tabelle ansprechen

Forumthread: VBA: Textbox - ControlSource - Tabelle ansprechen

VBA: Textbox - ControlSource - Tabelle ansprechen
12.12.2002 12:15:54
Tody
Ich habe in einem Formular eine Textbox, die auf eine Zelle eines bestimmten Tabellenblattes zugreifen soll. Aktiv ist im Excel zu dieser Zeit aber ein Diagramm und das möchte ich nicht ändern.

Wie kann ich jetzt nun den Zugriff auf eine bestimmte Zelle eines bestimmten Tabellenblattes aktivieren ?
Der Befehl
TextBox9.ControlSource = Tabelle1!d3
wird von Excel verweigert....

Excel97 auf WinNT

Danke im voraus für alle Ideen

Tody

Anzeige

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: VBA: Textbox - ControlSource - Tabelle ansprechen
12.12.2002 12:22:23
Hajo
Hallo Tody

in einem anderem Forum hast Du doch zu diesem Problem schon 6 Antworten erhalten, war da nichts passendes bei.

Gruß Hajo

Re: VBA: Textbox - ControlSource - Tabelle ansprechen
12.12.2002 12:24:16
Tody
Hi Hajo,

leider nicht, sonst würde ich ja nicht weitersuchen (müssen).

Tody

falsche Syntax
12.12.2002 12:25:18
L.Vira
TextBox1.ControlSource = "Tabelle1!B2"
Anzeige
Re: VBA: Textbox - ControlSource - Tabelle ansprechen
12.12.2002 12:26:19
Hajo
Hallo Tody

damit hier aber nicht die gleichen vorschläge kommen hätte ich die bisher vorgeschlagenen mal aufgelistet.

Gruß Hajo

so funktioniert das leider nicht
12.12.2002 12:27:53
Tody
Meldung "Üngültiger Eigenschaftswert" bei Verwendung dieser Syntax....

Trotzdem danke

Re: so funktioniert das leider nicht
12.12.2002 12:29:18
L.Vira
Kann ich nicht nachvollziehen, weils bei mir geht. Ist der angegebene Bereich leer? Wenn nicht, gibts einen Fehler!
Anzeige
Re: VBA: Textbox - ControlSource - Tabelle ansprechen
12.12.2002 12:30:18
Tody
Der Vorschlag lief im Endeffekt darauf hinaus, die ganze Funktion ControlSource zu Fuß nachzuprogrammieren, sprich, die ganzen Events auszuwerten und zu verarbeiten. Und das bei > 20 Textboxen .....

Tody

Re: so funktioniert das leider nicht
12.12.2002 12:32:30
Tody
Warum muß der angegebene Bereich leer sein?? Das wiederspricht doch vollkommen dem Ziel der Funktion (aus meiner Sicht), nämlich der Datenein- und -ausgabe (Kommunikation Textbox <-> Tabelle)...

Trotzdem werde ich das noch einmal prüfen...

Danke

Tody

Anzeige
Re: so funktioniert das leider nicht
12.12.2002 12:34:22
L.Vira
Warum? Ich hab Excel (leider)nicht programmiert.
Re: so funktioniert das leider nicht
12.12.2002 12:38:09
Hajo
Hallo Tody

ich muß L.Vira Recht geben bei mir klappt es auch obwohl ein Diagramm das Aktive Register ist. Vielleicht sollten wir mal die Frage anders stellen was verstehts Du unter ein Formular??

Ich habe es in einer Userform getestet.

Gruß Hajo

Anzeige
Re: so funktioniert das leider nicht
12.12.2002 12:42:07
L.Vira
kann auch nur userform sein, weil Textboxen in der Mappe keine
controlsource kennen!
Re: so funktioniert das leider nicht
12.12.2002 12:44:55
Hajo
Hallo L.Vira

ich bin nicht der Fachmann für Steuerelemente in der Tabelle. Endschuldigung ich hatte nicht nachgesehen.

Gruß Hajo

Re: so funktioniert das leider nicht
12.12.2002 12:45:29
Tody
Ok, Begriffsklarstellung Formular = Userform...

Private Sub UserForm_Initialize()

TextBox9.ControlSource = "Tabelle1!B99"

End Sub

Compilieren ok, zur Laufzeit:

Eigenschaft ControlSource konnte nicht gesetzt werden. Ungültiger Eigenschaftswert

Tody


Anzeige
Re: so funktioniert das leider nicht
12.12.2002 12:49:44
Hajo
Hallo Tody

ich habe Extra eine Userform erstellt und ich Vermute mal L.Vira auch und bei uns geht es. Du mußt uns ein enscheidenen Punkt nicht mitgeteilt haben. Leider habe ich keine Vermuntung welchen.

Das ist das alllgemeine Problem, man muß den Fehler nachbauen können um ihn zu beseitigen.

Gruß Hajo

Anzeige
Häh & Danke
12.12.2002 12:55:53
Tody
Ich habe gerade das gleiche gemacht, ganz neu Excel, neues Dokument, 2 Tabellen, 1 Diagramm, neue Userform, eine Textbox, Code eingefügt -> das geht alles. Warum in meinem besc******* Projekt nicht........

Grübel und in-mich-geh

Danke an alle

Tody,

der an sich und der Welt zu zweifeln anfängt

Anzeige
Problem gefunden
12.12.2002 13:01:46
Tody
Ich habe das Problem gefunden:

die Tabelle1 heißt 2-test

wenn ich schreibe

Private Sub UserForm_Activate()
TextBox1.ControlSource = "2-test!a1"
End Sub

kommt es ebenso zum Fehler wie
TextBox1.ControlSource = "Tabelle1!a1"

Der Blattname darf offensichtlich kein "-" enthalten *in-den-Hintern-beiß*

Danke noch einmal an alle

Tody

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige

Infobox / Tutorial

VBA: Textbox ControlSource in Excel Ansprechen


Schritt-für-Schritt-Anleitung

Um eine Textbox in einer Userform mit einer Zelle in Excel zu verknüpfen, befolge diese Schritte:

  1. Öffne den VBA-Editor:

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

    • Klicke mit der rechten Maustaste im Projektfenster und wähle Einfügen > UserForm.
  3. Füge eine Textbox hinzu:

    • Wähle die Textbox aus der Toolbox und ziehe sie auf die Userform.
  4. Setze den ControlSource:

    • Füge im Codefenster der Userform folgenden Code ein:
      Private Sub UserForm_Initialize()
      TextBox1.ControlSource = "Tabelle1!A1" ' Passe den Tabellennamen und die Zelle an
      End Sub
  5. Starte die Userform:

    • Drücke F5, um die Userform zu starten und teste, ob die Textbox den Wert aus der angegebenen Zelle anzeigt.

Häufige Fehler und Lösungen

  • Ungültiger Eigenschaftswert: Wenn du die Fehlermeldung "Ungültiger Eigenschaftswert" erhältst, prüfe Folgendes:

    • Der angegebene Bereich darf keinen Bindestrich enthalten. Beispiel: "2-test" führt zu einem Fehler. Verwende stattdessen "2_test".
  • Leere Zelle: Wenn die Zelle, auf die du zugreifen möchtest, leer ist, kann dies ebenfalls zu Problemen führen. Stelle sicher, dass die Zelle einen Wert hat.

  • Falsche Syntax: Achte darauf, dass du die korrekte Syntax verwendest:

    TextBox1.ControlSource = "Tabelle1!B2"

Alternative Methoden

Wenn das Setzen des ControlSource nicht funktioniert, kannst du die Werte auch manuell in die Textbox einfügen:

Private Sub UserForm_Activate()
    TextBox1.Value = Worksheets("Tabelle1").Range("A1").Value
End Sub

Hierbei wird der Wert aus der Zelle A1 der Tabelle "Tabelle1" direkt in die Textbox übernommen. Diese Methode ist nützlich, wenn du dynamisch mit Daten arbeiten möchtest.


Praktische Beispiele

  1. TextBox mit einer Zelle verknüpfen:

    Private Sub UserForm_Initialize()
       TextBox1.ControlSource = "Tabelle1!A1"
    End Sub
  2. Wert aus mehreren Textboxen auf ein Arbeitsblatt übertragen:

    Private Sub CommandButton1_Click()
       Worksheets("Tabelle1").Range("A1").Value = TextBox1.Value
       Worksheets("Tabelle1").Range("A2").Value = TextBox2.Value
    End Sub

Tipps für Profis

  • Verwende die ControlSource-Eigenschaft nur in Userforms: Textboxen in einem Arbeitsblatt unterstützen keine ControlSource. Achte darauf, dass du immer in einer Userform arbeitest, wenn du diese Funktion nutzen möchtest.

  • Debugging: Nutze Debug.Print oder setze Haltepunkte, um den aktuellen Wert von ControlSource zu überprüfen, falls Probleme auftreten.

  • Vermeide Bindestriche in Tabellennamen: Wenn du einen Tabellennamen mit einem Bindestrich verwendest, kann dies zu Fehlern führen. Verwende stattdessen Unterstriche.


FAQ: Häufige Fragen

1. Warum funktioniert mein ControlSource nicht? Stelle sicher, dass der Tabellennamen korrekt ist und keine ungültigen Zeichen wie Bindestriche enthält.

2. Kann ich ControlSource auch in einer normalen Excel-Tabelle verwenden? Nein, die ControlSource-Eigenschaft ist nur für Textboxen in Userforms verfügbar. In normalen Arbeitsblättern kannst du nur die Werte manuell einfügen.

3. Was kann ich tun, wenn meine Textbox leer bleibt? Überprüfe, ob der angegebene Bereich in der Tabelle einen Wert hat und dass die Syntax korrekt ist. Achte darauf, dass du den richtigen Tabellennamen verwendest.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige