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

Textcode mal einfach? geht das?

Forumthread: Textcode mal einfach? geht das?

Textcode mal einfach? geht das?
Anja
Hallo,
ich möchte gerne in einem Userform beim Start 5 Textboxen mit dem Inhalt von Zelle A1 füllen.
Normal mach ich das so..
TB_LA1.Value = Worksheets("Daten").Range("A1").Value
TB_LA2.Value = Worksheets("Daten").Range("A1").Value
TB_LA3.Value = Worksheets("Daten").Range("A1").Value
TB_LA4.Value = Worksheets("Daten").Range("A1").Value
TB_LA5.Value = Worksheets("Daten").Range("A1").Value
Nun meine Frage!? Kann ich das auch in einem einfacheren Code machen?
TB_LA1.Value & TB_LA2.Value = Worksheets("Daten").Range("A1").Value
funktioniert natürlich nicht.
hat jemand eine Idee?
besten dank
Anja
Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Textcode mal einfach? geht das?
12.06.2011 19:36:49
Josef

Hallo Anja,
das geht nur so.
Dim lngIndex As Long
For lngIndex = 1 To 5
  Controls("TB_LA" & lngIndex).Value = Worksheets("Daten").Range("A1").Value
Next


« Gruß Sepp »

Anzeige
AW: Textcode mal einfach? geht das?
12.06.2011 19:43:45
Anja
Ok, vielen Dank... das würde prima funktionieren.
Aber nun wenn der Name der Textbox sich nur durch die Zahl unterscheidet.
Gibt es noch andere möglichkeiten?
Vielen Dank
Anja
AW: Textcode mal einfach? geht das?
12.06.2011 19:55:16
Josef

Hallo Anja,
sicher, z. B. so.
Dim lngIndex As Long
Dim strControls() As Variant
strControls = Array("TextBox1", "AndereTextBox", "TB99", "GanzAndereTextBox")
For lngIndex = 0 To UBound(strControls)
  Controls(strControls(lngIndex)).Value = Worksheets("Daten").Range("A1").Value
Next


« Gruß Sepp »

Anzeige
noch ne Variante
12.06.2011 20:48:46
Oberschlumpf
Hi Anja
Und wenn du mal viel mehr als 5 Textboxen hast, oder wenn du keine Lust hast, die Namen der Textboxen vorher in die Array-Codezeile eintragen zu müssen, dann versuch doch mal meine Idee:
Sub sbFillTxt()
Dim lctrTxt As Control
For Each lctrTxt In UserForm1.Controls
If TypeName(lctrTxt) = "TextBox" Then
lctrTxt.Text = Sheets("Daten").Range("A1").Value
End If
Next
End Sub

Mit dieser Idee werden mit Hilfe einer For/Each-Schleife innerhalb eines Userforms alle Steuerelemente nach dem Typ geprüft. Und jedes Element des Typen "TextBox" erhält den Wert aus Zelle A1 des Blattes "Daten".
Hilfts?
Ciao
Thorsten
Anzeige
AW: noch ne Variante
12.06.2011 21:07:00
Anja
Auch eine feine Idee.
Vielen Dank schonmal dafür.
Besten dank
Anja
AW: Textcode mal einfach? geht das?
13.06.2011 00:25:56
Daniel
Hi
man kanns auch so verkürzen:
With Worksheets("Daten").Range("A1")
TB_La1.text = .value
TB_La2.Text = .Value
...
End With
gruß, Daniel
AW: Textcode mal einfach? geht das?
13.06.2011 00:29:50
Oberschlumpf
Hi Daniel
Wenn du aber z Bsp 30 Textboxen "versorgen" willst, is dein Code nich mehr ganz so kurz.
Ciao
Thorsten
Anzeige
AW: Textcode mal einfach? geht das?
13.06.2011 12:55:46
Daniel
aber immer noch kürzer als ohne. :-)
Gruß, Daniel
AW: ganz einfach
14.06.2011 00:39:54
Daniel
Hi
hier noch ne Möglichkeit:
jedes Steuerelement hat die TAG-Eigenschaft, die der Anwender frei benutzen kann.
Schreibe einfach bei jeder Textbox, die den Wert aus A1 bekommen soll, eine Spezifische Kennung (z.B. "xxx") in die TAG-Eigenschaft (im VBA-Editor im Eigenschaftsfenster) und lass dann folgendes Makro laufen:
Dim crt As Control
For Each crt In Me.Controls
If crt.Tag = "xxx" Then crt.Text = Range("A1").Value
Next

Prinzipell könntest du auch jeder Textbox den Wert aus einer anderen Zelle zuweisen, wenn du den Zellbezug "A1" in die TAG-Eigenschaft schreibst und so kodierst:
Dim crt As Control
For Each crt In Me.Controls
If crt.Tag  "" Then crt.Text = Range(crt.Tag).value
Next

Gruß, Daniel
Anzeige
;

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