| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
| |
| Optimieren Sie Ihre SOLIDWORKS Tasks mit Visiativ myCADtools - Jetzt Kostenlos testen >>, eine Pressemitteilung
|
Autor
|
Thema: VBA Problem (2601 / mal gelesen)
|
darthkali Mitglied Konstrukteur Formenbau
Beiträge: 75 Registriert: 24.02.2010 Win 7 64Bit Solid Works 2016 Intel Xeon CPU E3-1240 v5 16GB RAm nvidia Quadro M2000 (4GB)
|
erstellt am: 14. Feb. 2017 11:07 <-- editieren / zitieren --> Unities abgeben:
Hallo Zusammen, Ich hoffe das Thema VBA und SW ist hier richtig. Ich habe dazu kein seperates Unterforum gefunden. Wenn nicht bitte verschieben. Nun zu meinem Problem: Ich arbeite seit anfang des Jahres mit SolidWorks und habe zu meiner Freude entdeckt, dass man hie rmit VBA Programmieren kann. Das habe ich gleich mal genutzt und mir ein Paar nützliche Tools zu basteln. Jedoch bekomme ich immer wieder probleme mit VBA bzw den Makros! Und zwar treten hier 2 verschiedene Phänomene auf: Ich arbeite gerade an meinem Makro und kann es nicht mehr speichern. Wenn ich VBA schließe kommt die Meldung: Wollen Sie "Das Makro" speichern? Wenn man das bejat, wird dennoch nicht gespeichert. Ich habe hier 2 vermutungen, woran es liegen könnte: Zum einen arbeite ich mit Excel zusammen. Hab hier die 14.0 Lib in verwendung. Zum anderen vermute ich, das es ggf dann passiert wenn ein anderer User das Toll auf hat bzw ich es in 2 Solid Works nutze. Hat damit schon mal jemand erfahrung gesammelt? Mein zweites und wesentlich schwerwigenderes Problem ist folgendes: Warum auch immer, aber manchmal nach dem Speichern, zerstört sich das makro von selbst. Ich kann es dann weder bearbeiten noch ausführen noch den shortcut neu belegen. Entweder SW lädt sich nen Wolf und kommt auch nach 2 Stunden (habe ich getestet) immer noch nicht zu einem ergebnis. Oder es kommt direkt die Meldung Solid Woks ist abgestürzt. Zu beginn dachte ich, dass es ebenfalls was mit Excel zu tun hat oder auch an einem Code den ich geschrieben habe. Jedoch ist es heute wieder aufgetreten! ich habe eine neue Userform mit einem Textblock und 3 Button eingefügt. Alles ohne Code und sonstiges. Und auf einmal war das Tool tod. Kennt jemand diese Probleme und hat ggf ein Paar Tips, woran es liegen kann? Grüße Danny
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
StefanBerlitz Guter-Geist-Moderator IT Admin (CAx)
Beiträge: 8756 Registriert: 02.03.2000 SunZu sagt: Analysiere die Vorteile, die du aus meinem Ratschlag ziehst. Dann gliedere deine Kräfte entsprechend und mache dir außergewöhnliche Taktiken zunutze.
|
erstellt am: 14. Feb. 2017 11:13 <-- editieren / zitieren --> Unities abgeben: Nur für darthkali
Hallo Danny, ja, von diesen Phänomen habe ich schon gehört und du wirst hier auch im Brett einige Threads dazu finden, die ähnliches (Fehl) Verhalten schildern. Ich persönlich habe solche (oder ähnliche) Schwierigkeiten immer nur gehabt, wenn ich die Makros direkt auf einem Netzlaufwerk abgelegt, dort editiert und im schlimmsten Fall gleichzeitig jemand anderes die ausgeführt hat. Woran das liegt kann ich dir nicht sagen. Meine Empfehlung ist recht eindeutig: Makros entwickeln/editieren ausschließlich auf der lokalen Maschine und nur auf der lokalen Platte speichern, dann ggf. zur Verwendung durch andere auf eine Netzwerkressource kopieren. Mit lokalen Makros habe ich noch nie solche Art Schwierigkeiten gehabt. Aber vielleicht haben andere da auch noch andere Tipps und Erfahrungen, da kommt bestimmt noch was zusammen. Ciao, Stefan ------------------ Inoffizielle deutsche SolidWorks Hilfeseite http://solidworks.cad.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Torsten Niemeier Ehrenmitglied V.I.P. h.c. Maschinenbau Ingenieur
Beiträge: 3743 Registriert: 21.06.2001 "ZUSE I.36", 8 BIT, 32 Lämpchen, Service-Ölkännchen "ESSO-Super", Software: AO auf Kuhlmann-Parallelogramm-Plattform ** CSWP 04/2011 ** ** CSWE 08/2011 **
|
erstellt am: 14. Feb. 2017 11:25 <-- editieren / zitieren --> Unities abgeben: Nur für darthkali
Wie Stefan schon schrieb, ist der plötzliche Makrotod hinlänglich bekannt, siehe z.B. Forensuche mit “makro schwerer fehler“. Da hat sich offenbar seit mehreren SWX -Versionen nicht wirklich was verbessert. Neben der Rettungsmaßnahme mit einer älteren Version kann ich noch empfehlen, gelegentlich bei noch funktionierendem Makro einmal alle Module und Forms zu exportieren und in einem ganz neuen Makro wieder zusammenzustöpseln. Das neue Makro ist dann meist wesentlich kleiner als das alte und verhält sich zumindest eine Zeit lang unauffällig. BTW : Der Makrotod tritt bei mir auch völlig lokal auf, allerdings vorwiegend bei relativ grossen Programmen. Bin aber auch noch auf 2013.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Torsten Niemeier Ehrenmitglied V.I.P. h.c. Maschinenbau Ingenieur
Beiträge: 3743 Registriert: 21.06.2001 "ZUSE I.36", 8 BIT, 32 Lämpchen, Service-Ölkännchen "ESSO-Super", Software: AO auf Kuhlmann-Parallelogramm-Plattform ** CSWP 04/2011 ** ** CSWE 08/2011 **
|
erstellt am: 14. Feb. 2017 11:28 <-- editieren / zitieren --> Unities abgeben: Nur für darthkali
|
Christian_W Ehrenmitglied V.I.P. h.c. Konstrukteur (Dipl-Ing)
Beiträge: 3256 Registriert: 04.04.2001 CSWP 12/2015<P>SWX2021sp5 Win10/11 (SWX2016, SWX2012) proAlpha6.2e00/calinkV9 (Tactonworks) (Medusa7, NesCAD2010, solidEdge19)
|
erstellt am: 14. Feb. 2017 11:35 <-- editieren / zitieren --> Unities abgeben: Nur für darthkali
Zitat: Ich arbeite gerade an meinem Makro und kann es nicht mehr speichern. .... Zum anderen vermute ich, das es ggf dann passiert wenn ein anderer User das Toll auf hat bzw ich es in 2 Solid Works nutze...
Beim Netzlaufwerk genügt es - zumindest mit swx2012 noch - wenn jemand das makro einmal ausgeführt _hat_. Es wird dann einfach nicht wieder freigegeben. Wer es zuerst aufgerufen hatte, behält es den ganzen Tag mit Schreibzugriff im Speicher ... Es könnte sein, dass das mit neueren Versionen anders ist. Wie Stefan schreibt: lokal editieren, dann passiert da nichts. oder das Makro am Ende entladen lassen - hab ich mir so gemacht:
Code: Sub Unload_me() Dim swApp As Object Dim boolstatus As Boolean Dim myMacroPathName As String Dim runMacroError As Long Set swApp = CreateObject("SldWorks.Application") 'Application.SldWorks myMacroPathName = swApp.GetCurrentMacroPathName boolstatus = swApp.RunMacro2(myMacroPathName, "tools", "ciao", swRunMacroUnloadAfterRun, runMacroError) End SubSub ciao() Rem nix tun ausser verschwinden ... End Sub
Zitat: ... manchmal nach dem Speichern, zerstört sich das makro von selbst...
möglich, dass es mit dem Speichern zu tun hat, aber passiert mir relativ selten. Praktisch ist dann, wenn man den Quelltext hat - also ab und an Exportieren als Sicherung. Gruß, Christian
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
jörg.jwd Ehrenmitglied V.I.P. h.c. CAD-PDM Administrator
Beiträge: 3109 Registriert: 05.11.2003
|
erstellt am: 14. Feb. 2017 13:26 <-- editieren / zitieren --> Unities abgeben: Nur für darthkali
Hallo zusammen, unsere Makros liegen auch alle im Netz. Bei uns (aktuell SWX2014) machen wir es grundsätzlich so dass immer wenn Änderungen am Makro notwendig sind ein neues Makro (die haben bei uns im Namen noch eine Versionsnummer) mit nächsthöherer Nummer erzeugt wird und da dann die Änderungen durchgezogen werden. Das kommt daher dass wir bei ca. 100 Usern nie sagen können wer es denn gerade im Zugriff hat. BTW wenn es nur um ein paar User geht ist es einfach. Die müssen einfach einmal SWX schließen, dann ist auch der dabei der's quasi gesperrt hat. ------------------ Grüße Jörg da ich weiß daß ich nichts weiß weiß ich immer noch mehr als die die nicht wissen daß sie nichts wissen (weiß nicht von wem) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Torsten Niemeier Ehrenmitglied V.I.P. h.c. Maschinenbau Ingenieur
Beiträge: 3743 Registriert: 21.06.2001 "ZUSE I.36", 8 BIT, 32 Lämpchen, Service-Ölkännchen "ESSO-Super", Software: AO auf Kuhlmann-Parallelogramm-Plattform ** CSWP 04/2011 ** ** CSWE 08/2011 **
|
erstellt am: 14. Feb. 2017 13:38 <-- editieren / zitieren --> Unities abgeben: Nur für darthkali
|
jörg.jwd Ehrenmitglied V.I.P. h.c. CAD-PDM Administrator
Beiträge: 3109 Registriert: 05.11.2003
|
erstellt am: 14. Feb. 2017 13:44 <-- editieren / zitieren --> Unities abgeben: Nur für darthkali
@Thorsten es heißt ja so schön "aus Schaden wir man klug". Wenn man oft genug auf die Schnauze fällt dann sucht man eben eine andere Lösung. Es ist ja schon seit vielen Jahren so dass so arme Admins wie ich die meiste Zeit damit verbringen Probleme mit CAD-Software (das gilt allgemein für CAD) zu umschiffen da sich die Probleme nur vom Hersteller sauber beheben lassen und es hilft mir nichts wenn ich die Mitteilung bekomme in der Version XXX ist das dann im SPX behoben. Meine User schreien eben sofort. Das mit den Makros machen wir schon seit Jahren so. ------------------ Grüße Jörg da ich weiß daß ich nichts weiß weiß ich immer noch mehr als die die nicht wissen daß sie nichts wissen (weiß nicht von wem) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Christoph Weise Mitglied Technischer Produktdesigner / Konstruktion / CAD-Admin
Beiträge: 206 Registriert: 22.03.2015 Dell 3650 Intel I7 11700k 32 GB RAM Nvidia RTX A4000 16GB Win 10 22H2 64-bit SolidWorks 2022SP5 QuickPress 6.3.3 PortaX 2.27 SAP ERP 6.0
|
erstellt am: 15. Feb. 2017 09:31 <-- editieren / zitieren --> Unities abgeben: Nur für darthkali
Hallo Danny, Willkommen im WBF Das mit dem Speichern funktioniert auch in 2016 nicht, wenn das Makro schon von einem anderen Benutzer geladen wurde. Entwickeln tu ich immer mit einer Kopie des Makros, die aktuelle Makroversion ist noch als .zip Datei als Sicherung vorhanden. Wenn eine neue Version des Makros fertig ist, kopiere ich diese einfach und ersetzte die alte Version damit. Das ersetzten funktioniert meistens auch wenn andere User das Makro geladen haben. Zusätzlich laufen bei uns die am meisten genutzten Makros lokal auf jedem Rechner (wird per Batch-Datei kopiert), so konnten wir die meisten "Makrofehler" ausmertzen. Gruß Christoph ------------------ Wer einen Fehler findet darf ihn behalten, wer zwei findet kann beide behalten, ab fünf Fehler gibs Rabatt :-)
[Diese Nachricht wurde von Christoph Weise am 15. Feb. 2017 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
darthkali Mitglied Konstrukteur Formenbau
Beiträge: 75 Registriert: 24.02.2010 Win 7 64Bit Solid Works 2016 Intel Xeon CPU E3-1240 v5 16GB RAm nvidia Quadro M2000 (4GB)
|
erstellt am: 23. Feb. 2017 09:34 <-- editieren / zitieren --> Unities abgeben:
So da bin ich wieder! Sorry für die Späte Antwort, aber irgendwie hatte ich keinen Zugriff mehr auf mein Konto und konnte das Passwort auch nicht zurücksetzen. Jetzt gehts wieder! Ich hatte mir das schon fast gedacht, dass ich hier keine Saubere Lösung bekommen kann. Das Seperate Arbeiten habe ich auch schon eingeführt und es funktioniert soweit ganz gut. Mit einigen backupdateien ist bisher kein Verlist mehr aufgetreten. Danke fürs Feedback! Grüße Danny Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |