Moin Phoeni,
nahezu alles, was Du in XL händisch machst, lässt sich automatisieren. Speichern an verschiedenen Orten ist da eine der leichteren Übungen, an die du Dich sogar als Einsteiger wagen kannst.
Versuche zur Übung mal Folgendes:
- Erstelle eine neue Mappe "Test_Speichern_Zwei_Ordner.xlsm" Der Dateityp ist wichtig.
- Fülle die ersten zwei Zellen mit Strg+. (Punkt) und Strg+:(Doppelpunkt).
- Falls in Deinem Menüband noch keine Entwicklertools zu finden sind gehe über Datei > Optionen > Menüband anpassen zum DropDown Befehle auswählen und füge die Entwicklertools zu Deinem Menüband hinzu.
- Links oben in den Entwicklertools findest Du Makro aufzeichnen > anklicken. Ab jetzt werden alle Aktionen in der Tabelle aufgezeichnet.
- Speichere diese neue Tabelle auf Deinem Desktop.
- Beende die Aufzeichnung. Du wirst nach einem Makronamen und einer Tastenkombination gefragt. Nenn das Ding Test_Speichern_Zwei_Ordner und ordne ihm Strg+t zu.
Damit hast Du eine erste Code-Grundlage geschaffen, auf der Du jetzt Deine Anpassungen vornehmen kannst.
- Öffne mit Alt+F11 den VBA-Editor und im linken oberen Fenster Module > Modul1. Dort findet Du Code, der etwa so aussehen sollte:
Code:
Sub Test_Speichern_Zwei_Ordner()
'
' Test_Speichern_Zwei_Ordner Makro
'
' Tastenkombination: Strg+t
'
ChDir "C:\Users\phoeni\Desktop"
ActiveWorkbook.SaveAs Filename:="C:\Users\hbri\Desktop\Test_Phoeni.xlsm", _
FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
End Sub
Die Zeilen 2-6 sind Kommentare (erkennbar am führenden Hochkomma), die Du einfach löschen kannst. Jetzt besteht Dein Makro noch aus
zwei Befehlen und ihren Argumenten:
ChDir... und
ActiveWorkbook.SaveAs...
Jetzt geht es darum, dieses wortreiche XL-Gebrabbel so einzudampfen, dass es übersichtlich wird und Du es variabel nutzen kannst. Mit
Code:
Dim sFileName As String
sFileName = Cells(1, 3)
in Zeile 2 und 3 des Makros definierst Du die Variable
sFilename und füllst sie mit dem Inhalt der Zelle Zeile 1/Spalte 3 (=C3).
- Die Zeile ChDir kannst Du löschen, sie wird nicht mehr gebraucht. Das Zielverzeichnis gibst Du in der Variablen mit.
- Auch die Argumente im ActiveWorkbook.SaveAs kannst Du auf Filename:= reduzieren und durch die Variable sFileName füllen
Jetzt sollte Dein Makro so aussehen:
Code:
Sub Test_Speichern_Zwei_Ordner()
Dim sFileName As String
sFileName = Cells(1, 3)
ActiveWorkbook.SaveAs Filename:=sFileName
End Sub
Um in den zweiten Ordner zu speichern, lässt Du das Makro den Job einfach ein zweites Mal mit einer neu gefüllten Variable
sFilename tun: Du kopierst die Zeilen 3+4, fügst sie unterhalb ein und änderst den Wert für
sFileName in z.B.
Cells(1,4).
Jetzt müssen in den beiden Zellen nur noch korrekte Pfad- und Dateinamen stehen und Du hast Deine Datei mit STRG+t an zwei Orten gespeichert.
Um das Ganze wirklich universell und fehlersicher zu schreiben, fehlen jetzt noch ein paar Kleinigkeiten. Der Makrorecorder zeichnet viel auf, was man nicht braucht. Andere wichtige Details, wie z.B. Bezüge zum Arbeitsblatt, Vermeidung unnötiger Dialoge oder Fehlerbehandlung muss man dann schon selbst einfügen.
Viel Erfolg