Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
624to628
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
624to628
624to628
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

If Funktion für ComboBox - Code vereinfachen

If Funktion für ComboBox - Code vereinfachen
23.06.2005 01:13:56
Chris
Hallo Gemeinde.
Hab wiedermal ein kleines Rätzel für alle Excel-Tüftler.
In eine Arbeitsmappe sollen Daten in 15 verschiedene Tabellen per UserForm
eingetragen werden. Über eine ComboBox im UserForm legt der Anwender fest, in welche
Tabelle übertragen werden soll. Die Tabellen heißen Part1 bis Part15, die ComboBox
enthält die gleichen Einträge.
Bei click auf ok startet mein code so:
If ComboBox1.Value = "Part1" Then
With Worksheets("Part1")
...usw...
Nun folgen alle Bedingungen für die evtl. Übertragung von "Part1" und erst
dann gehts weiter mit
If ComboBox1.Value = "Part2" Then
With Worksheets("Part2")
...usw...
Das funktioniert zwar prima, erfordert aber einen immens langen Code, da ich die immer gleichbleibenden Übertragungsbedingungen 15mal hintereinander auflisten muß.
Kann man das vielleicht vereinfachen in der Art:
If Not ComboBox1.Value = "" Then
With Worksheet (CoboBox1.Value)
...usw...
Oder gibts noch ne andere Lösung?
Rund-Um-Forums-Grüße
Chris

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: If Funktion für ComboBox - Code vereinfachen
23.06.2005 06:51:41
GraFri
Hallo
Versuch es mal mit: With Worksheets(ComboBox1.Text)
mfg, GraFri
AW: If Funktion für ComboBox - Code vereinfachen
23.06.2005 08:41:55
Ralf
Hi Chris,
Du meinst sicher, einmal die Bedingung formulieren, 15 x durchlaufen lassen.
Dazu eignet sich die For Schleife ganz gut. Versuch mal folgendes:
Dim x as Byte
For x = 1 To 15
If ComboBox1.Value = "Part" & x Then
With Worksheets("Part" & x)
...usw...
Next x
Sollte funktionieren.
Ciao, Ralf
AW: If Funktion für ComboBox - Code vereinfachen
23.06.2005 08:48:18
Xelleron
Hallo Chris,
Select Case wäre auch eine Variante.
z.B.

Private Sub ComboBox1_Change()
Select Case ComboBox1.Text
Case Is = "Tabelle1"
Sheets("Tabelle1").Activate
Case Is = "Tabelle2"
Sheets("Tabelle2").Activate
Case Is = "Tabelle3"
Sheets("Tabelle3").Activate
End Select
End Sub

Gruß Dennis
Anzeige
AW: If Funktion für ComboBox - Code vereinfachen
23.06.2005 15:41:27
Chris
Danke Leute! Da sieht man mal wieder wie unterschiedlich man so ein Problemchen lösen kann. :o)
Prinzipiell läufts mit allen drei Lösungen.
Lösung drei verkürzt den Code schon erheblich, ist aber doch noch ein bisschen umständlich.
Lösung zwei ist Klasse. Aber sie eignet sich besser wenn man z.B. 20 Tabellen hat und
die immer gleichen Daten in den Tabellen in verschiedene Spalten schreiben will.
(z.B. Tabelle 1-10 Spalte 2, Tabelle 11-20 Spalte 3)
Außerdem MÜSSEN die Tabellen hier eine laufende Nummer haben. Wenn die Tabellen
z.B. versch. Ländernamen haben, dann funktioniert das so leider nicht.
Lösung eins ist natürlich mein Favorit. ;o)
Kürzer geht nicht. Ein Blick in die Eigenschaften der ComboBox verrät auch meinen Fehler.
Value liefert einen Wert, in Text stehen die jeweiligen Listen-Einträge.
Sehr sonnige Grüße
Chris
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige