Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Excel
  Excelmakro nach Export automatisch ausführen (funktioniert nicht korrekt)

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  Excelmakro nach Export automatisch ausführen (funktioniert nicht korrekt) (3128 mal gelesen)
Dekurie
Mitglied



Sehen Sie sich das Profil von Dekurie an!   Senden Sie eine Private Message an Dekurie  Schreiben Sie einen Gästebucheintrag für Dekurie

Beiträge: 25
Registriert: 20.10.2009

erstellt am: 09. Feb. 2011 12:44    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


verschieben.zip

 
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 ツ




Sehen Sie sich das Profil von Thomas Harmening an!   Senden Sie eine Private Message an Thomas Harmening  Schreiben Sie einen Gästebucheintrag für Thomas Harmening

Beiträge: 2897
Registriert: 06.07.2001

Das Innerste geäussert
und aufs Äusserste verinnerlicht

erstellt am: 09. Feb. 2011 12:51    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Dekurie 10 Unities + Antwort hilfreich

bei mir funktioniert deine Mappe, ansonsten probiere mal
Code:
Private Sub Worksheet_Activate()
Call verschieben
End Sub

Code muss in die Tabelle2

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Dekurie
Mitglied



Sehen Sie sich das Profil von Dekurie an!   Senden Sie eine Private Message an Dekurie  Schreiben Sie einen Gästebucheintrag für Dekurie

Beiträge: 25
Registriert: 20.10.2009

erstellt am: 09. Feb. 2011 14:35    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Sehen Sie sich das Profil von Paulchen an!   Senden Sie eine Private Message an Paulchen  Schreiben Sie einen Gästebucheintrag für Paulchen

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Dekurie 10 Unities + Antwort hilfreich

Hallo Dekurie,

überprüf' mal Deine Sicherheitsoptionen? Seltsam, dass Du es in der Mappe ausführen kannst, beim Start jedoch nicht..?

------------------
DIN1055.de  |  Lastannahmen für Anwender

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Dekurie
Mitglied



Sehen Sie sich das Profil von Dekurie an!   Senden Sie eine Private Message an Dekurie  Schreiben Sie einen Gästebucheintrag für Dekurie

Beiträge: 25
Registriert: 20.10.2009

erstellt am: 10. Feb. 2011 07:49    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Sehen Sie sich das Profil von Paulchen an!   Senden Sie eine Private Message an Paulchen  Schreiben Sie einen Gästebucheintrag für Paulchen

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Dekurie 10 Unities + Antwort hilfreich


makro_einstellungen_2007.PNG

 
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



Sehen Sie sich das Profil von Dekurie an!   Senden Sie eine Private Message an Dekurie  Schreiben Sie einen Gästebucheintrag für Dekurie

Beiträge: 25
Registriert: 20.10.2009

erstellt am: 10. Feb. 2011 14:20    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


verschieben3.zip

 
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


Sehen Sie sich das Profil von arossbach an!   Senden Sie eine Private Message an arossbach  Schreiben Sie einen Gästebucheintrag für arossbach

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Dekurie 10 Unities + Antwort hilfreich


verschieben_1_export.zip

 
Ich weiß nicht ob ich das richtig verstanden habe, aber ist es das was Du meinst ?
Probier mal...

Gruß
-Axel-

------------------
-Axel- 
CROSSFIRE

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Dekurie
Mitglied



Sehen Sie sich das Profil von Dekurie an!   Senden Sie eine Private Message an Dekurie  Schreiben Sie einen Gästebucheintrag für Dekurie

Beiträge: 25
Registriert: 20.10.2009

erstellt am: 17. Feb. 2011 14:14    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Axel,

leider kann ich in Deiner Datei garkeinen Unterschied erkennen.
Hast Du etwas daran geändert?

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

MWN
Mitglied
Dipl.-Ing.


Sehen Sie sich das Profil von MWN an!   Senden Sie eine Private Message an MWN  Schreiben Sie einen Gästebucheintrag für MWN

Beiträge: 492
Registriert: 14.02.2007

erstellt am: 17. Feb. 2011 15:14    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Dekurie 10 Unities + Antwort hilfreich

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



Sehen Sie sich das Profil von Dekurie an!   Senden Sie eine Private Message an Dekurie  Schreiben Sie einen Gästebucheintrag für Dekurie

Beiträge: 25
Registriert: 20.10.2009

erstellt am: 18. Feb. 2011 08:12    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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.


Sehen Sie sich das Profil von MWN an!   Senden Sie eine Private Message an MWN  Schreiben Sie einen Gästebucheintrag für MWN

Beiträge: 492
Registriert: 14.02.2007

erstellt am: 18. Feb. 2011 09:46    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Dekurie 10 Unities + Antwort hilfreich

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


Sehen Sie sich das Profil von Paulchen an!   Senden Sie eine Private Message an Paulchen  Schreiben Sie einen Gästebucheintrag für Paulchen

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Dekurie 10 Unities + Antwort hilfreich

... schnell und äußerst schmutzig wäre, die Ausführung mittels Application.Wait um eine gewisse Zeit zu verzögern  . Lässt sich dieses "Ich-bin-jetzt-fertig"-Ereignis nicht irgendwie abfangen? Z. B. so lange eine Schleife durchlaufen, bis ein gewisses (Text)Dokument erstellt wurde o. ä.?

------------------
DIN1055.de  |  Lastannahmen für Anwender

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Dekurie
Mitglied



Sehen Sie sich das Profil von Dekurie an!   Senden Sie eine Private Message an Dekurie  Schreiben Sie einen Gästebucheintrag für Dekurie

Beiträge: 25
Registriert: 20.10.2009

erstellt am: 18. Feb. 2011 15:09    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

ä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 >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz