Thema Datum  Von Nutzer Rating
Antwort
04.03.2025 14:00:24 Iris
NotSolved
04.03.2025 14:11:43 Gast4026
NotSolved
04.03.2025 15:02:50 Iris
NotSolved
05.03.2025 00:05:21 Gast69569
NotSolved
05.03.2025 08:03:22 Iris
NotSolved
05.03.2025 11:55:00 Gast7777
NotSolved
05.03.2025 12:51:51 Gast55714
NotSolved
06.03.2025 00:05:20 ralf_b
NotSolved
06.03.2025 11:11:41 Iris
NotSolved
06.03.2025 11:29:02 Ulrich
NotSolved
06.03.2025 12:23:25 Iris
NotSolved
06.03.2025 16:51:29 ralf_b
NotSolved
07.03.2025 08:22:07 Iris
NotSolved
07.03.2025 11:04:02 Gast52398
NotSolved
07.03.2025 12:15:29 Iris
NotSolved
07.03.2025 15:47:24 Gast91431
NotSolved
07.03.2025 17:51:31 ralf_b
Solved
Blau Prozedur zu lang; wie aufteilen?
09.03.2025 20:00:50 Ulrich
Solved
10.03.2025 08:02:00 Iris
NotSolved
05.03.2025 03:36:43 Gast7777
NotSolved

Ansicht des Beitrags:
Von:
Ulrich
Datum:
09.03.2025 20:00:50
Views:
25
Rating: Antwort:
 Nein
Thema:
Prozedur zu lang; wie aufteilen?

Hallo Iris,

ich würde zuerst die Logik aufbauen. Damit meine ich die Select-Case-Anweisungen mit noch leeren Subs. In den Subs einfach msgboxes benutzen, damit du weißt was passiert. Damit kannst du dann testen, ob dein Select-Case und das Aufrufen der Subs funktioniert am einfachsten machst du das in nur einem Modul. Hier stellst du auch fest, ob du besser mit

1
Case "1"

oder

1
Case 1

arbeitest.

Erst wenn das stabil für alle möglichen Werte der Zelle D6 funktioniert, dann würde ich anfangen, die Subs mit dem eigentlichen Inhalt zu füllen.

 

Hier ein funktionierender Code zum starten:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
Sub kopieren_beispiel()
    Select Case UCase(Worksheets("Strukturdaten").Range("D6"))
        Case "1"
            Call sub_1
        Case "2"
            Call sub_1
        Case "3"
            Call sub_1
        Case "4"
            Call sub_2
        Case "5"
            Call sub_2
        Case "6"
            Call sub_2
        Case "7"
            Call sub_2
        Case Else
            MsgBox "Select Case ""1"" .. ""7"" hat nicht funktioniert" & vbLf & _
                    "Inhalt von D6: " & vbTab & Worksheets("Strukturdaten").Range("D6").Value, vbCritical
            'Stop
    End Select
End Sub
 
 
Public Sub sub_1(Optional dummy As Long)
    'Parameter dummy    lediglich, damit die sub nicht im Dialogfeld "Makros" als ausführbares
    '                       Makro aufgeführt wird und nicht vom Benutzer aufgerufen werden kann.
     
    MsgBox "sub_1" & vbLf & "Inhalt von D6: " & vbTab & Worksheets("Strukturdaten").Range("D6").Value
End Sub
     
 
Public Sub sub_2(Optional dummy As Long)
    'Parameter dummy    lediglich, damit die sub nicht im Dialogfeld "Makros" als ausführbares
    '                       Makro aufgeführt wird.
     
    MsgBox "sub_2, die andere Sub!" & vbLf & "Inhalt von D6: " & vbTab & Worksheets("Strukturdaten").Range("D6").Value
End Sub

Erster Schritt wäre, den beiden Subs gescheite Namen zu geben. Dann testen. Dann die weiteren Subs ergänzen (Achtung: bei Copy&Paste auch die Inhalte der MsgBoxes verändern), dann wieder testen.... Ein Schritt weiter, testen, ... dann testen, ... dann testen.

 

Einfach als Vorschlag,

Grüße,

Ulrich


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
04.03.2025 14:00:24 Iris
NotSolved
04.03.2025 14:11:43 Gast4026
NotSolved
04.03.2025 15:02:50 Iris
NotSolved
05.03.2025 00:05:21 Gast69569
NotSolved
05.03.2025 08:03:22 Iris
NotSolved
05.03.2025 11:55:00 Gast7777
NotSolved
05.03.2025 12:51:51 Gast55714
NotSolved
06.03.2025 00:05:20 ralf_b
NotSolved
06.03.2025 11:11:41 Iris
NotSolved
06.03.2025 11:29:02 Ulrich
NotSolved
06.03.2025 12:23:25 Iris
NotSolved
06.03.2025 16:51:29 ralf_b
NotSolved
07.03.2025 08:22:07 Iris
NotSolved
07.03.2025 11:04:02 Gast52398
NotSolved
07.03.2025 12:15:29 Iris
NotSolved
07.03.2025 15:47:24 Gast91431
NotSolved
07.03.2025 17:51:31 ralf_b
Solved
Blau Prozedur zu lang; wie aufteilen?
09.03.2025 20:00:50 Ulrich
Solved
10.03.2025 08:02:00 Iris
NotSolved
05.03.2025 03:36:43 Gast7777
NotSolved