| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
 | PNY wird von NVIDIA zum Händler des Jahres gewählt – zum dritten Mal in Folge, eine Pressemitteilung
|
Autor
|
Thema: Geschachtelte IF Anweisung (1995 mal gelesen)
|
Enduro Mitglied Wirtschaftsinformatik Studentin

 Beiträge: 53 Registriert: 27.07.2012 Hallo Forum :-) Win 7 Office 2007 Autodesk® Inventor® 2012
|
erstellt am: 31. Jul. 2012 14:56 <-- editieren / zitieren --> Unities abgeben:         
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
      

 Beiträge: 2788 Registriert: 15.11.2006 Windows 10 x64, AIP 2020-2025
|
erstellt am: 31. Jul. 2012 15:07 <-- editieren / zitieren --> Unities abgeben:          Nur für Enduro
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

 Beiträge: 53 Registriert: 27.07.2012 Hallo Forum :-) Win 7 Office 2007 Autodesk® Inventor® 2012
|
erstellt am: 31. Jul. 2012 15:17 <-- editieren / zitieren --> Unities abgeben:         
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
      

 Beiträge: 2788 Registriert: 15.11.2006 Windows 10 x64, AIP 2020-2025
|
erstellt am: 31. Jul. 2012 15:49 <-- editieren / zitieren --> Unities abgeben:          Nur für Enduro
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

 Beiträge: 53 Registriert: 27.07.2012 Hallo Forum :-) Win 7 Office 2007 Autodesk® Inventor® 2012
|
erstellt am: 31. Jul. 2012 15:54 <-- editieren / zitieren --> Unities abgeben:         
|
Enduro Mitglied Wirtschaftsinformatik Studentin

 Beiträge: 53 Registriert: 27.07.2012 Hallo Forum :-) Win 7 Office 2007 Autodesk® Inventor® 2012
|
erstellt am: 31. Jul. 2012 16:09 <-- editieren / zitieren --> Unities abgeben:         
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
      

 Beiträge: 2788 Registriert: 15.11.2006 Windows 10 x64, AIP 2020-2025
|
erstellt am: 31. Jul. 2012 16:43 <-- editieren / zitieren --> Unities abgeben:          Nur für Enduro
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

 Beiträge: 53 Registriert: 27.07.2012 Hallo Forum :-) Win 7 Office 2007 Autodesk® Inventor® 2012
|
erstellt am: 31. Jul. 2012 17:01 <-- editieren / zitieren --> Unities abgeben:         
|