Jörg: VB-Script und Excel Button

Beitrag lesen

Hi,

das sieht ja nicht schlecht aus, nur ist etwas zuviel enthalten:

InputBox (Propt,"Wie heißt der Traeger?","Name des Trägers" dim Traegername As String

Dass er an dem "Dim" meckert, ist normal. Ich empfehle Dir, Dich auch mal mit der Hilfe zu beschäftigen: Klicke in das Wort "Dim" und drücke dann F1. Dann siehst Du auch, wozu es da ist und wo es stehen muss.

Der Rest vor dem "Dim" ist wahrscheinlich noch ein Überbleibsel von Deinen vorherigen Versuchen - das kann restlos weg, denn die Inputbox kommt ja hier:

Traegername = InputBox("Wie heißt der Traeger?")

Das ist richtig, wenn es auch etwas mehr sein könnte. Schreibe mal die Zeile bis zur Klammer auf:

Traegername = InputBox(

Dann erscheint automatisch ein kleiner Tooltipp, was in den Klammern geschrieben werden kann (durch Komma getrennt). Aber, wie geschrieben, es geht auch so, wie Du es jetzt hast.

Hier ist wieder etwas zuviel:

ThisWorkbook.Worksheets("Haupt").Copy Position Worksheets("Sheet1").Copy After:=Worksheets("Sheet3")

Die Syntax lautet:

Objekt.Copy After:=Objekt

Das "Copy" kommt bei Dir zweifach vor, das Wort "Position" ist überflüssig, weil es mit "After:=" ja schon ausgedrückt wird. Und dann solltest Du Dich festlegen, was kopiert werden soll: "Haupt" oder "Sheet1"?

ThisWorkbook.Worksheets("copy of Haupt").name = Traegername

Das ist richtig (wenn der Name "copy of Haupt" stimmt), aber ich würde das etwas einfacher machen, als es Rouven vorgeschlagen hat. Wenn das Blatt kopiert ist, ist es automatisch das aktive Blatt. Deswegen muss man da nicht den Namen der Kopie eintragen, sondern es geht auch:

ActiveSheet.Name = Traegername

Also: Du brauchst nur ein paar Sachen zu löschen und eventuell die letzte Zeile zu korrigieren - dann funktioniert es auch. Aber sieh Dir auch mal die Hilfe an (Cursor in das Wort und F1), da sind auch ein paar schöne Beispiele enthalten. In VBA finde ich die Hilfe ausnahmsweise mal wirklich gut gemacht.

Viele Grüße
Jörg