Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor VBA
  Geschachtelte IF Anweisung

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:  Geschachtelte IF Anweisung (1913 mal gelesen)
Enduro
Mitglied
Wirtschaftsinformatik Studentin


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

Beiträge: 53
Registriert: 27.07.2012

Hallo Forum :-)
Win 7
Office 2007
Autodesk® Inventor® 2012

erstellt am: 31. Jul. 2012 14: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 Leute, bin neu hier... und hab eine Frage: Was mach ich falsch?? Bin in VBA ein Anfänger.. 

Set oDoc = ThisApplication.ActiveDocument

Dim iRev As String
iRev = "-"

' Get the user defined property set.
Dim oDocPropertySet As PropertySet
Set oDocPropertySet = oDoc.PropertySets.Item("Inventor User Defined Properties")

If oDoc.PropertySets("{D5CDD505-2E9C-101B-9397-08002B2CF9AE}").Item("Datum 1").Value = " " Then
iRev = "-"

    ElseIf oDoc.PropertySets("{D5CDD505-2E9C-101B-9397-08002B2CF9AE}").Item("Datum 1").Value <> " " And oDoc.PropertySets("{D5CDD505-2E9C-101B-9397-08002B2CF9AE}").Item("Datum 2").Value = " " Then
    iRev = oDoc.PropertySets("{D5CDD505-2E9C-101B-9397-08002B2CF9AE}").Item("Zust.1").Value

        ElseIf oDoc.PropertySets("{D5CDD505-2E9C-101B-9397-08002B2CF9AE}").Item("Datum 2").Value <> " " And oDoc.PropertySets("{D5CDD505-2E9C-101B-9397-08002B2CF9AE}").Item("Datum 3").Value = " " Then
        iRev = oDoc.PropertySets("{D5CDD505-2E9C-101B-9397-08002B2CF9AE}").Item("Zust.2").Value
   
            ElseIf oDoc.PropertySets("{D5CDD505-2E9C-101B-9397-08002B2CF9AE}").Item("Datum 3").Value <> " " And oDoc.PropertySets("{D5CDD505-2E9C-101B-9397-08002B2CF9AE}").Item("Datum 4").Value = " " Then
            iRev = oDoc.PropertySets("{D5CDD505-2E9C-101B-9397-08002B2CF9AE}").Item("Zust.3").Value
                   
                ElseIf oDoc.PropertySets("{D5CDD505-2E9C-101B-9397-08002B2CF9AE}").Item("Datum 4").Value <> " " And oDoc.PropertySets("{D5CDD505-2E9C-101B-9397-08002B2CF9AE}").Item("Datum 5").Value = " " Then
                iRev = oDoc.PropertySets("{D5CDD505-2E9C-101B-9397-08002B2CF9AE}").Item("Zust.4").Value
           
                    ElseIf oDoc.PropertySets("{D5CDD505-2E9C-101B-9397-08002B2CF9AE}").Item("Datum 5").Value <> " " And oDoc.PropertySets("{D5CDD505-2E9C-101B-9397-08002B2CF9AE}").Item("Datum 6").Value = " " Then
                    iRev = oDoc.PropertySets("{D5CDD505-2E9C-101B-9397-08002B2CF9AE}").Item("Zust.5").Value
           
                        ElseIf oDoc.PropertySets("{D5CDD505-2E9C-101B-9397-08002B2CF9AE}").Item("Datum 6").Value <> " " And oDoc.PropertySets("{D5CDD505-2E9C-101B-9397-08002B2CF9AE}").Item("Datum 7").Value = " " Then
                        iRev = oDoc.PropertySets("{D5CDD505-2E9C-101B-9397-08002B2CF9AE}").Item("Zust.6").Value
           
                            ElseIf oDoc.PropertySets("{D5CDD505-2E9C-101B-9397-08002B2CF9AE}").Item("Datum 7").Value <> " " And oDoc.PropertySets("{D5CDD505-2E9C-101B-9397-08002B2CF9AE}").Item("Datum 8").Value = " " Then
                            iRev = oDoc.PropertySets("{D5CDD505-2E9C-101B-9397-08002B2CF9AE}").Item("Zust.7").Value
           
                                ElseIf oDoc.PropertySets("{D5CDD505-2E9C-101B-9397-08002B2CF9AE}").Item("Datum 8").Value <> " " Then
                                iRev = oDoc.PropertySets("{D5CDD505-2E9C-101B-9397-08002B2CF9AE}").Item("Zust.8").Value
   

   
End If

Fehler: iRev bekommt den letzten Wert, also H

Viiiielen Dank und Grüße

[Diese Nachricht wurde von Enduro am 31. Jul. 2012 editiert.]

[Diese Nachricht wurde von Enduro am 31. Jul. 2012 editiert.]

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

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik




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

Beiträge: 2166
Registriert: 15.11.2006

Windows 10 x64, AIP 2022

erstellt am: 31. Jul. 2012 15: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 Enduro 10 Unities + Antwort hilfreich

Hallo

Wie lautet denn die Fehlermeldung? Gibt es alle der genannten iProps oder könnte es passieren, das der Wert eines iProps das gar nicht existiert abgefragt wird? Warum definierst du eine Variable oDocCustomPropertySet und nutzt sie dann nicht? Stattdessen schreibst du immer wieder oDoc.PropertySets("{D5CDD505-2E9C-101B-9397-08002B2CF9AE}") 

Code:
ElseIf oDoc.PropertySets("{D5CDD505-2E9C-101B-9397-08002B2CF9AE}").Item("Datum 1").Value <> "" And oDoc.PropertySets("{D5CDD505-2E9C-101B-9397-08002B2CF9AE}").Item("Datum 2").Value = Null Then

Ich glaub Value kann nicht Null werden bei einem String-iProp.

------------------
MfG
Ralf

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

Enduro
Mitglied
Wirtschaftsinformatik Studentin


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

Beiträge: 53
Registriert: 27.07.2012

Hallo Forum :-)
Win 7
Office 2007
Autodesk® Inventor® 2012

erstellt am: 31. Jul. 2012 15:17    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

stimmt das mit custemProp ist noch alt, hab abgeändert.

es geht um die Benutzerdefinierte iProps, die auf der Zeichnung in die Tabelle gemappt werden. Tabelle:

Datum 1 = 27.09.12
zust.1  =  A

Datum 2 = nichts
zust.2 = B

in diesem Fall ist iRev = A

also wenn die Zeichnung nach dem 27.09.12 geändert wurde steht in der Datum 2 ein Datum drin => also iRev bekommt B
wenn 27.09.12 Datum letze ist und danach nichts mehr geändert wurde, dann bekommt iRev den Wert A

die hat funktioniert. jetzt kommt keine fehlermeldung aber iRev bekommt ständig den Wert H (also den letzten Wert)

ich hoffe ich hab mich verständlich ausgedruckt...

Null kanns vlt nicht werden aber " " das glaub schon.. oder? wie kann ich sonst abfragen ob es ein wert dort steht oder nicht?

Vielen Dank und Grüße


[Diese Nachricht wurde von Enduro am 31. Jul. 2012 editiert.]

[Diese Nachricht wurde von Enduro am 31. Jul. 2012 editiert.]

[Diese Nachricht wurde von Enduro am 31. Jul. 2012 editiert.]

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

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik




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

Beiträge: 2166
Registriert: 15.11.2006

Windows 10 x64, AIP 2022

erstellt am: 31. Jul. 2012 15:49    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 Enduro 10 Unities + Antwort hilfreich

Hallo

Ich brauch auch schon'ne Brille. Du prüfst überall ob in dem iProp ein Leerzeichen drin ist, nicht ob nichts drin steht. Nimm das Leerzeichen zwischen den Hochkommata heraus und dann sollte das laufen.

------------------
MfG
Ralf

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

Enduro
Mitglied
Wirtschaftsinformatik Studentin


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

Beiträge: 53
Registriert: 27.07.2012

Hallo Forum :-)
Win 7
Office 2007
Autodesk® Inventor® 2012

erstellt am: 31. Jul. 2012 15:54    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 Ralf,

ja es funktioniert! Vieeeeeelen vieeeelen Dank!

Grüße
Endu

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

Enduro
Mitglied
Wirtschaftsinformatik Studentin


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

Beiträge: 53
Registriert: 27.07.2012

Hallo Forum :-)
Win 7
Office 2007
Autodesk® Inventor® 2012

erstellt am: 31. Jul. 2012 16:09    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

Noch ein kleines Problem:

es läuft super so, auch wenn ich weiteres Datum einfüge bekomme ich auch die richtige Revisionsnummer.

sobald ich aber ein letztes Datum lösche - aktualisiert es sich nicht und bleibt bei altem Rev Nummer.

kann ich irgendwie dem If Schleife sagen, der soll immer neu starten? Ich habe auch schon Google Suche verwendet und außer Grundlagen bekomme ich da nicht viel..

Viele Grüße und sorry für mein Deutsch  

[Diese Nachricht wurde von Enduro am 31. Jul. 2012 editiert.]

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

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik




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

Beiträge: 2166
Registriert: 15.11.2006

Windows 10 x64, AIP 2022

erstellt am: 31. Jul. 2012 16:43    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 Enduro 10 Unities + Antwort hilfreich

Hallo

Dazu gibt es zwei Möglichkeiten. Entweder du startest dein Makro nach einer Änderung erneut von Hand oder du mußt ein Eventhandling einbauen. Das ist mit VBA aber schwierig. Wenn dein Makro nicht allzu umfangreich ist, schau dir mal iLogic an. Dort sind solche Ereignisauslöser bereits eingebaut. Du wirst deinen Code aber dafür anpassen müssen.

Falls du durch Zufall für VBA über die AutoSave-Makros stolperst - lass es.

------------------
MfG
Ralf

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

Enduro
Mitglied
Wirtschaftsinformatik Studentin


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

Beiträge: 53
Registriert: 27.07.2012

Hallo Forum :-)
Win 7
Office 2007
Autodesk® Inventor® 2012

erstellt am: 31. Jul. 2012 17: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

Alles klar, vielen Dank für den Hinweis!

Grüße
Endu

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