Thema Datum  Von Nutzer Rating
Antwort
Rot Makro zum Speichern, wahnsinnig langsam
12.01.2017 08:20:57 Daniel K.
NotSolved
12.01.2017 09:14:26 SJ
NotSolved
12.01.2017 10:23:28 Daniel K.
NotSolved
23.01.2017 07:45:00 Daniel K.
NotSolved

Ansicht des Beitrags:
Von:
Daniel K.
Datum:
12.01.2017 08:20:57
Views:
1062
Rating: Antwort:
  Ja
Thema:
Makro zum Speichern, wahnsinnig langsam

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
 

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:

 
 

  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Makro zum Speichern, wahnsinnig langsam
12.01.2017 08:20:57 Daniel K.
NotSolved
12.01.2017 09:14:26 SJ
NotSolved
12.01.2017 10:23:28 Daniel K.
NotSolved
23.01.2017 07:45:00 Daniel K.
NotSolved