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

mehrfacher Prozeduraufruf

mehrfacher Prozeduraufruf
24.04.2018 16:22:44
Siegfried
Hallo zusammen,
ich habe mehrere Prozeduren, die ich der Reihe nach aufrufen möchte.
Dazu ist mir dies eingefallen:
Sub StufenAufruf()
Dim n1 As Integer
For n1 = 1 To 4
If n1 = 1 Then
Call Stufe1
ElseIf n1 = 2 Then
Call Stufe2
ElseIf n1 = 3 Then
Call Stufe3
Else
Call Stufe4
End If
Next n1
End Sub
Das funktioniert auch, aber mir scheint dass es eine bessere Lösung gibt, insbesondere, wenn ich weit mehr derartige Prozeduren aufrufen möchte.
Wie müßte die andere Lösung aussehen?
Gruß
Siegfried

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: mehrfacher Prozeduraufruf
24.04.2018 16:35:37
mmat
Hi,
diese macht genau das gleiche:
Sub StufenAufruf()
Stufe1
Stufe2
Stufe3
Stufe4
End Sub

AW: mehrfacher Prozeduraufruf
24.04.2018 18:30:05
Siegfried
Hi mmat,
Danke für Deine Hilfe, Dein Code ist auf jeden Fall kürzer und erfüllt den Zweck ebenso.
Gruß
Siegfried
AW: mehrfacher Prozeduraufruf
24.04.2018 16:37:14
Zwenn
Hallo Siegfried,
einfach nur:

Sub StufenAufruf()
Call Stufe1
Call Stufe2
Call Stufe3
Call Stufe4
End Sub
Wenn die aufzurufenden Prozeduren alle sehr ähnlich sind, kannst Du vielleicht auch mit Parametern arbeiten und das Ganze damit optimieren.
Viele Grüße,
Zwenn
Anzeige
AW: mehrfacher Prozeduraufruf
24.04.2018 17:09:37
Siegfried
Hi Zwenn,
Wie denkst Du denn das mit den Parametern?
Meine Codes unterscheiden sich inhaltlich.
Mein Gedanke zum Ablauf ist:
Wenn Stufe1 machbar ist, dann Stufe1 und Schleife verlassen,
wenn Stufe1 nicht machbar ist, dann Stufe2 und Schleife verlassen,
wenn auch die Stufe2 nicht machbar ist, dann die Stufe3 und Schleife verlassen
und wenn auch die Stufe3 nicht machbar ist, dann den Rettungsanker Stufe4.
Gruß
Siegfried
AW: mehrfacher Prozeduraufruf
24.04.2018 17:33:46
Zwenn
Hallo Siegfried,
woher weißt Du denn, ob Stufe 1, 2, 3 oder 4 zum Zuge kommt? Das klingt für mich eher danach Funktionen zu verwenden, die als Rückgabewert vom Typ Boolean "sagen" ob die Stufe erfolgreich abgearbeitet werden konnte oder nicht. Darauf kann der weitere Code dann entsprechend reagieren.
Dafür muss eine Funktion natürlich so aufgebaut sein, dass sie feststellen kann, ob sie das gewünschte Ergebnis liefern kann. Um darüber eine Aussage treffen zu könen, müsstest Du eine Beispielmape mit dem Code hochladen und mal erklären, was eigentlich passieren soll.
Viele Grüße,
Zwenn
Anzeige
AW: mehrfacher Prozeduraufruf
24.04.2018 16:37:35
Mario
Hallo Siegfried,
verstehe zwar deinen Code nicht ganz. Soll da jetzt einfach ein n1 nach dem anderen abgerufen werden oder trifft das if auch mal auf ein Ereignis das zutrifft?
Wenn die Schleife sein muss würde es auch so gehen.
Sub StufenAufruf()
Dim n1 As Integer
For n1 = 1 To 4
call "Stufe" & n1
Next n1
End Sub
mfg
Mario
AW: mehrfacher Prozeduraufruf
24.04.2018 19:42:52
Luschi
Hallo Mario,
eine kleiner Test würde Dir zeigen, daß das so nicht geht, sondern so:

Sub StufenAufruf()
Dim n1 As Integer
For n1 = 1 To 4
Call Application.Run("Stufe" & n1)
Next n1
End Sub
Gruß von Luschi
aus klein-Paris
Anzeige
AW: mehrfacher Prozeduraufruf
25.04.2018 18:55:58
Siegfried
Hi Luschi,
vielen Dank. Das ist so, wie ich es mit vorgestellt habe.
Gruß
Siegfried
AW: mehrfacher Prozeduraufruf
24.04.2018 16:41:20
Peter(silie)
Hallo,
Da du den Subs den gleichen Namen + index gibst,
nehme ich stark an, dass deren Code sich praktisch nicht unterscheidet.
Sollte dem so sein, dann schreib den Code neu.
Code sollte falls möglich nicht dupliziert werden.
Wer sowas macht ist zu faul für einen generischen Ansatz.
Der Name eines Subs sollte genau verraten was er macht.
Bsp:
- Call ConnectToDatabase
- Call GetTableData
- Call CloseDatabaseConnection
- Call DisplayData
Der Name sollte am besten fall verraten, wie wo wann der Sub aufgerufen werden sollte.
Zeige uns mal deinen Code, dann kann mir dir besser helfen.
Beschäftige dich mal mit:
- ByRef und ByVal
- Aufteilen von großen Subs in kleine Subs und Funktionen
- Klassenmodule
- Types
- Enums
Anzeige
AW: mehrfacher Prozeduraufruf
24.04.2018 23:23:54
Barbaraa
Siegfried,
Es ginge vielleicht auch mit Select-Case (zu Deutsch wähle-falls):
Sub StufenAufruf()
Dim n1 As Integer
For n1 = 1 To 12
Select Case n1
Case 1
Call Stufe1
MsgBox "Stufe 1 erledigt"
Case 2, 4, 5
Call Stufe2
MsgBox "Stufe 2 erledigt"
Case 5, 10       ' Zahl ist 5 oder 10
Call Stufe3
MsgBox "Stufe 3 erledigt"
Case Else       ' Alle anderen Zahlen
Call Stufe4
MsgBox "Stufe 4 erledigt"
End Select
Next n1
End Sub
Ist vielleicht leichter lesbar. Dennoch, ich finde nichts schlecht an Deiner Lösung.
Nebenbei gesagt, man könnte vielleicht im ersten Moment meinen, du willst n1 exakt von 1 bis 4 durchlaufen lassen. Ich glaube, Deine For-Next-Schleife ist nur die Test-Anordnung, in Wirklichkeit kommt n1 mit irgendwelchen Werten daher.
LG, B
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige