Endlose if then else in VBA
Hallo Leute....
wieder mal hab ich eine Frage betreffend meiner Excel-Arbeitsmappe.
Das Arbeitsblatt Namens Liste enthält 18 Spalten in denen Verschiedene Kategorien eingetragen sind, wobei in jeder Kategorie ca. 10-30 weitere Einträge stehen.
In einem weiteren Arbeitsblatt befinden sich 3 ComboBoxen, die sich auf die Kategorien der "Liste" beziehen und diese zur Auswahl anbieten.
Nach betreffender Auswahl mittels Combos werden die ausgewählten Daten nach dem Klick des Command-Buttons in einen weiteren Arbeitsblatt entsprechend eingetragen bzw. sortiert.
Mein momentanes VBA-Wissen hat diese Sortiererei anhand endloser if-then-elseif schleifen gemeistert.
Beispiel:
If ComboBox1.Value = Worksheets("Liste").Range("D1") Then
Worksheets("Abrechnung").Cells(lastrow, 4).Value = ComboBox1.Value
ElseIf ComboBox1.Value = Worksheets("Liste").Range("E1") Then
Worksheets("Abrechnung").Cells(lastrow, 6).Value = ComboBox1.Value
usw......usw.
End If
Meine Frage:
Weiß villeicht jemand wie man hier einen Intelligenteren Code einsetzen kann, weil
das ist echt mühsam wenn ich die 18 verschiedene Einträge einzeln abfragen muss.
Thanks im voraus....
Gruß ronny
Antwort schreiben
Antwort 1 von Constan vom 04.07.2022, 23:14 Options
Kannst du mal ein Beispiel deiner Liste posten?
Die Liste hört sich für mich schon nach ein wenig Chaos an. Denke das auch das das Kernproblem liegt.
Antwort 2 von ronny_2010 vom 06.07.2022, 19:59 Options
Hallo Constan,
also in meiner sogenannten "Liste" befinden sich in den Zellen A1 bis R1 Einträge. Unter jedem dieser Einträge oder auch Kategorien genannt, gibt es weitere Daten die sich eben auf diese Einträge von A1 bis R1 beziehen.
Diese Liste könnte auch als Datenblatt benannt werden und die Namensgebung der Arbeitsblätter ist eigentlich nicht mein Problem.
Was ich noch sagen möchte ist das es mit dieser if-then-elseif Lösung bereits funktioniert, leider ist der Zeitaufwand beim
Code-Tippen enorm.
Gruß ronny
Antwort 3 von nighty vom 07.07.2022, 09:38 Options
hi ronny :-)
select case wie eine for next schleife sollte hier mehr ueberblick wie eine codeverkuerzung bewirken,diese if then else konstruktionen verlangsamen auch enorm die laufzeit.
die erste wahl sollte select case sein,zur zweiten wahl lieber verschachtlungen einer if then structur
gruss nighty
Antwort 4 von ronny_2010 vom 07.07.2022, 15:05 Options
hallo nighty...
erstmal danke fürn tip und mal sehen was ich über select case und deren gebrauch so alles finde.
gruß ronny
Antwort 5 von nighty vom 08.07.2022, 08:14 Options
hi ronny :-)
wenn du möchtest,könnte ich ja mal schauen ob ich deinen code optimieren koennte
ich schick dir meine emailadresse
gruss nighty