Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor VBA
  Speichern-Befehl auslösen

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 Autodesk Produkte
Autor Thema:  Speichern-Befehl auslösen (7990 mal gelesen)
RolandW
Mitglied
Konstrukteur


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

Beiträge: 74
Registriert: 01.11.2004

erstellt am: 01. Nov. 2004 11:39    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 IV-ler

Folgendes Problem:

Ich möchte dem Speichern-Befehl noch eine Benutzerfunktion anhängen. Konkreter: Wenn der User auf den Speichenbutton klickt, soll nicht nur gespeichert sondern noch ein VB-Code abgearbeitet werden.

Dazu werde ich den Norm-Button durch einen Benutzerspez. Button ersetzen.

Nun mein Problem. Kann ich aus VB den Klick auf den Speichern-Button simulieren. Da die .save - Funktion ja nicht identisch mit dem klick auf den Button ist.

Danke für eure Hilfe im Voraus

Roland W

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

PaulSchuepbach
Moderator
Programmierer




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

Beiträge: 1005
Registriert: 01.10.2003

erstellt am: 01. Nov. 2004 15: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 Nur für RolandW 10 Unities + Antwort hilfreich

Hallo Roland,

ich wuerde Dir empfehelen, den Speichern-Button zu belassen. Beim Druecken der Buttons fuer 'Neu' , 'Oeffnen' , 'Speichern' usw. feuert Inventor einen entsprechenden Event - z.B. 'OnSave' ab. Diesen Event kannst Du abfangen und mittels EventTimingEnum 'BeforeOrAfter' eben VOR oder NACH dem Speichern irgendwelche Aktionen ausfuehren.


Gruesse,

Paul

www.morecam.ch/cad.htm

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

RolandW
Mitglied
Konstrukteur


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

Beiträge: 74
Registriert: 01.11.2004

erstellt am: 02. Nov. 2004 08:24    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

Hi Paul.

Danke für deine Antwort, hört sich gut an. Nur bin ich ein wenig überfordert.

Wäre es möglich, dass Du mir ein kleines Bsp. mit einem EVENT (muss nicht zwingend onsave sein) zukommen lassen könntest.

Gruss Roland

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

PaulSchuepbach
Moderator
Programmierer




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

Beiträge: 1005
Registriert: 01.10.2003

erstellt am: 02. Nov. 2004 09:05    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 RolandW 10 Unities + Antwort hilfreich

Hallo Roland,

Ein paar Verhaltensregeln fuer das Forum:
1. ein Neuer stellt sich erst mal vor (die Anderen interessiert es, wer Du bist und was Du machst) - bist Du ueberhaupt neu oder hast Du nur einen neuen Login ?
2. RTFMRead that f... manual = Lies das verdammte Handbuch
3. 'Suchen'-Funktion benutzen
4. Falls nichts gefunden, Beitrag verfassen
5. Falls die Antwort gut was, Unities vergeben


Hier ein VBA-Beispiel (einfach ein neues Part-Doc oeffnen und den code in das Document-Project kopieren, dann Skizze verlassen und Sub catchEvent laufen lassen):

Private WithEvents oAppEvents As ApplicationEvents


Public Sub catchEvent()
 
  Dim oApp As Inventor.Application
  Set oApp = ThisApplication
 
  Set oAppEvents = oApp.ApplicationEvents
 
  Call oApp.ActiveDocument.Save
 
End Sub


Private Sub oAppEvents_OnSaveDocument(ByVal DocumentObject As Document, ByVal BeforeOrAfter As EventTimingEnum, ByVal Context As NameValueMap, HandlingCode As HandlingCodeEnum)
 
  If BeforeOrAfter = kBefore Then
    MsgBox "VOR dem Speichern: irgendetwas machen", vbInformation, "AppEvent"
  End If
 
  If BeforeOrAfter = kAfter Then
    MsgBox "NACH dem Speichern: irgendetwas anderes machen", vbInformation, "AppEvent"
  End If
     
End Sub

Gruesse,

Paul

www.morecam.ch/cad.htm

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

RolandW
Mitglied
Konstrukteur


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

Beiträge: 74
Registriert: 01.11.2004

erstellt am: 02. Nov. 2004 09:40    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

Zitat:
Original erstellt von PaulSchuepbach:
Hallo Roland,

Ein paar Verhaltensregeln fuer das Forum:
1. ein Neuer stellt sich erst mal vor (die Anderen interessiert es, wer Du bist und was Du machst) - bist Du ueberhaupt neu oder hast Du nur einen neuen Login ?
2. RTFMRead that f... manual = Lies das verdammte Handbuch
3. 'Suchen'-Funktion benutzen
4. Falls nichts gefunden, Beitrag verfassen
5. Falls die Antwort gut was, Unities vergeben



Erst mal Danke für das Bsp. Werde es sobald ich Zeit habe unter die Lupe nehmen.
Ich bekenne mich auch in allen aufgeführten Punkten schuldig, nur ein paar Anmerkungen hätte ich schon noch:

1) Ich bin neu in diesem Forum. Jedoch habe ich bis zum heutigen Zeitpunkt noch in keinem Forum mein Lebenslauf gepostet :-) Wenn das gewünscht wird mache ich das doch gerne. In den meisten Foren werden jedoch so wenig Themas wie möglich verlangt.
2) Ich habe zwischen deiner Antwort und meiner Frage ca. 1.5 Stunden im Manual gelesen. Nur ist mein APIProgrammier- und Anwendungsschnittstelle (Application Programming Interface) Manual nun mal in Englich, und für einen Neuling in VBA-INV nicht ganz so einfach zu verstehen.
3)Du hast recht, nach "WithEvents" habe ich in diesem Forum nicht gesucht. Das kommt daher das ich sehr lange nach DWF-erstellen gesucht habe (und auch gefunden), und mir mein Hirn nun vorgegeaukelt hat, ich hätte schon nach dem neuen Problem gesucht. Sei mir nicht böse, ich werde mich in Zukunft bessern.
5) Mach ich.

Schönen Tach .. Roland

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

PaulSchuepbach
Moderator
Programmierer




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

Beiträge: 1005
Registriert: 01.10.2003

erstellt am: 02. Nov. 2004 10:03    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 RolandW 10 Unities + Antwort hilfreich

Hallo Roland,

Du brauchst Dich nicht schuldig zu fuehlen - alles was ich Dir damit sagen wollte ist: man weiss gerne mit wem man es zu tun hat. Lebenslauf posten waere uebertrieben. Der Punkt ist einfach der, dass es Leute gibt, die nur nehmen wollen - nicht aber geben.
Ein Forum lebt aber nun mal 'geben UND nehmen' - und wenn einer nur nimmt, dann kriegt er eben irgendwann keine Antworten mehr. Dann gibts solche, die sich einen neuen Login zulegen...

Also ich gehe davon aus, dass Du nicht so einer bist.

Deshalb ein herziche Hallo im WBF.


Gruesse,

Paul

www.morecam.ch/cad.htm

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

RolandW
Mitglied
Konstrukteur


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

Beiträge: 74
Registriert: 01.11.2004

erstellt am: 02. Nov. 2004 10:55    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

Habe gerade in der APIProgrammier- und Anwendungsschnittstelle (Application Programming Interface)-Help was gefunden.

AutoOpen
This macro is run automatically when the document it is contained within is opened.
AutoNew
This macro is run automatically when a new document is created from a template. For this macro to be used, it must exist within the template file.
AutoSave
This macro is run automatically whenever the document it is contained within is saved.
AutoClose
This macro is run automatically whenever the document it is contained within is closed.
AutoEdit
This macro is run when parts/sub-assemblies are opened or edited.

Damit wird das ganze sehr einfach:

Sub AutoSave()
    MsgBox "Function beim speichern"
End Sub

Deine Version könnte man noch optimieren wenn man die Function "catchEvent" in "AutoOpen" umbennenen würde.

Gruss Roland

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

PaulSchuepbach
Moderator
Programmierer




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

Beiträge: 1005
Registriert: 01.10.2003

erstellt am: 02. Nov. 2004 11: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 RolandW 10 Unities + Antwort hilfreich

Hallo Roland,

grundsaetzlich richtig - stellt sich noch die Frage, ob Du das 'mach irgend was sinnvolles' vor oder nach dem speichern IMMER anwenden willst. Vielleicht umschreibst Du mal etwas genauer, was Du ueberhaupt vor hast - vielleicht hat ja schon mal jemand sowas gemacht.


Gruesse,

Paul

www.morecam.ch/cad.htm

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

RolandW
Mitglied
Konstrukteur


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

Beiträge: 74
Registriert: 01.11.2004

erstellt am: 02. Nov. 2004 13: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

Eigentlich ist mein Problem damit schon gelöst.

Ich möchte auf einem Netzlaufwerk eine DWF-Datei speichern, und zwar jedesmal wenn die Datei gespeichert wird. Somit kann ich meine INV-Daten lokal speichern und bearbeiten, und den anderen Usern DWF-Dateien im Netz zur Verfügung stellen. Ich werde den ganzen Code dann mal posten wenn ich ihn fertig habe. (der Pfad sollte aus einem Textfile eingelesen werden, etc.)

Aber die wichtigsten Punkte sind geklärt (dank Dir). Gruss und einen schönen Tach Roland

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

SHP
Mitglied
Konstrukteur


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

Beiträge: 1331
Registriert: 17.07.2003

IV9-SP3
IV10-Sp3a
IV11

erstellt am: 19. Jan. 2006 18:45    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 RolandW 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von PaulSchuepbach:

Hier ein VBA-Beispiel (einfach ein neues Part-Doc oeffnen und den code in das Document-Project kopieren, dann Skizze verlassen und Sub catchEvent laufen lassen):

Private WithEvents oAppEvents As ApplicationEvents


Public Sub catchEvent()
 
  Dim oApp As Inventor.Application
  Set oApp = ThisApplication
 
  Set oAppEvents = oApp.ApplicationEvents
 
  Call oApp.ActiveDocument.Save
 
End Sub


Private Sub oAppEvents_OnSaveDocument(ByVal DocumentObject As Document, ByVal BeforeOrAfter As EventTimingEnum, ByVal Context As NameValueMap, HandlingCode As HandlingCodeEnum)
 
  If BeforeOrAfter = kBefore Then
    MsgBox "VOR dem Speichern: irgendetwas machen", vbInformation, "AppEvent"
  End If
 
  If BeforeOrAfter = kAfter Then
    MsgBox "NACH dem Speichern: irgendetwas anderes machen", vbInformation, "AppEvent"
  End If
     
End Sub

Gruesse,

Paul

www.morecam.ch/cad.htm


Hallo Paul,
möchte mir obigen Code zu nutze machen.
Ich möchte bei jedem Speichern einer Datei den Inhalt des Property "Part Number" prüfen, und zwar soll immer der Dateiname drinnen stehen.

Leider komm ich nicht ganz klar.
Den Event muß ich wohl in ein neues Klassemodul schreiben, oder?

------------------
Gruß
Hans-Peter
Der Wahnsinn in Sachen Musik.

  Das Saxregister
 

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

SHP
Mitglied
Konstrukteur


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

Beiträge: 1331
Registriert: 17.07.2003

IV9-SP3
IV10-Sp3a
IV11

erstellt am: 24. Jan. 2006 18:11    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 RolandW 10 Unities + Antwort hilfreich

Ich möchte die Frage anders formulieren.
Ist es mit VBA möglich, wenn ich den Speichern-Button im IV betätige, ein Makro zu starten?

------------------
Gruß
Hans-Peter
Der Wahnsinn in Sachen Musik.

  Das Saxregister
 

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

PaulSchuepbach
Moderator
Programmierer




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

Beiträge: 1005
Registriert: 01.10.2003

erstellt am: 24. Jan. 2006 19:19    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 RolandW 10 Unities + Antwort hilfreich

Hallo Hans-Peter,

das kannst Du in diesem Konstrukt des Codes oben machen:

If BeforeOrAfter = kBefore Then
    MsgBox "VOR dem Speichern: irgendetwas machen", vbInformation, "AppEvent"
  End If
 
  If BeforeOrAfter = kAfter Then
    MsgBox "NACH dem Speichern: irgendetwas anderes machen", vbInformation, "AppEvent"
  End If


... oder eben mit einem Auto-Makro.

Grüsse,

Paul

www.morecam.ch
www.thinkcad.de


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

SHP
Mitglied
Konstrukteur


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

Beiträge: 1331
Registriert: 17.07.2003

IV9-SP3
IV10-Sp3a
IV11

erstellt am: 28. Jan. 2006 16:19    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 RolandW 10 Unities + Antwort hilfreich

Hallo Paul,
ich hab mir folgenden Code in ein Klassenmodul geschrieben, das ich OnSave benannt habe.
________________________
Private WithEvents oAppEvents As ApplicationEvents

Private Sub oAppEvents_OnSaveDocument(ByVal DocumentObject As Document, ByVal BeforeOrAfter As EventTimingEnum, ByVal Context As NameValueMap, HandlingCode As HandlingCodeEnum)
 
  If BeforeOrAfter = kBefore Then
    MsgBox "VOR dem Speichern: irgendetwas machen", vbInformation, "AppEvent"
  End If
 
  If BeforeOrAfter = kAfter Then
    MsgBox "NACH dem Speichern: irgendetwas anderes machen", vbInformation, "AppEvent"
  End If
     
End Sub
___________________


Irgendwas versteh ich da nicht so recht.


------------------
Gruß
Hans-Peter 
Der Wahnsinn in Sachen Musik.

   Das Saxregister
  

[Diese Nachricht wurde von SHP am 28. Jan. 2006 editiert.]

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

SHP
Mitglied
Konstrukteur


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

Beiträge: 1331
Registriert: 17.07.2003

IV9-SP3
IV10-Sp3a
IV11

erstellt am: 01. Feb. 2006 21: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 RolandW 10 Unities + Antwort hilfreich

Hallo nochmal,
ich habe den folgenden Code in das Dokumentprojekt eines Parts geschrieben.
Nach dem öffnen dieses Parts ist nun der OnSave Event aktiv.
Jetzt möchte ich aber die Subs "mach_vorher" und "mach_nachher" in die Default.ivb verlegen, die sowieso geladen wird.
Nur wie kann ich die Subs dann aufrufen?
Geht das überhaupt?

_________________________________________________
Private WithEvents oAppEvents As ApplicationEvents

Public Sub Autoopen()
 
  Dim oApp As Inventor.Application
  Set oApp = ThisApplication
 
  Set oAppEvents = oApp.ApplicationEvents
 
  'Call oApp.ActiveDocument.Save
 
End Sub


Private Sub oAppEvents_OnSaveDocument(ByVal DocumentObject As Document, ByVal BeforeOrAfter As EventTimingEnum, ByVal Context As NameValueMap, HandlingCode As HandlingCodeEnum)
 
  If BeforeOrAfter = kBefore Then
    mach_vorher
  End If
 
  If BeforeOrAfter = kAfter Then
    mach_nachher
  End If
     
End Sub


Private Sub mach_vorher()
    MsgBox "VOR dem Speichern: irgendetwas machen", vbInformation, "AppEvent"
End Sub

Private Sub mach_nachher()
    MsgBox "NACH dem Speichern: irgendetwas anderes machen", vbInformation, "AppEvent"
End Sub
_____________________________________________


------------------
Gruß
Hans-Peter
Der Wahnsinn in Sachen Musik.

  Das Saxregister
 

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

SHP
Mitglied
Konstrukteur


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

Beiträge: 1331
Registriert: 17.07.2003

IV9-SP3
IV10-Sp3a
IV11

erstellt am: 02. Feb. 2006 22:28    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 RolandW 10 Unities + Antwort hilfreich


OnSaveDocumentEvent.txt


OnSaveDocumentEvent_do.ivb.txt

 
Hallo,
jetzt hab ich noch ein Problem.
Ich hab in 2 Bauteidateien den Code aus der Datei "OnSaveDocumentEvent.txt" reingeschrieben.
Die Datei "OnSaveDocumentEvent_do.ivb" enthält die Anweisungen die beim Speichern ausgeführt werden sollen.
Diese Datei muß im Standard-VBA Ordner liegen.
Wenn ich nun beide Parts offen habe und den Speichern-Button drücke, werden die Anweisungen 2x ausgeführt.
Wie kann ich das unterbinden?


------------------
Gruß
Hans-Peter
Der Wahnsinn in Sachen Musik.

  Das Saxregister
 

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

.Andi
Mitglied
Konstrukteur


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

Beiträge: 15
Registriert: 22.07.2008

HP xw 4600 Workstation
Intel(R) Core 2 Duo CPU
4GB RAM
NVIDIA Quadro FX 370
Treiber 6.14.11.6947
Windows XP, SP3
AutoCAD Inventor 2008 SP2

erstellt am: 23. Okt. 2008 10:26    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 RolandW 10 Unities + Antwort hilfreich

Hallo Hans-Peter

Ich hatte die gleichen Probleme :

Wenn ich nun beide Parts offen habe und den Speichern-Button drücke, werden die Anweisungen 2x ausgeführt.
Wie kann ich das unterbinden?

Konntest du in der Zwischenzeit eine Lösung finden ??

wenn ja, kannst du mir die Lösung dieses Problems auch bitte mitteilen ???

Danke zum Voraus ...

------------------
Gruss

Andi ....

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

rtend12
Mitglied
Dipl.-Ing. (FH) Maschinenbau / Konstrukteur


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

Beiträge: 436
Registriert: 21.07.2004

Catia V5 (R16SP5, B18SP5)
VB.Net 2003

erstellt am: 23. Okt. 2008 21:07    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 RolandW 10 Unities + Antwort hilfreich

Hallo Andi,

was wird zweimal ausgeführt? Wenn du das Private Sub oAppEvents_OnSaveDocument im ganzen meinst, dann ist das ok.
Um zu steuern ob etwas vor oder nach speichern gemacht werden soll gibt es kBefore unf kAfter. Der Event wird allerdings vor und nach dem Speichern ausgelöst, weil sonst kannst du ja kBefore und kAfter nicht auswerten.

Gruß
Reinhard

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

.Andi
Mitglied
Konstrukteur


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

Beiträge: 15
Registriert: 22.07.2008

HP xw 4600 Workstation
Intel(R) Core 2 Duo CPU
4GB RAM
NVIDIA Quadro FX 370
Treiber 6.14.11.6947
Windows XP, SP3
AutoCAD Inventor 2008 SP2

erstellt am: 03. Nov. 2008 10:08    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 RolandW 10 Unities + Antwort hilfreich

Hallo Reinhard

Entschuldige, hab Deine Antwort erst jetzt gesehen!

Eigentlich ist das ok. wenn bei allen geöffneten Dokumenten beim Speichern der Event ausgelöst wird.
Was sehr schlecht an der ganzen Sache ist :
Private Sub oAppEvents ist in jedem Dokument enthalten, also nicht irgendwo zentral gespeichert.
Was ist wenn Programmänderungen in den Subs gemacht werden müssen ?
Siehst Du da vielleicht eine Möglichkeit ??

Gruss Andi

------------------
Gruss

Andi ....

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

rtend12
Mitglied
Dipl.-Ing. (FH) Maschinenbau / Konstrukteur


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

Beiträge: 436
Registriert: 21.07.2004

Catia V5 (R16SP5, B18SP5)
VB.Net 2003

erstellt am: 03. Nov. 2008 20: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 RolandW 10 Unities + Antwort hilfreich

Hallo Andi,

hab beim Lesen übersehen, dass der Event im Dokumentenprojket steht. Das ist auf jeden Fall zu vermeiden, wie Du ja auch schon festgestellt hast. Es fängt beim Ändern an und hört bei Problemen beim Migrieren auf, weil der Code beim Abspeichern ja ausgeführt wird.
Die Lösung ist ein AddIn oder ein Klassenmodul.
AddIn kann nicht in VBA realisiert werden ist dafür aber automatisch geladen aktiv und deutlich sicherer in der Ausführung.
Klassenmodul kann man in VBA realisieren muß allerdings einmal manuell gestartet werden und wird beim Abbrechen des Debuggers beendet.

Gruß
Reinhard

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