Hallo zusammen,
das unten gezeigte Makro ist mein erster Ausflug in VBA und eigentlich macht es auch nichts Wildes.
Ich habe eine Excel-Datei, in der ich im Blatt "Bestandsabgleich" unseren Warenbestand im lokalen System abgleiche mit dem Bestand des Online-Shops (den ich vorher in das Blatt "Config" eingefügt habe).
Anschließend wird durch verschiedene Formeln der hochzuladende Bestand ermittelt und im Blatt "2017xxheutexx Bestand Upload" festgehalten.
Bisher bin ich wie folgt vorgegangen:
1) Ich habe die Datei zunächst als Excel-Datei (mit Makros) mit heutigem Datum gespeichert (damit ich später im Fall der Fälle noch mal nachvollziehen kann, warum ich was getan habe).
2) Das Tabellenblatt "2017xxheutexx Bestand Upload" habe ich als TXT-Datei gespeichert, damit ich diese anschließend in den Shop hochladen kann.
3) Anschließend habe ich alle ggf. manuell ergänzten Änderungen aus dem Blatt "Bestandsabgleich" sowie den Shop-Bestand aus dem Blatt "Config" gelöscht und die ganze Datei als Excel-Datei (mit Makros) für morgen abgespeichert.
Da das jeden Tag die gleichen Knopfdrücke waren, habe ich ein Makro aufgezeichnet, um diese Punkte zu automatisieren. Das Makro sieht wie folgt aus:
Sub Speichern()
Sheets("Bestandsabgleich").Select
ActiveWorkbook.SaveAs Filename:= _
"J:\Bestand\2017xxheutexx Bestand.xlsm", FileFormat:= _
xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
Sheets("2017xxheutexx Bestand Upload").Select
ActiveWorkbook.SaveAs Filename:= _
"J:\Bestand\2017xxheutexx Bestand Upload.txt", FileFormat:= _
xlText, CreateBackup:=False
Sheets("Bestandsabgleich").Select
Columns("E:E").Select
Selection.ClearContents
Range("E1").Select
ActiveCell.FormulaR1C1 = "Bestand"
Range("E1").Select
Sheets("Config").Select
Columns("A:D").Select
Selection.ClearContents
Range("A1").Select
ActiveWorkbook.SaveAs Filename:= _
"J:\Bestand\2017xxmorgenxx Bestand.xlsm", FileFormat:= _
xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
End Sub
Während die manuelle Bearbeitung der oben genannten drei Schritte allerdings in unter 30 Sekunden durchgeführt werden kann, benötigt das Makro für die gleichen Schritte 10 Minuten 30 Sekunden (habe ich gerade eben gestoppt :)
Meine kleine Recherche hat ergeben, dass das wahrscheinlich damit zusammenhängt, dass viele Zellen in verschiedenen Schritten noch einmal kalkuliert werden (die Excel-Datei ist rund 6,5 MB groß, es ist also einiges da zum Kalkulieren). Allerdings habe ich keine Ahnung, wie ich das unterbinden kann. Denn eigentlich war ja schon alles kalkuliert und soll nur noch gespeichert werden.
Ich wäre für jeden Tipp dankbar! :)
Grüße
Daniel
|