Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1000to1004
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
Userform Textboxinhalte in Zellen schreiben
11.08.2008 14:33:59
Gerd
Guten Tag zusammen!
Bitte helft mir bei folgendem Problem:
In einer Userform habe ich eine ganze Reihe Textboxen, in die zum größten Teil Zahlen eingegeben werden.
Nun ist ja bekannt, dass beim Schreiben in Zellen der Inhalt der Textboxen als Text interpretiert wird. Mit der Anweisung CDbl kann man aber ja umwandeln und Kommazahlen werden rechtsbündig dargestellt.
Nun habe ich in der Userform wie gesagt eine ganz Reihe Textboxen, die in zum Teil nicht zusammenhängende Zellbereich geschrieben werden müssen.
Nach etlichen Versuchen der Schleifenbildung blieb mir nichts anderes, als Folgendes:
If UserForm1.tb1.Value "" Then Range("d91") = CDbl(UserForm1.tb1.Value) _
Else Range("d91") = UserForm1.tb1.Value
If UserForm1.tb2.Value "" Then Range("i91") = CDbl(UserForm1.tb2.Value) _
Else Range("i91") = UserForm1.tb2.Value
If UserForm1.tb3.Value "" Then Range("i92") = CDbl(UserForm1.tb3.Value) _
Else Range("i92") = UserForm1.tb3.Value
If UserForm1.tb4.Value "" Then Range("i93") = CDbl(UserForm1.tb4.Value) _
Else Range("i93") = UserForm1.tb4.Value
If UserForm1.tb5.Value "" Then Range("i94") = CDbl(UserForm1.tb5.Value) _
Else Range("i94") = UserForm1.tb5.Value
If UserForm1.tb6.Value "" Then Range("i95") = CDbl(UserForm1.tb6.Value) _
Else Range("i95") = UserForm1.tb6.Value
If UserForm1.tb7.Value "" Then Range("i96") = CDbl(UserForm1.tb7.Value) _
Else Range("i96") = UserForm1.tb7.Value
If UserForm1.tb8.Value "" Then Range("k91") = CDbl(UserForm1.tb8.Value) _
Else Range("k91") = UserForm1.tb8.Value
If UserForm1.tb9.Value "" Then Range("k92") = CDbl(UserForm1.tb9.Value) _
Else Range("k92") = UserForm1.tb9.Value
If UserForm1.tb10.Value "" Then Range("k93") = CDbl(UserForm1.tb10.Value) _
Else Range("k93") = UserForm1.tb10.Value
If UserForm1.tb11.Value "" Then Range("k94") = CDbl(UserForm1.tb11.Value) _
Else Range("k94") = UserForm1.tb11.Value
If UserForm1.tb12.Value "" Then Range("k95") = CDbl(UserForm1.tb12.Value) _
Else Range("k95") = UserForm1.tb12.Value
If UserForm1.tb13.Value "" Then Range("k96") = CDbl(UserForm1.tb13.Value) _
Else Range("k96") = UserForm1.tb13.Value
If UserForm1.AV.Value "" Then Range("g42") = CDbl(UserForm1.AV.Value) _
Else Range("g42") = UserForm1.AV.Value
If UserForm1.KV.Value "" Then Range("G43") = CDbl(UserForm1.KV.Value) _
Else Range("g43") = UserForm1.KV.Value
If UserForm1.PV.Value "" Then Range("g44") = CDbl(UserForm1.PV.Value) _
Else Range("g44") = UserForm1.PV.Value
If UserForm1.RV.Value "" Then Range("g45") = CDbl(UserForm1.RV.Value) _
Else Range("g45") = UserForm1.RV.Value
If UserForm1.ZV.Value "" Then Range("g46") = CDbl(UserForm1.ZV.Value) _
Else Range("g46") = UserForm1.ZV.Value
If UserForm1.BuchstC.Value "" Then Range("G48") = CDbl(UserForm1.BuchstC.Value) _
Else Range("g48") = UserForm1.BuchstC.Value
If UserForm1.BuchstD.Value "" Then Range("g49") = CDbl(UserForm1.BuchstD.Value) _
Else Range("g49") = UserForm1.BuchstD.Value
If UserForm1.BuchstE.Value "" Then Range("g50") = CDbl(UserForm1.BuchstE.Value) _
Else Range("g50") = UserForm1.BuchstE.Value
If UserForm1.BuchstF.Value "" Then Range("g51") = CDbl(UserForm1.BuchstF.Value) _
Else Range("g51") = UserForm1.BuchstF.Value
If UserForm1.BuchstCang.Value "" Then Range("h48") = CDbl(UserForm1.BuchstCang.Value) _
Else Range("h48") = UserForm1.BuchstC.Value
If UserForm1.BuchstDang.Value "" Then Range("h49") = CDbl(UserForm1.BuchstDang.Value) _
Else Range("h49") = UserForm1.BuchstD.Value
If UserForm1.BuchstEang.Value "" Then Range("h50") = CDbl(UserForm1.BuchstEang.Value) _
Else Range("h50") = UserForm1.BuchstE.Value
If UserForm1.BuchstFang.Value "" Then Range("h51") = CDbl(UserForm1.BuchstFang.Value) _
Else Range("h51") = UserForm1.BuchstF.Value
If UserForm1.UStdges.Value "" Then Range("e59") = CDbl(UserForm1.UStdges.Value) _
Else Range("e59") = UserForm1.UStdges.Value
If UserForm1.UStdLand.Value "" Then Range("e60") = CDbl(UserForm1.UStdLand.Value) _
Else Range("e60") = UserForm1.UStdLand.Value
If UserForm1.Abs1Direkt.Value "" Then Range("f81") = CDbl(UserForm1.Abs1Direkt.Value) _
Else Range("f81") = UserForm1.Abs1Direkt.Value
If UserForm1.Abs1NVK.Value "" Then Range("F82") = CDbl(UserForm1.Abs1NVK.Value) _
Else Range("f82") = UserForm1.Abs1NVK.Value
Fällt einem von euch irgendetwas ein, wie man so etwas zusammenfassen kann?
Vielen Dank im Voraus!
Gerd

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

Betreff
Datum
Anwender
Anzeige
AW: Userform Textboxinhalte in Zellen schreiben
12.08.2008 10:17:00
fcs
Hallo Gerd,
da du sinnvoller Weise den meisten Formularfeldern aussagekräftige Namen gegeben hast, kann du die Werte in der VBA-Anweisung auch nur zeilenweise in die Tabelle zurückschreiben.
Ist ja auch nicht weiter schlimm, da du den VBA-Code ja nur einmal schreiben muss.
Eine Übergabe von Formularwerten in eine Tabelle ist nur in einer Schleife möglich, wenn die Namen der Formularfelder eine fortlaufende Nummer enthalten und diese systematisch Zeilen/Spalten im Tabellenblatt zugeordnet werden können.
Gruß
Franz

AW: Userform Textboxinhalte in Zellen schreiben
13.08.2008 11:29:23
Gerd
Hallo Franz!
Ein anderer User hat mir diese Lösung geschickt, die einwandfrei funktioniert, obwohl die Textboxen eindeutige und nicht fortlaufend numerierte Namen haben:

Jedes Steuerelement hat eine TAG-Eigenschaft, die du frei nutzen kannst. Wenn du einmalig für  _
jede Textbox den Zellbezug in die Tag-Eigenschaft schreibst, dann kannst du mit dieser Schleife alle Textboxen auf einmal in die Tabelle zurückschreiben:
Dim cls As Control
For Each cls In UserForm1.Controls
If cls.Tag  "" Then
If IsNumeric(cls.Value) Then
Range(cls.Tag) = CDbl(cls.Value)
Else
Range(cls.Tag) = ""
End If
End If
Next


Trotzdem vielen Dank für Deine Antwort.
Gerd

Anzeige

418 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige