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
Case "1"
oder
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:
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
|