Hallo Janine,
wie man einen Code aufbaut, bleibt jedem selbst überlassen. Grade weil es so viele Möglichkeiten gibt, etwas zu programmieren, entwickelt jeder im Lauf der Zeit seinen ganz eigenen Stil. Im Prinzip musst du dir den Code wie ein Kochrezept vorstellen. Auch beim Kochen führst du diverse Schritte aus und am Ende kommt das gewünschte Gericht dabei raus. Du musst halt nur im Vorfeld genau wissen, was du eigentlich erreichen willst.
Wie geht man am besten vor? Am besten Stück für Stück. Du schreibst einen oder ein paar Befehle, testest diese und wenn sie das machen was sie sollen, schreibst du die nächsten Befehle. Es gibt nur ganz wenige VBA-Eigene Grundbefehle (blau dargestellt) die man im Lauf der Zeit drauf hat. Der allermeiste im Code besteht aus Objekten und deren Eigenschaften und Methoden. Die sind je nach Anwendung und Objekt unterschiedlich. Wenn du z.B. hinter ActiveWorkbook einen Punkt eingibst, erhältst du eine Liste mit Möglichkeiten, wie du mit dem Objekt umgehen kannst. Einfach im Internet nach dem entsprechenden Begriff suchen und du bekommst viele Beispiele.
Variablen kannst du selbst definieren. Den von dir vergebenen Namen sind dabei fast keine Grenzen gesetzt. Sie dürfen nur nicht mit einer Zahl beginnen. In diese Variablen kannst du so ziemlich alles reinschreiben, was du mal zwischendurch ablegen willst, um es dann an Anderer Stelle weiter zu verwenden. Schau dich dazu auch mal im VBA-Tutorial um.
Zum Problem: Wenn du dir meinen Beitrag nochmal durchliest, siehst du, dass ich nicht & Year sondern & Year(Date) geschrieben habe. Date ist in diesem Fall eine Funktion die dir das aktuelle Datum zurückgibt. Mit Year liest du daraus nur das aktuelle Jahr aus. Da du Date nicht mit angegeben hast, kommt es zum Fehler.
Hinter Now gehört natürlich noch das entsprechende Dateikürzel. z.B.: & ".xlsx"
Wie du siehst, kann man mit & fixe Textteile und Inhalte von Variablen zu einem neuen Text (in VBA-Sprache String genannt) verknüpfen.
Pfadangaben macht man überlicherweise nicht mit Slash "/" sondern mit Backslash "\".
Bei der Übernahme von Ralfs Code hast du das abschließende Backslash im Pfad vergessen, wodurch die 2021 kein Unterpfad sondern Teil des Dateinamens geworden ist.
Probiers einfach nochmal.
Gruß Mr. K.
|