Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  VBA: Blatt einer Zeichnung löschen

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
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS
  
Wie Hersteller von Industrieanlagen Konstruktions- und Entwicklungsherausforderungen mit SOLIDWORKS meistern
Autor Thema:  VBA: Blatt einer Zeichnung löschen (822 mal gelesen)
magge84
Mitglied
Dipl.-Ing. (Entwicklung)


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

Beiträge: 66
Registriert: 04.09.2008

Solid Works 2018 + PDM
Windows 10 64-bit
HP Z-Book
Intel(R) Core(TM) i7-6820HQ CPU @ 2.70GHz
NVIDIA Quadro M3000M

erstellt am: 12. Nov. 2020 15:56    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 Gemeinde,

ich bin grad am verzweifeln. Ich möchte gerne per VBA-Makro Zeichnungsblätter aus einem Drawing löschen.

Der nachfolgende Code ist in eine Schleife verpackt, die alle Zeichnungsblätter durchgeht und deren Namen abgleicht.
Enthält der Blattname nicht den String, der in vDoc(j) gespeichert wird, soll das Blatt gelöscht werden.

Den Code hat mir das Makroaufzeichnungstool ausgespuckt. Blatt aktivieren funzt. Blatt selektieren funzt.
Doch wenn die Befehlszeile löschen kommt, passiert nichts.

In SWX kommt ein kleines PopUp, das mir sagt, dass nichts gelöscht wurde.  sehr hilfreich

Code:

If Not vSheetNamesTemp(i) Like "*" + vDoc(j) + "*" Then
  swModel.ActivateSheet (vSheetNamesTemp(i))
  SelectStatus = swModel.Extension.SelectByID2(vSheetNamesTemp(i), "SHEET", 0, 0, 0, False, 0, Nothing, 0)
  swModel.EditDelete
End If


Ich habe schon verschiedene Code-Schnipsel aus dem Netz getestet. Doch leider ohne Erfolg.

Hat von euch jemand ne Idee, wo der Fehler liegt.

BTW: Wenn ich das aufgezeichnete Makro von SWX ausführe, passiert auch nichts. Nur dieses blöde PopUp.

------------------
Gruß,
Markus

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

ad_man
Mitglied
freiberuflicher Entwicklungsing. (Fahrzeugtechnik, CSWP, CPPA))


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

Beiträge: 1366
Registriert: 20.12.2003

erstellt am: 12. Nov. 2020 16:27    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 magge84 10 Unities + Antwort hilfreich

Hallo Markus,

versuch es doch mal mit der DeleteSelection2-Methode:

http://help.solidworks.com/2020/english/api/sldworksapi/SOLIDWORKS.Interop.sldworks~SOLIDWORKS.Interop.sldworks.IModelDocExtension~DeleteSelection2.html

Dann sollte das PopUp verschwinden.

------------------
==========
Gruß
Andreas
==========

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

magge84
Mitglied
Dipl.-Ing. (Entwicklung)


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

Beiträge: 66
Registriert: 04.09.2008

Solid Works 2018 + PDM
Windows 10 64-bit
HP Z-Book
Intel(R) Core(TM) i7-6820HQ CPU @ 2.70GHz
NVIDIA Quadro M3000M

erstellt am: 12. Nov. 2020 16:34    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 Andreas,

das habe ich bereits probiert.

Die "DeleteSelection2-Methode" funzt nur in der Modellumgebung.
Nicht in der Drawing-Umgebung.

Trotzdem Danke für den Hinweis.

------------------
Gruß,
Markus

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

ad_man
Mitglied
freiberuflicher Entwicklungsing. (Fahrzeugtechnik, CSWP, CPPA))


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

Beiträge: 1366
Registriert: 20.12.2003

erstellt am: 12. Nov. 2020 18:01    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 magge84 10 Unities + Antwort hilfreich

Hallo Markus,

bei mir funktioniert es:

Code:
Sub main()
    Dim swApp                  As SldWorks.SldWorks
    Dim swModel                As SldWorks.ModelDoc2
    Dim swModelDocExt          As SldWorks.ModelDocExtension
    Dim swDraw                  As SldWorks.DrawingDoc
    Dim swSheet                As SldWorks.Sheet
    Dim sheetName              As String
    Dim ret                    As Boolean
   
    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc
    Set swModelDocExt = swModel.Extension
    Set swDraw = swModel
   
    ' Zugriff auf das aktuelle Blatt
    Set swSheet = swDraw.GetCurrentSheet
   
    ' Ermitteln des Namens
    sheetName = swSheet.GetName
   
    ' Referenzen löschen
    Set swSheet = Nothing
   
    ' Auswählen des Blattes
    ret = swModelDocExt.SelectByID2(sheetName, "SHEET", 0, 0, 0, False, 0, Nothing, 0)
    ' Löschen des Blattes und Einfügen eines leeren Blattes
    ret = swModelDocExt.DeleteSelection2(swDelete_Absorbed)
   
End Sub

------------------
==========
Gruß
Andreas
==========

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

magge84
Mitglied
Dipl.-Ing. (Entwicklung)


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

Beiträge: 66
Registriert: 04.09.2008

Solid Works 2018 + PDM
Windows 10 64-bit
HP Z-Book
Intel(R) Core(TM) i7-6820HQ CPU @ 2.70GHz
NVIDIA Quadro M3000M

erstellt am: 13. Nov. 2020 09:33    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 Andreas,

perfekt. Das funktioniert.

Hatte dieses Vorgehen schon mal getestet. Da hats nicht gefunzt.
Naja, evtl. hatte ich irgendwo nen Fehler.

Vielen Danke für deine Unterstützung. 

------------------
Gruß,
Markus

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)2024 CAD.de | Impressum | Datenschutz