Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1368to1372
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

Code kürzen

Code kürzen
11.07.2014 15:48:00
Andreas
Hallo Excelprofis!
Habe mir ein UserForm mit sehr vielen Textboxen erstellt. Diese befülle ich wie folgt:
Private Sub UserForm_Initialize()
'Textbox400 - 420 = Inhalt "Tabellenübersicht" B3:B23
TextBox400 = Sheets("Tabellenübersicht").Range("B3")
TextBox401 = Sheets("Tabellenübersicht").Range("B4")
TextBox402 = Sheets("Tabellenübersicht").Range("B5")
TextBox403 = Sheets("Tabellenübersicht").Range("B6")
TextBox404 = Sheets("Tabellenübersicht").Range("B7")
TextBox405 = Sheets("Tabellenübersicht").Range("B8")
TextBox406 = Sheets("Tabellenübersicht").Range("B9")
TextBox407 = Sheets("Tabellenübersicht").Range("B10")
TextBox408 = Sheets("Tabellenübersicht").Range("B11")
TextBox409 = Sheets("Tabellenübersicht").Range("B12")
TextBox410 = Sheets("Tabellenübersicht").Range("B13")
TextBox411 = Sheets("Tabellenübersicht").Range("B14")
TextBox412 = Sheets("Tabellenübersicht").Range("B15")
TextBox413 = Sheets("Tabellenübersicht").Range("B16")
TextBox414 = Sheets("Tabellenübersicht").Range("B17")
TextBox415 = Sheets("Tabellenübersicht").Range("B18")
TextBox416 = Sheets("Tabellenübersicht").Range("B19")
TextBox417 = Sheets("Tabellenübersicht").Range("B20")
TextBox418 = Sheets("Tabellenübersicht").Range("B21")
TextBox419 = Sheets("Tabellenübersicht").Range("B22")
TextBox420 = Sheets("Tabellenübersicht").Range("B23")
'Textbox1 bis Textbox16 und Textbox17 bis Textbox32 usw immer "Tabellenübersícht" A3:A18 --  _
geht bis Textbox336 (immer in 16ner-Schritten)
TextBox1 = Sheets("Tabellenübersicht").Range("A3")
TextBox2 = Sheets("Tabellenübersicht").Range("A4")
TextBox3 = Sheets("Tabellenübersicht").Range("A5")
TextBox4 = Sheets("Tabellenübersicht").Range("A6")
TextBox5 = Sheets("Tabellenübersicht").Range("A7")
TextBox6 = Sheets("Tabellenübersicht").Range("A8")
TextBox7 = Sheets("Tabellenübersicht").Range("A9")
TextBox8 = Sheets("Tabellenübersicht").Range("A10")
TextBox9 = Sheets("Tabellenübersicht").Range("A11")
TextBox10 = Sheets("Tabellenübersicht").Range("A12")
TextBox11 = Sheets("Tabellenübersicht").Range("A13")
TextBox12 = Sheets("Tabellenübersicht").Range("A14")
TextBox13 = Sheets("Tabellenübersicht").Range("A15")
TextBox14 = Sheets("Tabellenübersicht").Range("A16")
TextBox15 = Sheets("Tabellenübersicht").Range("A17")
TextBox16 = Sheets("Tabellenübersicht").Range("A18")
TextBox17 = Sheets("Tabellenübersicht").Range("A3")
TextBox18 = Sheets("Tabellenübersicht").Range("A4")
TextBox19 = Sheets("Tabellenübersicht").Range("A5")
TextBox20 = Sheets("Tabellenübersicht").Range("A6")
TextBox21 = Sheets("Tabellenübersicht").Range("A7")
TextBox22 = Sheets("Tabellenübersicht").Range("A8")
TextBox23 = Sheets("Tabellenübersicht").Range("A9")
TextBox24 = Sheets("Tabellenübersicht").Range("A10")
TextBox25 = Sheets("Tabellenübersicht").Range("A11")
TextBox26 = Sheets("Tabellenübersicht").Range("A12")
TextBox27 = Sheets("Tabellenübersicht").Range("A13")
TextBox28 = Sheets("Tabellenübersicht").Range("A14")
TextBox29 = Sheets("Tabellenübersicht").Range("A15")
TextBox30 = Sheets("Tabellenübersicht").Range("A16")
TextBox31 = Sheets("Tabellenübersicht").Range("A17")
TextBox32 = Sheets("Tabellenübersicht").Range("A18")
End Sub

Kann mir bitte Jemand diesen Code kürzen, wenn es nicht zuviel Aufwand ist?
Danke fürs lesen und die Hilfe!
mfg, Andreas

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

Betreff
Datum
Anwender
Anzeige
AW: Code kürzen
11.07.2014 16:29:35
herbert
Hallo Andreas,
z.B. so:
Private Sub UserForm_Initialize()
Dim iUF1%, iUF2%, iRng%, iCount%, sTextBox$
iUF1 = 400
iUF2 = 420
iRng = 3
For iCount = iUF1 To iUF2
Controls("TextBox" & iCount).Value = Sheets("Tabellenübersicht").Range("B" & iRng).Value
iRng = iRng + 1
Next
End Sub

Die anderen müsstest Du entsprechend anpassen. Wenn Du nicht zurecht kommst, melde Dich!
Servus

AW: Code kürzen
11.07.2014 16:51:41
Andreas
Hallo Herbert,
Danke für die Hilfe! Wenn ich deinen Code auf den ersten Textbox - Block anwende funktionierts super.
Ich habe jetzt mal versucht weiter zu machen. Klappt aber nicht. Verstehe nicht viel von VBA.
Kannst du mir noch mal weiterhelfen?
Private Sub UserForm_Initialize()
Dim iUF1%, iUF2%, iUF3%, iUF4%, iRng%, iCount%, sTextBox$
iUF1 = 400
iUF2 = 420
iUF3 = 1
iUF4 = 16
iRng = 3
For iCount = iUF1 To iUF2
Controls("TextBox" & iCount).Value = Sheets("Tabellenübersicht").Range("B" & iRng).Value
iRng = iRng + 1
Next
For iCount = iUF3 To iUF4
Controls("TextBox" & iCount).Value = Sheets("Tabellenübersicht").Range("A" & iRng).Value
iRng = iRng + 1
Next
End Sub
Danke!
mfg, Andreas

Anzeige
AW: Code kürzen
11.07.2014 17:03:57
Arthur
Hallo Andreas.
iRng wir nur vor der ersten Schleife auf 3 gesetzt. Das muss vor der zweiten wiederholt werden, weil der Zähler ja weitergelaufen ist.
Gruß, Arthur

AW: Code kürzen
11.07.2014 17:14:09
herbert
Hallo Andreas,
so müsste das klappen:
Private Sub UserForm_Initialize()
Dim iUF1%, iUF2%, iRng%, iCount%, sTextBox$
iUF1 = 400
iUF2 = 420
iRng = 3
For iCount = iUF1 To iUF2
Controls("TextBox" & iCount).Value = Sheets("Tabellenübersicht").Range("B" & iRng).Value
iRng = iRng + 1
Next
iUF1 = 1
iUF2 = 16
iRng = 3
For iCount = iUF1 To iUF2
Controls("TextBox" & iCount).Value = Sheets("Tabellenübersicht").Range("A" & iRng).Value
iRng = iRng + 1
Next
iUF1 = 17
iUF2 = 32
iRng = 3
For iCount = iUF1 To iUF2
Controls("TextBox" & iCount).Value = Sheets("Tabellenübersicht").Range("A" & iRng).Value
iRng = iRng + 1
Next
End Sub
Servus

Anzeige
AW: Code kürzen
11.07.2014 17:22:13
Andreas
Hallo Herbert,
Hier werden auch nur die Textboxen 400 bis 420 und 1 bis 16 gefüllt, der Rest bleibt leer.
Danke für die Mühe!
mfg, Andreas

AW: Code kürzen
11.07.2014 17:28:07
herbert
Hallo Andreas,
das kann eigentlich nicht sein, da alle Variablen vor dem 3. Durchlauf neu gesetzt werden. Vielleicht stimmen Deine Textboxbezeichnungen in der UF nicht? Prüfe das mal.
Ansonsten lade mal die Datei hoch. Sensible Daten natürlich ersetzen!
Servus

Asche aufs Haupt, funktioniert.
11.07.2014 17:37:15
Andreas
Vielen Dank für die Hilfe,
Sorry, geht natürlich, habe bei diesem riesigen UserForm den Überblick verloren.
Ein schönes Wochenende wünsche ich!
mfg, Andreas

Anzeige
AW: Code kürzen
11.07.2014 17:37:59
herbert
Bei mir hat es einwandfrei geklappt, bei allen dreien!

AW: Code kürzen
11.07.2014 17:18:07
Andreas
Hallo!
Habs jetzt so, jetzt werden die Textboxen 400 bis 420 und 1 bis 16 ordnungsgemäß gefüllt, die Textboxen 17 bis 32 bleiben aber leer.
Was ist noch falsch?
Private Sub UserForm_Initialize()
Dim iUF1%, iUF2%, iUF3%, iUF4%, iUF5%, iUF6%, iRng%, iCount%, sTextBox$
iUF1 = 400
iUF2 = 420
iUF3 = 1
iUF4 = 16
iUF5 = 17
iUF6 = 32
iRng = 3
For iCount = iUF1 To iUF2
Controls("TextBox" & iCount).Value = Sheets("Tabellenübersicht").Range("B" & iRng).Value
iRng = iRng + 1
Next
iRng = 3
For iCount = iUF3 To iUF4
Controls("TextBox" & iCount).Value = Sheets("Tabellenübersicht").Range("A" & iRng).Value
iRng = iRng + 1
Next
iRng = 3
For iCount = iUF5 To iUF6
Controls("TextBox" & iCount).Value = Sheets("Tabellenübersicht").Range("A" & iRng).Value
iRng = iRng + 1
Next
End Sub

mfg, Andreas
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige