Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema Userform
BildScreenshot zu Userform Userform-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema TextBox
BildScreenshot zu TextBox TextBox-Seite mit Beispielarbeitsmappe aufrufen

VBA geht der Code zu kürzen

Betrifft: VBA geht der Code zu kürzen von: Tim
Geschrieben am: 10.09.2020 08:46:49

Hallo VBA/Excel Gemeinde ich möchte mir den Aufwand etwas erleichtern, kann man den Code auf eine Zeile kürzen.

Danke für eure Zeit

Grüße Tim



Sheets("Tabelle1").Cells(23, 1054) = TextBox43.Value 'schreiben

Sheets("Tabelle1").Cells(24, 1054) = TextBox44.Value 'schreiben

Sheets("Tabelle1").Cells(25, 1054) = TextBox45.Value 'schreiben

Sheets("Tabelle1").Cells(26, 1054) = TextBox46.Value 'schreiben

Sheets("Tabelle1").Cells(27, 1054) = TextBox47.Value 'schreiben

Sheets("Tabelle1").Cells(28, 1054) = TextBox48.Value 'schreiben

Sheets("Tabelle1").Cells(29, 1054) = TextBox49.Value 'schreiben

Sheets("Tabelle1").Cells(30, 1054) = TextBox50.Value 'schreiben

Betrifft: AW: VBA geht der Code zu kürzen
von: Nepumuk
Geschrieben am: 10.09.2020 08:58:38

Hallo Tim,

teste mal:

Worksheets("Tabelle1").Cells(23, 1054).Resize(8, 1).Value = Application.Transpose( _
    Array(TextBox43.Text, TextBox44.Text, TextBox45.Text, TextBox46.Text, _
    TextBox47.Text, TextBox48.Text, TextBox49.Text, TextBox50.Text))

Gruß
Nepumuk

Betrifft: AW: VBA geht der Code zu kürzen
von: Tim
Geschrieben am: 10.09.2020 09:28:25

Hallo Nepumuk,
Danke dir so geht es, habe jetzt etwas weniger zum schreiben. Da stellt sich bei mir auch gleich die nächste Frage, geht das auch beim lesen der Textboxen.Weil das habe ich nach dem selben Prinzip gemacht.
Grüße Tim

Betrifft: AW: VBA geht der Code zu kürzen
von: Tim
Geschrieben am: 10.09.2020 09:52:16

hier mal das was ich verwendet habe
Grüße Tim

Me.TextBox49.Value = Range("ANO23") 'lesen
Me.TextBox50.Value = Range("ANO24") 'lesen
Me.TextBox51.Value = Range("ANO25") 'lesen
Me.TextBox52.Value = Range("ANO26") 'lesen
Me.TextBox53.Value = Range("ANO27") 'lesen
Me.TextBox54.Value = Range("ANO28") 'lesen
Me.TextBox55.Value = Range("ANO29") 'lesen
Me.TextBox56.Value = Range("ANO30") 'lesen

Betrifft: AW: VBA geht der Code zu kürzen
von: Nepumuk
Geschrieben am: 10.09.2020 10:07:06

Hallo Tim,

das geht nur mit einer Schleife:

Dim lngIndex As Long
With Worksheets("Tabelle1")
    For lngIndex = 23 To 30
        Controls("TextBox" & CStr(lngIndex + 26)).Text = .Cells(lngIndex, 1055).Text
    Next
End With

Gruß
Nepumuk

Betrifft: AW: VBA geht der Code zu kürzen
von: Tim
Geschrieben am: 10.09.2020 10:32:54

Hallo Nepumuk, ich muss mich wohl doch mal an die Schleifen rantrauen um das ganze etwas zu kürzen. Das mit den Schleifen werde ich dann heute Abend nach der Arbeit mal ausprobieren.Ich danke euch beiden für die schnelle und freundliche Hilfe.

Grüße Tim

Betrifft: AW: VBA geht der Code zu kürzen
von: Daniel
Geschrieben am: 10.09.2020 09:56:59

HI
wenn du die TextBoxen fest mit den Zellen verknüpfen willst, ist es am einfachsten wenn du die Adresse der Zielzelle (inkl Tabellenblattnamen) in die Eigenschaft LinkedCell / ControlSource schreibst.
dann musst du nichts programmieren und die Verknüpfung ist bidirektional.

sollten die TextBoxen Teil einer Userform sein und die TextBoxen eine Nummerierung haben die parallel zu den zu verknüpfenden Zellen verläuft, wäre auch eine Schleife denkbar:
for x = 0 to 7 'Anzahl -1
    Sheets("Tabelle1").Cells(23 + x, 1054).value = Userform1.Controls("TextBox" & 43 + x).Text
Next
Gruß Daniel

Betrifft: AW: VBA geht der Code zu kürzen
von: Tim
Geschrieben am: 10.09.2020 10:23:25

Hallo Daniel ich danke dir auch für deine Mühe, mit Schleifen stehe ich in VBA noch nicht so ganz im grünen. VBA Kenntnisse bescheiden. Ich werde das aber mal heute Abend auch mal austesten und probieren. Bei deiner Antwort ist mir aufgefallen das ich zu wenig Infos gegeben habe. Die Werte werden aus einer Userform gelesen und geschrieben.Danke nochmal an euch beide,tolles Forum

Beiträge aus dem Excel-Forum zum Thema "VBA geht der Code zu kürzen"