| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
| |
 | Wie kann Simulation Ihre Produktentwicklung beschleunigen?, ein Webinar am 07.08.2025
|
Autor
|
Thema: VBA Inhalt löschen (1558 / mal gelesen)
|
wemasb Mitglied Quereinsteiger
 
 Beiträge: 124 Registriert: 10.09.2012 SolidWorks 2018 Office 2010 AutoCAD 2007
|
erstellt am: 21. Dez. 2016 09:27 <-- editieren / zitieren --> Unities abgeben:         
Guten Morgen allesamt, ich steh momentan vor einem kleinem Rätsel, vielleicht habt ihr ja die passende Lösung für mich oder auch einfach nur einen Rat ich habe ein Makro, mit einer Userform versehen die ein Passwort abfragt (ja ich weiß, geht auch über Einstellungen im Code selbst). Ich möchte aber, dass wenn jemand das dritte mal das Passwort falsch eingegeben wird, sich der komplette Inhalt dieses Makros löscht, also alle Module, Userform usw. Etwas passendes für Excel habe ich schon gefunden: Sub VBA_Code_entfernen() Dim Ding As Object Dim Zeile As Long Dim Antwort As Integer Antwort = MsgBox("Wollen Sie wirklich alle VBA-Elemente in:" _ & vbNewLine & ActiveWorkbook.Name & vbNewLine _ & "komplett löschen?", vbOKCancel, _ "Achtung!") If Antwort <> 1 Then MsgBox "Keine Änderungen durchgeführt", , "" Exit Sub End If For Each Ding In ActiveWorkbook.VBProject.vbcomponents 'Type 100 = DieseArbeitsmappe und alle Tabellen If Ding.Type = 100 Then With ActiveWorkbook.VBProject.vbcomponents(Ding.Name).CodeModule For Zeile = 1 To .CountOfLines .DeleteLines 1 Next Zeile End With 'Type 1 = Modul, Type 2 = Klassenmodul, Type 3 = UserForm Else ActiveWorkbook.VBProject.vbcomponents.Remove Ding End If Next MsgBox "Fertig", , "" End Sub Dieses Sub bezieht sich aber auch ACTIVEWORKBOOK Jetzt zu der (wahrscheinlich schon logischen) Frage... wie heißt das passende Äquivalent (richtig geschrieben?) für SolidWorks? Über jede Hilfe bin ich wie immer sehr dankbar Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
nahe Ehrenmitglied
    
 Beiträge: 1794 Registriert: 18.01.2001 arbeite mit: Dell Precision 7750 i7 2,6 GHz 6 Kerne 32GB RAM 512GB SSD NVIDIA Quadro RTX 4000 ------------------------ SWX-2020 SP5.0 EPDM ---------------- Windows 10 ---------------- VB.net VB VBA ein wenig Swift am Mac
|
erstellt am: 21. Dez. 2016 09:53 <-- editieren / zitieren --> Unities abgeben:          Nur für wemasb
Hallo wemsab, ich glaube, das wird das nicht möglich sein. So wie ich das verstehe, werden Makros in Excel in der Excel-Datei gespeichert und in SWX als eigene Datei. Ein Möglichkeit wäre, dass Du Dein Makro über ein anderes Makro, mit RunMacro2, aufrufst und dabei die Option swRunMacroUnloadAfterRun verwendest. (ich gehe mal davon aus, dass Du das Makro ja nicht komplett löschen möchtest, weil es sonst ja wirklich weg ist) Mich würde noch interessieren Warum Du das so machen möchtest bzw. was der Hintergrund dazu ist? ------------------ Grüße Heinz Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
wemasb Mitglied Quereinsteiger
 
 Beiträge: 124 Registriert: 10.09.2012 SolidWorks 2018 Office 2010 AutoCAD 2007
|
erstellt am: 21. Dez. 2016 09:57 <-- editieren / zitieren --> Unities abgeben:         
Hallo Nahe, mir geht es darum, dass dieses Makro an andere Leute gehen soll, jedoch sollen diese nicht in den Code schauen können. Da man mit ein bisschen googlen schnell herausfinden kann, wie man den normalen Passwortschutz umgeht, dachte ich, ich erstell eine eigene Passwort-Abfrage mit entsprechender Lösch-Funtkion Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
nahe Ehrenmitglied
    
 Beiträge: 1794 Registriert: 18.01.2001 arbeite mit: Dell Precision 7750 i7 2,6 GHz 6 Kerne 32GB RAM 512GB SSD NVIDIA Quadro RTX 4000 ------------------------ SWX-2020 SP5.0 EPDM ---------------- Windows 10 ---------------- VB.net VB VBA ein wenig Swift am Mac
|
erstellt am: 21. Dez. 2016 10:12 <-- editieren / zitieren --> Unities abgeben:          Nur für wemasb
Hallo na dafür gäbe es folgende Möglichkeit im VBA Editor Extras->Eigenschaften von "Deinem Makro"->Schutz dort den Haken bei "Projekt für die Anzeige sperren" und ein Passwort vergeben dabei ist mir aufgefallen, dass es unter Umständen notw. SWX 1x zu beenden und neu zu starten, damit eine Änderung an diesen Einstellungen richtig erkannt wird. (ist aber wahrscheinlich nur während der Entwicklung interessant) ------------------ Grüße Heinz Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
wemasb Mitglied Quereinsteiger
 
 Beiträge: 124 Registriert: 10.09.2012 SolidWorks 2018 Office 2010 AutoCAD 2007
|
erstellt am: 21. Dez. 2016 10:34 <-- editieren / zitieren --> Unities abgeben:         
|
nahe Ehrenmitglied
    
 Beiträge: 1794 Registriert: 18.01.2001 arbeite mit: Dell Precision 7750 i7 2,6 GHz 6 Kerne 32GB RAM 512GB SSD NVIDIA Quadro RTX 4000 ------------------------ SWX-2020 SP5.0 EPDM ---------------- Windows 10 ---------------- VB.net VB VBA ein wenig Swift am Mac
|
erstellt am: 21. Dez. 2016 12:33 <-- editieren / zitieren --> Unities abgeben:          Nur für wemasb
- ist halt die Frage mit welchem Aufwand das zu umgehen ist - dann könntest Du noch Dein Makro noch als Addin oder als eigenständiges Programm mit Visual Studio erstellen wenn das so heikel ist solltest Du, meiner Meinung nach, sowieso kein "normales" Makro dazu verwenden ------------------ Grüße Heinz Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
wemasb Mitglied Quereinsteiger
 
 Beiträge: 124 Registriert: 10.09.2012 SolidWorks 2018 Office 2010 AutoCAD 2007
|
erstellt am: 21. Dez. 2016 12:54 <-- editieren / zitieren --> Unities abgeben:         
|
nahe Ehrenmitglied
    
 Beiträge: 1794 Registriert: 18.01.2001 arbeite mit: Dell Precision 7750 i7 2,6 GHz 6 Kerne 32GB RAM 512GB SSD NVIDIA Quadro RTX 4000 ------------------------ SWX-2020 SP5.0 EPDM ---------------- Windows 10 ---------------- VB.net VB VBA ein wenig Swift am Mac
|
erstellt am: 21. Dez. 2016 14:16 <-- editieren / zitieren --> Unities abgeben:          Nur für wemasb
wie ich oben schon geschrieben habe wenn es wirklich so sensibel ist und Dir der Standardpasswortschutz nicht reicht, wird Dir wohl nichts anderes übrig bleiben, als Dich in die Materie einzuarbeiten. Noch eine Bemerkung: eigenständige Programme sind einfacher zu erstellen und auch bereitzustellen als Addin´s ist meine persönliche Meinung als Gelegenheits-Programmierer wobei Programmierer schon übertrieben ist (besser Code-Schnipsel-Zusammen-Steller ) ------------------ Grüße Heinz Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |

| |
KMassler Ehrenmitglied V.I.P. h.c. CAD Admin + Mädchen für Alles... i.R.

 Beiträge: 2679 Registriert: 06.11.2000 SolidWorks Start 1999 ** CSWP 01/2008 ** ------------------ Zuletzt beruflich: - SWX2020 SP5; - SAP/PLM+ECTR; - DriveWorks Pro; - Programmierung: VBA, aktuell Visual Studio 2022/VB.Net ------------------ privat: ab 2024 Onshape seit 2025 SolidWorks for Makers
|
erstellt am: 21. Dez. 2016 14:33 <-- editieren / zitieren --> Unities abgeben:          Nur für wemasb
|