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
oder
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
End Select
End Sub
Public Sub sub_1( Optional dummy As Long )
MsgBox "sub_1" & vbLf & "Inhalt von D6: " & vbTab & Worksheets( "Strukturdaten" ).Range( "D6" ).Value
End Sub
Public Sub sub_2( Optional dummy As Long )
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
|