Autor
|
Thema: Excelmakro nach Export automatisch ausführen (funktioniert nicht korrekt) (3128 mal gelesen)
|
Dekurie Mitglied
Beiträge: 25 Registriert: 20.10.2009
|
erstellt am: 09. Feb. 2011 12:44 <-- editieren / zitieren --> Unities abgeben:
Hallo Zusammen! Ich habe ein kleines Problem mit einem Excelmakro, das automatisch ausgeführt werden soll und hoffe, dass Ihr mir weiterhelfen könnt. Ich hatte gestern diese Frage schonmal im EPLAN-Forum gestellt und man meinte, Ihr könntet mir hier besser helfen. Zur Funktionsweise: Aus dem Programm EPLAN lasse ich mir Daten nach Excel exportieren. Dafür habe ich eine Vorlage als XLS-Datei erstellt, in der sich die Platzhalter in den Zellen befinden, in die die Daten hineingeschrieben werden sollen, sowie das Excelmakro, was beim Öffnen der Datei ausgeführt werden soll. Das Beispiel sieht folgender Maßen aus: in Spalte A wird ab Zeile 17 eine Fortlaufende Nummer ausgegeben, in Spalte I ein zugehöriger Wert. Dieser Wert kann eine beliebige Zeichenfolge annehmen oder einfach garnicht vorhanden sein. Das Makro "verschieben" hat nun den Sinn, gleiche Werte in gleiche Spalten einzusortieren und funktioniert auch sehr gut, wenn man es händisch startet. Es soll jedoch beim ersten Öffnen der Mappe automatisch ausgeführt werden und dort treten Probleme auf. Im Anhang findet Ihr die Datei, wie ich sie nach dem Export vorfinde. Öffne ich diese Datei, werden alle Daten von Spalte I in Spalte J verschoben. Schiebe ich die Daten zurück in Spalte I und starte das Makro händisch, dann werden die Daten auch wirklich in 3 unterschiedliche Spalten verschoben. Zumindest das zeigt mir, dass das Makro an sich funktioniert. Wenn ich die Daten einfach nur von Spalte J nach I zurückschiebe, die Datei speichere, schließe und wieder neu öffne, dann funktioniert es auch wie es soll. Woran kann es liegen, dass das beim ersten Start nicht klappt? Ich verwende Excel 2010 auf WinXP. Ich hoffe, Ihr könnt mir weiterhelfen. Danke schonmal. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Thomas Harmening Moderator Arbeiter ツ
Beiträge: 2897 Registriert: 06.07.2001 Das Innerste geäussert und aufs Äusserste verinnerlicht
|
erstellt am: 09. Feb. 2011 12:51 <-- editieren / zitieren --> Unities abgeben: Nur für Dekurie
|
Dekurie Mitglied
Beiträge: 25 Registriert: 20.10.2009
|
erstellt am: 09. Feb. 2011 14:35 <-- editieren / zitieren --> Unities abgeben:
Worksheet_activate habe ich auch schon probiert. Das erzeugt den gleichen Effekt. Ordnet der bei Dir tatsächlich alle unterschiedlichen Daten in unterschiedliche Spalten, ohne dass Du das Dokument zwischengespeichert oder das Makro händisch gestartet hast? Wie kann das denn sein? Liegt das eventuell an der Excelversion oder den Einstellungen in Excel? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice
|
erstellt am: 09. Feb. 2011 16:58 <-- editieren / zitieren --> Unities abgeben: Nur für Dekurie
|
Dekurie Mitglied
Beiträge: 25 Registriert: 20.10.2009
|
erstellt am: 10. Feb. 2011 07:49 <-- editieren / zitieren --> Unities abgeben:
Tippst Du auf etwas bestimmtes? Ich kann mit den meisten Punkten nichts anfangen, habe jedoch bei "Einstellungen für Makros" den Punkt "Alle Makros aktivieren" angeklickt sowie "Zugriff auf das VBA-Projektobjektmodell vertrauen". Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice
|
erstellt am: 10. Feb. 2011 13:50 <-- editieren / zitieren --> Unities abgeben: Nur für Dekurie
Hallo, Au weia - würde ich nicht machen. Makros - selbst "signierte" - können schädlichen Code enthalten, z. B. "Putz-mir-die-Platte-vollständig" . Meine persönliche Einstellung ist: Deaktivieren, aber Hinweis anzeigen - siehe Anhang. Ich habe folgendes getestet: Einmal mit deaktivierten Makros - und einmal mit aktivierten Makros. Aufgrund Deiner Sicherheitseinstellungen siehst Du vielleicht gar nicht, dass das Makro ausgeführt wird (wurde) nach dem Öffnen? Ein "Rückgängig" gibt es hier ja nicht... Ändere mal Deine Sicherheitseinstellungen und teste..? ------------------ DIN1055.de | Lastannahmen für Anwender Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dekurie Mitglied
Beiträge: 25 Registriert: 20.10.2009
|
erstellt am: 10. Feb. 2011 14:20 <-- editieren / zitieren --> Unities abgeben:
Doch, ich weiß ziemlich genau, dass das Makro ausgeführt wird, da in Zeile 48, Spalte I die Zahl 47 steht. Diese Zahl wird im Makro ermittelt und dort hineingeschrieben. Ich hab im Anhang nochmal 3 XLS-Datein. Die erste zeigt, wie die Datei nach dem Export aussieht. Die zweite zeigt das Ergebnis, wenn das Makro beim erstmaligen öffnen ausgeführt wird. Die dritte zeigt, wie genau die gleiche Datei aussieht, wenn das Makro händisch ausgeführt wird, oder ich Datei 2 wieder in den ursprungszustand versetze (verschieben von Spalte J nach I, speichere, die Datei schließe und neue öffne. Zur Veranschaulichung hab ich das Makro jetzt in diesen Dateien rausgenommen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
arossbach Mitglied Ingenieur Masch.bau
Beiträge: 1181 Registriert: 13.06.2001 Wildfire 3 M230 PDMLink 9.1 simufact.forming 10.1.1 Windows XP Professional 2002 Service Pack 2 Dell Precision WorkStation 390 3,25 GB RAM Grafik: Quadro FX 3500
|
erstellt am: 10. Feb. 2011 15:16 <-- editieren / zitieren --> Unities abgeben: Nur für Dekurie
|
Dekurie Mitglied
Beiträge: 25 Registriert: 20.10.2009
|
erstellt am: 17. Feb. 2011 14:14 <-- editieren / zitieren --> Unities abgeben:
|
MWN Mitglied Dipl.-Ing.
Beiträge: 492 Registriert: 14.02.2007
|
erstellt am: 17. Feb. 2011 15:14 <-- editieren / zitieren --> Unities abgeben: Nur für Dekurie
Hi Leute, ich bin jetzt einfach mal hier in das Thema eingestiegen, ohne jedoch jede einzelne Mappe zu öffnen. Wenn ich jedoch so mitlese, dann scheint mir, als ob es ein zeitliches Problem in deiner Mappe zwischen dem Öffnen und dem Datenimport gibt. Ich denke, dass das Makro einfach zu zeitig ausgeführt wird, bzw. parallel zum Datenimport aus EPLAN und zu dem Zeitpunkt seiner Ausführung noch nicht alle Daten zur Sortierung zur Verfügung stehen. Daher auch das Resultat, dass wenn du die Daten händisch verschiebst, bzw. deine Mappe neu öffnest, das Makro so funktioniert, wie es soll. Ich würde mir eine Logik überlegen, die das Makro erst dann startet, wenn alle Daten definitiv übertragen worden sind. Vielleicht kannst du es durch das Schreiben eines Wertes in eine spezielle Zelle handhaben, die wiederum ein eigenes Event auslöst und dadurch das Makro triggert. Grüße und HTH Tobias ------------------ Besucht mich doch mal in meiner Tischlerei "...Kommunikation ist nur so gut wie ihr Ergebnis..." - frei nach Richard Bandler / John Grinder "...Wenn du das tust, was du schon immer tust, wirst du auch nur das erhalten, was du schon immer erhalten hast..." Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dekurie Mitglied
Beiträge: 25 Registriert: 20.10.2009
|
erstellt am: 18. Feb. 2011 08:12 <-- editieren / zitieren --> Unities abgeben:
Den Gedanken hatte ich auch schon und habe es bereits auf unterschiedliche Weise probiert - leider ohne Erfolg. Ich habe auch bereits bei EPLAN angefragt, wie der Excelexport genau abläuft - also in welcher Reihenfolge die Daten geschrieben, bzw. die Zeilen dupliziert werden, jedoch mach ich mir da keine großen Hoffnungen, denn ich hab irgendwie das Gefühl, dass man mir da nicht so recht helfen kann oder will. Das wurde jetzt in die Entwicklungsabteilung weitergegeben, aber ob ich da jemals eine Antwort bekomme, ist irgendwie ungewiss. Meine Vermutung ist übrigens auch, dass das Makro bereits beim Export ausgeführt wird, das würde auch erklären, warum alle Werte in Spalte J stehen, denn zu diesem Zeitpunkt befinden sich ja nur ### darin -> Makro funktioniert also Wie ich jetzt weitermachen soll, weiß ich auch noch nicht, mittlerweile hat die Sache schon ganz schön viel Zeit verschlungen, und Zeit kostet ja bekanntlich Geld. Übrigens (wen es interessiert): Ziel dieses Kopfstandes ist eine automatische Trafoberechnung, die die Sicherungen dimmensioniert und die Mindestgröße des Steuertrafos ausgibt. Das Ergebnis ist dann also ein sauberer Nachweis über die Dimmensionierung der im Schrank montierten Steuertrafos. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
MWN Mitglied Dipl.-Ing.
Beiträge: 492 Registriert: 14.02.2007
|
erstellt am: 18. Feb. 2011 09:46 <-- editieren / zitieren --> Unities abgeben: Nur für Dekurie
Puh, bin ich froh, dass ich es nur mit Spanplatten zu tun habe... Wie schon oben geschrieben, vielleicht schaffst du es, auf eine "Steuerzelle" zu reagieren, die ihren Wert als letztes erhält, bzw. erst dann eine Aktion, mit z.B. bedingter Formatierung o.ä., auslöst, wenn deine Datenübertragung beendet ist, und alle Daten in Excel sind. Vielleicht ist es dir auch möglich, deinen Datenexport im EPLAN auf ein Makro zu legen, was dann von Außen dein Excel (Makro) triggert (muss eben der entsprechende Verweis eingebunden werden), wenn von Seiten des EPLAN die Übertragung abgeschlossen ist. Ich weiß auch nicht, inwieweit man beim EPLAN solche Sachen automatisieren kann. Ich kann nur von SolidWorks ausgehen und dort ist es möglich. Grüße Tobias ------------------ Besucht mich doch mal in meiner Tischlerei "...Kommunikation ist nur so gut wie ihr Ergebnis..." - frei nach Richard Bandler / John Grinder "...Wenn du das tust, was du schon immer tust, wirst du auch nur das erhalten, was du schon immer erhalten hast..." Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice
|
erstellt am: 18. Feb. 2011 09:57 <-- editieren / zitieren --> Unities abgeben: Nur für Dekurie
|
Dekurie Mitglied
Beiträge: 25 Registriert: 20.10.2009
|
erstellt am: 18. Feb. 2011 15:09 <-- editieren / zitieren --> Unities abgeben:
äußerst schmutzig ^^hab ich übrigens auch schon probiert. Das Ergebnis: Excel wartet auch damit, die Exportierten Daten zu übernehmen. Eine Endlosschleife, die die ### zählt und erst weiter macht, wenn alle weg sind, schießt Excel komplett ab. Ich werde mal noch ne Fußnote probieren. Davon erwarte ich mir zwar nicht viel, aber das ist das einzige, was mir jetzt noch einfällt. Aber das wird dann erst Montag, jetzt ist Wochenende Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|