1.8k Aufrufe
Gefragt in Tabellenkalkulation von ronny_2010 Einsteiger_in (33 Punkte)
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

5 Antworten

0 Punkte
Beantwortet von Mitglied (253 Punkte)
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.
0 Punkte
Beantwortet von ronny_2010 Einsteiger_in (33 Punkte)
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
0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
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
0 Punkte
Beantwortet von ronny_2010 Einsteiger_in (33 Punkte)
hallo nighty...

erstmal danke fürn tip und mal sehen was ich über select case und deren gebrauch so alles finde.

gruß ronny
0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
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
...