VBA-Script in Excel automatisert importieren?
Hallo,
mein momentanes Vorhaben:
Ich habe eine Masterliste und daraus möchte ich gern mittels VBA durch Zeilen markieren neue Teillisten exportieren bzw später auch wieder importieren können.
Problem hierbei ist, die Masterliste wird von einem anderem Service generiert. Der Service erzeugt .xlsx Dateien als ohne Makro. Bis das System, Dateien mit Makros erzeugen kann würde ich gerne eine Übergangslösung basteln. Vor allem weil ich das Projekt leite und bis zu meinem Praktikumsende nur noch ein paar Wochen sind.
Meine Frage: Ist es möglich mit Python o.ä. die Makro-Skripte in eine .xlsx Datei zu packen und diese Tabellen dann als .xlsm zu speichern? Vorallem geht es um eine Modul Skript und ein DiesesArbeitsblatt-Skript, welches beim Start ausgeführt wird. Kenne mich selber nicht so super gut in VBA aus.
Ideal wäre es, wenn es komplett automatisiert läuft, also der Kollege öffnet eine dieser Listen dann wird, diese Liste automatisiert mit dem Makro versehen. Ich schätze das ist performancelastig,da permament geprüft werden muss ob eben eine Liste geöffnet wurde, deswegen würde auch eine manuelle Lösung reichen. Quasi ich wähle die Liste starte ein kleines Programm und bekomme die Liste mit dem Makros zurück.
Ist dies möglich? Mein großes Problem ist, das ich nicht weiß wie ich diese VBS-Skripte in die Liste importiere, so das dies erkannt wird.
Wäre super wenn da jemand was weiß.
mfg werdas34
2 Antworten
Euer Service sollte keine xlsx erzeugen sondern XML oder ein anderes Format mit dem man auch ohne VB(A) alles mögliche machen kann.
Wenn irgendwann später zu Visualisierung der Daten doch noch Excel ins Spiel kommt kann auch dies mit XML umgehen.
Grundsätzlich ist es möglich Makro Code automatisiert erzeugen zu lassen und in einer Datei unterzubringen. Ist aber nicht der leichteste Weg für eure Zwecke.
Woher weiß der Mensch was zu markieren ist. Dieser Kriterium ist ggf ebenfalls automatisierbar so dass mit "Regular Expressions" oder anderen MikroSoft Excel unabhängige Lösungen möglich sind.
Wenn es doch VBA sein soll, so kann eine Weitere Datei als Tool dienen, die die generierten xlsx einliest und dann der Vorgang Selektieren und Exportieren aus dieser Tool Datei heraus erfolgt. Somit wären Daten und Tool getrennt, was ebenfalls zu empfehlen ist.
du kannst doch die makros in dein Excel global packen .
Interesanter Ansatz. Dann müsste man nur noch die Dateien automatisch in .xlsm konvertieren, was sicher kein Problem wäre.
Sorry, habe wie oben schon erwähnt bin ich kein Experte in VBA und erst recht nicht wenns um Globale Makros geht.
Verstehe ich dich richtig: Ich mache meine Makros global(wie auch immer das funktioniert). Dann sind diese Makros direkt in Excel drin? Und jede weitere Excel Datei, die geöffnet wird übernimmt die globalen Makros? Zwei Fragen noch an dich: 1) Was passiert wenn ich eine .xlsx Datei öffne, die die Makros gar nicht braucht? Sind sie trotzdem geladen? Könnte man diese theoretisch ausführen? Kann man das irgendwie einstellen, welche Dateien mit den Makors beladen werden dürfetn und welche nicht? 2) Kannst du mir einen Link zu nen Video/Webseite schicken, welches genau das von dir angesprochene Thema beinhaltet?
ja die macros wären dann wohl generell verfügbar , ausser du hast eine möglichkeit da was abzufragen was das arbeitsblatt angeht
.
https://www.computerwissen.de/office/excel/artikel/excel-makros-in-allen-arbeitmappen-verfuegbar-machen.html
frag mich jetzt nicht ob das office versionsabhängig ist .
Danke für den Link. In dieser Liste sind die ersten 5 Zeilen standardisiert, da könnte man bestimmt eine Abfrage machen. Jedenfalls vielen Dank.
Nehmen wir mal theoretisch an, es wäre in XML oder in JSON-Format. Jetzt soll der Logistiker aus der Stückliste eine Liste kreieren, damit der Lieferant seine Bestelllsite bekommt. Wie würdest du das machen, damit der Logistiker ganz bequem markieren kann welche Einträge in die neue Liste gehören?
Denn bei VBA wäre es so gewesen, der Logistiker kann einzelne Zeilen markieren und drückt dann auf einen Button Export. Dieser hätte eine Liste mit den markierten Einträge erstellt. Wäre sehr benutzerfreundlich.