Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1216to1220
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

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

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
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

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige