| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
| |
| Dassault Systèmes auf der Hannover Messe 2024 (kostenlose Tickets verfügbar) |
Autor
|
Thema: Makro löscht sich immer (1878 mal gelesen)
|
timoj Mitglied
Beiträge: 4 Registriert: 16.12.2015
|
erstellt am: 16. Dez. 2015 09:03 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, ich habe da mal eine Frage. Ich habe in ein Solidworks Part eine Excel Tabelle eingefügt, mit welcher sich die Bemaßung der Teils steuern lässt. Jetzt ist es so, dass ich in diese Tabelle gerne ein Makro einfügen möchte, welches beim öffnen der Tabelle in Solidworks einen Eingabezwang für bestimmte Felder erzeugt, bevor man weiter mit der Tabelle arbeiten kann. Das funktioniert auch, jedoch nur ein mal. Sobald ich die Tabelle wieder schließe und erneut öffne, ist das makro wieder verschwunden. Hoffe Ihr könnte mir helfen, sodass das Makro dauerhaft hinter der Tabelle bleibt. Hier noch mein Makro: Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range) Application.EnableEvents = False Dim rgBereich As Range Dim zaehler As Range Set rgBereich = Worksheets("Tabelle1").Range("B5,D5,B7,B10") For Each zaehler In rgBereich If zaehler = "" Then zaehler.Select Exit For End If Next zaehler Application.EnableEvents = True End Sub
Gruß Timo
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bk.sc Ehrenmitglied V.I.P. h.c. Konstrukteur Sondermaschinenbau
Beiträge: 2776 Registriert: 18.07.2012 -Solid Works 2019 SP5 -Pro Engineer WF 3
|
erstellt am: 16. Dez. 2015 10:32 <-- editieren / zitieren --> Unities abgeben: Nur für timoj
Hallo Timo, bist du auch sicher dass das Macro beim schließen der Tabelle auch wirklich entladen ist, bzw. der Excell Prozess wirklich beendet wird?. Weil bei der OLE Excel Tabelle (also nicht in extra Fenster) bleibt gerne mal der Prozess nach dem schließen noch aktiv und daher ist das Macro wahrscheinlich noch nicht entladen. Evtl. kannst du ja die Tabelle mit einem Button/Macro schließen um den Excel-Prozess sicher zu beenden. Gruß Bernd
------------------ --- Man muß nicht alles wissen, man muß nur wissen wo es steht --- Staatlich anerkannte Deutschniete Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
timoj Mitglied
Beiträge: 4 Registriert: 16.12.2015
|
erstellt am: 16. Dez. 2015 11:15 <-- editieren / zitieren --> Unities abgeben:
Hallo Bernd, erst einmal Danke für deine Hilfe. Aber kannst du definieren, was du genau mit "entladen" meinst? Ich habe das oben eingefügt Makro hinter der Tabelle eingefügt, und gespeichert. Anschließend bin ich mit Alt + F4 aus dem Programm raus und zurück in die Tabelle. Hier habe ich ein weiteres Mal auf Speichern gedrückt. Anschließend funktioniert der Vorgang genau ein Mal. Wenn ich die Tabelle ein weiteres Mal öffne, ist das Programm nicht mehr da. Gruß Timo Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HenryV Mitglied Konstrukteur, Engineering
Beiträge: 813 Registriert: 18.05.2005 SolidWorks 2022 x64 SP5.0 Dell Precision 5820 Intel Xeon W-2125 4x4GHz NVIDIA Quadro P2000 5GB 32GB RAM 2x Dell U2412M, 24" TFT Windows 10 Enterprise x64 22H2 Microsoft 365 E5 Microsoft Visual Studio Enterprise 2022
|
erstellt am: 16. Dez. 2015 13:48 <-- editieren / zitieren --> Unities abgeben: Nur für timoj
Hallo Timo Ich glaube eher, dass deine Excel-Datei im xlsx-Format gespeichert ist und diese entfernt das Makro beim schliessen automatisch. Um eine Tabelle im xlsm-Format einzufügen, welche Makros unterstützt, geht man wie folgt vor: - Tabelle ganz normal über Einfügen->Tabellen->Tabelle...->Automatisch erstellen einfügen - Tabelle in neuem Fenster bearbeiten - Tabelle unter dem Format xlsm lokal speichern - Tabelle aus dem Teil / Der Baugruppe löschen - kurz zuvor lokal gespeicherte Tabelle über Einfügen->Tabellen->Tabelle...->Aus Datei einfügen - Eingefügte Tabelle mit Makro ergänzen - Fertig
Gruss Andreas
------------------ 21 ist nur die halbe Antwort. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
timoj Mitglied
Beiträge: 4 Registriert: 16.12.2015
|
erstellt am: 16. Dez. 2015 15:05 <-- editieren / zitieren --> Unities abgeben:
|
bk.sc Ehrenmitglied V.I.P. h.c. Konstrukteur Sondermaschinenbau
Beiträge: 2776 Registriert: 18.07.2012 -Solid Works 2019 SP5 -Pro Engineer WF 3
|
erstellt am: 17. Dez. 2015 07:00 <-- editieren / zitieren --> Unities abgeben: Nur für timoj
Hallo, ohh ich bin einfach mal davon ausgegangen das du die Tabelle bereits aus Extern als .xlxm eingefügt hattest. Upps Aber dass Problem mit dem nicht richtigen beenden von dem Excel-Prozess, hatte ich eben auch schonmal daher meine Vermutung. Gruß Bernd ------------------ --- Man muß nicht alles wissen, man muß nur wissen wo es steht --- Staatlich anerkannte Deutschniete Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
timoj Mitglied
Beiträge: 4 Registriert: 16.12.2015
|
erstellt am: 17. Dez. 2015 07:41 <-- editieren / zitieren --> Unities abgeben:
Ja, eigentlich sollte das auch vorausgesetzt werden können, dass ich die Tabelle unter dem richtigen Format speichere, aber ich habe es verpennt :-(. Nichts desto trotz scheint Ihr beide euch ja recht gut auszukennen, deshalb hätte ich da eventuell noch eine Frage. Ich versuche seit längerem eine Arbeitsmappe zu sperren, wenn der Anwender, welcher die Arbeitsmappe öffenen will, die Makros nicht aktiviert, wenn die Checkbox mit der Nachfrage kommt. Es will mir aber einfach nicht gelingen. Habt Ihr hier auch eine Idee oder eine passendes Programm. Gruß Timo Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bk.sc Ehrenmitglied V.I.P. h.c. Konstrukteur Sondermaschinenbau
Beiträge: 2776 Registriert: 18.07.2012 -Solid Works 2019 SP5 -Pro Engineer WF 3
|
erstellt am: 17. Dez. 2015 13:04 <-- editieren / zitieren --> Unities abgeben: Nur für timoj
Hallo Timo, hast du mal versucht das Tabellenblatt vorher im gesperrten Zustand zu speichern und die Sperre wird eben nur über das Macro z.B. mit dem laden der UserForm aufgehoben. Mit "ActiveSheet.Protect deinpasswort" bzw. "ActiveSheet.Unprotect deinpasswort" kannst du den Blattschutz per VBA sperren bzw. entsperren. Gruß Bernd ------------------ --- Man muß nicht alles wissen, man muß nur wissen wo es steht --- Staatlich anerkannte Deutschniete Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |