Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor VBA
  Maßstäbe auslesen

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:  Maßstäbe auslesen (2647 mal gelesen)
axi92
Mitglied
Konstrukteur


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

Beiträge: 685
Registriert: 20.02.2010

Inventor 2014 64bit SP2
Vault Basic 2014 64bit SP1
HP Z200
Win 7 64bit
16GB RAM
CPU: i5 3,2GHz
GPU: Nvidia Quadro K600

erstellt am: 02. Apr. 2014 13:46    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

Hat jemand ein Schnippsel oder eine Hilfestellung wie man alle Maßstäbe der Ansichten auf dem aktuellen Blatt auslesen kann?
Würde das dann gerne in ein Dropdown packen.

------------------
Grüße aus Wien
Philipp
http://black-evolution.de/

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

RolandD
Mitglied



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

Beiträge: 533
Registriert: 07.01.2005

i7-9700k
32GB DDR4-RAM
Nvidia RTX 2060
SSD 970 m.2
Win10-64 (21H2)
AIP 2020.3
Dell U3417W

erstellt am: 02. Apr. 2014 18:10    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 axi92 10 Unities + Antwort hilfreich

Hallo Philipp,

Such in der API nach DrawingView Object

versuch mal:

Code:
MainScale = oDoc.ActiveSheet.DrawingViews(1).Scale 'Hauptmaßstab der 1. Ansicht

For i = 1 To oDoc.ActiveSheet.DrawingViews.Count
  IDW_Scale = oDoc.ActiveSheet.DrawingViews(i).Scale
  MsgBox "Maßstab: " + IDW_Scale
Next i



------------------
Gruß Roland

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

axi92
Mitglied
Konstrukteur


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

Beiträge: 685
Registriert: 20.02.2010

Inventor 2014 64bit SP2
Vault Basic 2014 64bit SP1
HP Z200
Win 7 64bit
16GB RAM
CPU: i5 3,2GHz
GPU: Nvidia Quadro K600

erstellt am: 03. Apr. 2014 07:59    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

Kann ich den Scale statt 0,1 auch in 1:10 auslesen lassen oder ist das nicht möglich?
Bzw müsste ich das händisch mittels Switch oder so abchecken?

------------------
Grüße aus Wien
Philipp
http://black-evolution.de/

[Diese Nachricht wurde von axi92 am 03. Apr. 2014 editiert.]

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

RolandD
Mitglied



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

Beiträge: 533
Registriert: 07.01.2005

i7-9700k
32GB DDR4-RAM
Nvidia RTX 2060
SSD 970 m.2
Win10-64 (21H2)
AIP 2020.3
Dell U3417W

erstellt am: 03. Apr. 2014 09: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 axi92 10 Unities + Antwort hilfreich

Hallo,

Ich nutze dazu eine Formatierung:

Code:
Private Function FormatScale(ByVal S As Double) As String
  If S >= 1 Then
      FormatScale = Format(S, "0") + ":1"
  Else
      FormatScale = "1:" + Format(1 / S, "0")
  End If
End Function


------------------
Gruß Roland

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

axi92
Mitglied
Konstrukteur


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

Beiträge: 685
Registriert: 20.02.2010

Inventor 2014 64bit SP2
Vault Basic 2014 64bit SP1
HP Z200
Win 7 64bit
16GB RAM
CPU: i5 3,2GHz
GPU: Nvidia Quadro K600

erstellt am: 03. Apr. 2014 09:50    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

Super danke =)
Gibt es auch einen einfachen Weg doppelte Einträge zu vermeiden?
Weil ich lasse es ja in einer ComboBox auflisten und jz habe ich 3 mal 1:10 drinnen^^

------------------
Grüße aus Wien
Philipp
http://black-evolution.de/

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

RolandD
Mitglied



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

Beiträge: 533
Registriert: 07.01.2005

i7-9700k
32GB DDR4-RAM
Nvidia RTX 2060
SSD 970 m.2
Win10-64 (21H2)
AIP 2020.3
Dell U3417W

erstellt am: 03. Apr. 2014 17:47    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 axi92 10 Unities + Antwort hilfreich

Logisch...

Alle vorhandenen Maßstäbe als String in eine Liste.
Dabei immer nur den aktuellen dazuschreiben, wenn er nicht schon vorhanden ist.

Wozu brauchst du eigentlich die Liste der Maßstäbe? Dropdown - schon klar.
Aber wozu das Dropdown 
Ich habe vor langer Zeit mal ein Makro z.T. aus dem Forum und z.T. aus den Beispielen der API
übernommen, das den Hauptmaßstab und in Klammern () die "NebenMaßstäbe" in ein Benutzer iProp schreibt.
Das zeige ich dann im Schriftfeld an.

Die Aktualisierung mache ich immer direkt vor dem Drucken (PDF drucke ich über PDF-Drucker)
Außerdem Plotdatum mit Datum und Uhrzeit.

Edit: Ich krieg's nicht gebacken mit den Smileys

------------------
Gruß Roland

[Diese Nachricht wurde von RolandD am 03. Apr. 2014 editiert.]

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

axi92
Mitglied
Konstrukteur


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

Beiträge: 685
Registriert: 20.02.2010

Inventor 2014 64bit SP2
Vault Basic 2014 64bit SP1
HP Z200
Win 7 64bit
16GB RAM
CPU: i5 3,2GHz
GPU: Nvidia Quadro K600

erstellt am: 03. Apr. 2014 18:25    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

Und wie immer nur hinzufügen wenn er nicht schon vorhanden ist?^^

Ok den hauptmaßstab aber welcher ist der?
Die erste ansicht ist es nicht immer zu 95% zwar schon aber halt nicht immer bis jetzt haben wir es händisch reingeschrieben.
Meist haben wir auchnoch eine kleine 3d ansicht ineiner ecke wenn man die als erstes platziert kann man das ja nicht mehr nach der regel auslesen lassen darum das dropdown damit ich dann auswählen kann welcher der rchtige ist.
In 99% der fälle sind eh nur 2 maßstäbe in der liste hauptansicht und 3d manchmaö dann noch ein detail.

------------------
Grüße aus Wien
Philipp
http://black-evolution.de/

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

SEHER
Mitglied
Systemanalytiker


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

Beiträge: 1203
Registriert: 13.03.2001

erstellt am: 04. Apr. 2014 10: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 axi92 10 Unities + Antwort hilfreich


Zitat:
Meist haben wir auchnoch eine kleine 3d ansicht ineiner ecke wenn man die als erstes platziert kann man das ja nicht mehr nach der regel auslesen lassen ...

Spätestens in diesem Fall hast Du auch ein Problem beim DWG/DXF Export!

------------------
Gruß
SEHER
www.inventor-tools.de

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

axi92
Mitglied
Konstrukteur


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

Beiträge: 685
Registriert: 20.02.2010

Inventor 2014 64bit SP2
Vault Basic 2014 64bit SP1
HP Z200
Win 7 64bit
16GB RAM
CPU: i5 3,2GHz
GPU: Nvidia Quadro K600

erstellt am: 07. Apr. 2014 09: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

Wieso das wo liegt das Problem?
Und wie kann ich prüfen ob der neue Maßstab nicht schon in der Liste ist?
------------------
Grüße aus Wien
Philipp
http://black-evolution.de/

[Diese Nachricht wurde von axi92 am 07. Apr. 2014 editiert.]

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

RolandD
Mitglied



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

Beiträge: 533
Registriert: 07.01.2005

i7-9700k
32GB DDR4-RAM
Nvidia RTX 2060
SSD 970 m.2
Win10-64 (21H2)
AIP 2020.3
Dell U3417W

erstellt am: 07. Apr. 2014 21: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 Nur für axi92 10 Unities + Antwort hilfreich

Hallo,

Die Probleme liegen darin, dass für den Export zu DXF der Maßstab der 1. Ansicht genommen wird.
Die "kleine 3D-Ansicht" macht da also Probleme, da der Maßstab der GESAMTEN DXF davon abhängt!
In so einem Falle lösche ich die 3D-Ansicht und erstelle sie neu.
Dadurch hat die DXF einen richtigen Maßstab, den ich über die Erstansicht beeinflussen kann.

Zur Überprüfung, ob schon vorhanden:

Code:
'Nur bisher nicht vorhandene actual_Scale in die ScaleListe eintragen
For each Scale in ScaleListe    'bisherige Liste
   If actual_Scale = Scale Then  'dann ist er schon vorhanden
     actual_Scale = 0            ' 0 setzen
     Exit For
   EndIf
Next Scale
If actual_Scale <> 0 Then ScaleListe.add(FormatScale(actual_Scale))


Syntax habe ich nicht geprüft, ist nur aus dem Kopf geschrieben..

------------------
Gruß Roland

[Diese Nachricht wurde von RolandD am 07. Apr. 2014 editiert.]

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

axi92
Mitglied
Konstrukteur


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

Beiträge: 685
Registriert: 20.02.2010

Inventor 2014 64bit SP2
Vault Basic 2014 64bit SP1
HP Z200
Win 7 64bit
16GB RAM
CPU: i5 3,2GHz
GPU: Nvidia Quadro K600

erstellt am: 14. Apr. 2014 08:14    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


blickenichtmehrdurch.png

 
Ich blicke jetzt nicht mehr durch irgendwie erkennt er das nicht als Array an oder?

Code:

Public Sub GetScale()
    Set oDoc = ThisApplication.ActiveDocument
    Dim IDW_Scale As Double
    UserForm1.ComboBox2.Clear
    For i = 1 To oDoc.ActiveSheet.DrawingViews.Count
        IDW_Scale = oDoc.ActiveSheet.DrawingViews(i).Scale
        MsgBox ("Maßstab: " & FormatScale(IDW_Scale))
    Next i
    On Error Resume Next
    'Nur bisher nicht vorhandene actual_Scale in die ScaleListe eintragen
    For Each IDWScale In IDW_Scale  'bisherige Liste
      If actual_Scale = IDWScale Then  'dann ist er schon vorhanden
        actual_Scale = 0            ' 0 setzen
        Exit For
      End If
    Next IDWScale
    If actual_Scale <> 0 Then ScaleListe.Add (FormatScale(actual_Scale))
End Sub


------------------
Grüße aus Wien
Philipp
http://black-evolution.de/

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

RolandD
Mitglied



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

Beiträge: 533
Registriert: 07.01.2005

i7-9700k
32GB DDR4-RAM
Nvidia RTX 2060
SSD 970 m.2
Win10-64 (21H2)
AIP 2020.3
Dell U3417W

erstellt am: 14. Apr. 2014 13:18    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 axi92 10 Unities + Antwort hilfreich

Kann ja auch nicht anders sein, du definierst IDW_Scale als Double:
Code:

Public Sub GetScale()
    Set oDoc = ThisApplication.ActiveDocument
    Dim IDW_Scale As Double
    UserForm1.ComboBox2.Clear

Aber dir fehlt noch die Scale_Liste in die du die gefundenen Maßstäbe einträgst. Mit der musst du vergleichen

------------------
Gruß Roland

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

axi92
Mitglied
Konstrukteur


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

Beiträge: 685
Registriert: 20.02.2010

Inventor 2014 64bit SP2
Vault Basic 2014 64bit SP1
HP Z200
Win 7 64bit
16GB RAM
CPU: i5 3,2GHz
GPU: Nvidia Quadro K600

erstellt am: 14. Apr. 2014 14: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

Und als was muss ich es definieren?
Ich brauch doch ein Array oder?

Code:

Public Sub GetScale()
    Set oDoc = ThisApplication.ActiveDocument
    Dim IDW_Scale
    IDW_Scale = Array()
    UserForm1.ComboBox2.Clear
    For i = 1 To oDoc.ActiveSheet.DrawingViews.Count
        IDW_Scale(i) = oDoc.ActiveSheet.DrawingViews(i).Scale 'Als Fehlermeldung kommt: Subscript out of range
        MsgBox ("Maßstab: " & FormatScale(IDW_Scale(i)))
    Next i
    On Error Resume Next
    'Nur bisher nicht vorhandene actual_Scale in die ScaleListe eintragen
    For Each IDWScale In IDW_Scale   'bisherige Liste
        MsgBox ("For Each IDWScale: " & actual_Scale)
       If actual_Scale = IDWScale Then  'dann ist er schon vorhanden
         actual_Scale = 0            ' 0 setzen
         Exit For
       End If
    If actual_Scale <> 0 Then ComboBox2.AddItem (FormatScale(actual_Scale))
    Next IDWScale

    'If actual_Scale <> 0 Then ComboBox2.AddItem (FormatScale(actual_Scale))
End Sub


------------------
Grüße aus Wien
Philipp
http://black-evolution.de/

[Diese Nachricht wurde von axi92 am 14. Apr. 2014 editiert.]

[Diese Nachricht wurde von axi92 am 14. Apr. 2014 editiert.]

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

axi92
Mitglied
Konstrukteur


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

Beiträge: 685
Registriert: 20.02.2010

Inventor 2014 64bit SP2
Vault Basic 2014 64bit SP1
HP Z200
Win 7 64bit
16GB RAM
CPU: i5 3,2GHz
GPU: Nvidia Quadro K600

erstellt am: 25. Apr. 2014 12:57    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

Kann mir da bitte jemand helfen?

------------------
Grüße aus Wien
Philipp
http://black-evolution.de/

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: 25. Apr. 2014 21: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 Nur für axi92 10 Unities + Antwort hilfreich

Hallo

Meines Wissens stehen die Masstäbe als Double im Property Scale. Aber du willst doch in der zweiten Schleife prüfen ob der Maßstab der aktuellen Ansicht in deinem Dropdown ScaleList schon enthalten ist. Der Codeschnipsel wird vermutlich nicht lauffähig sein, da ich nicht weiß in welchem Format die Einträge in ScaleList sind. Wahrscheinlich müssen die Einträge vorher konvertiert werden.

Code:
For Each IDWScale In IDW_Scale  '<--- IDW_Scale ersetzen durch ScaleListe ?!?!?

      If actual_Scale = IDWScale Then  'dann ist er schon vorhanden
        actual_Scale = 0            ' 0 setzen
        Exit For
      End If
    Next IDWScale
    If actual_Scale <> 0 Then ScaleListe.Add (FormatScale(actual_Scale))


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

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

axi92
Mitglied
Konstrukteur


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

Beiträge: 685
Registriert: 20.02.2010

Inventor 2014 64bit SP2
Vault Basic 2014 64bit SP1
HP Z200
Win 7 64bit
16GB RAM
CPU: i5 3,2GHz
GPU: Nvidia Quadro K600

erstellt am: 30. Apr. 2014 15:41    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

Ich verstehs nicht und was ist jetzt actual_Scale?
In PHP arbeitet man mit Arrays und benutzt array_unique() somit gibt es keine Doppelten in dem Array geht das hier nicht irgendwie auch so?
------------------
Grüße aus Wien
Philipp
http://black-evolution.de/

[Diese Nachricht wurde von axi92 am 30. Apr. 2014 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: 01. Mai. 2014 07: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 Nur für axi92 10 Unities + Antwort hilfreich

Moin

Dann schau bitte mal nach seit wann VBA von Microsoft nicht mehr weiterentwickelt wird. Das beanwortet dir die Frage warum so viele Methoden anderer Sprachen nicht enthalten sind.

Was actual_Scale ist bzw. sein soll mußt du uns sagen. Es ist dein Code. Wenn das als Public Property sonst wo definiert ist, woher sollen wir das wissen?

Noch ein Tip, nutze "Option explicit". Dann fallen undeklarierte Variablen auf. Und lass die Finger von "On Error Resume Next".

Zerlege deinen Code in kleine, überschaubare Funktionen. Das ist im ersten Moment etwas mehr Aufwand, aber wenn du in einem halben Jahr wieder drauf schaust, weißt du warum du dir die Arbeit gemacht hast. Ich würd's so versuchen.

Code:
Public Sub Traverse_DrawingSheets()

Dim oSheet As Sheet
Dim oDrawDoc As DrawingDocument

Set oDrawDoc = ThisApplication.ActiveDocument

For Each oSheet In oDrawDoc.Sheets
    Call Traverse_DrawingViews(oSheet)
Next

End Sub

Public Sub Traverse_DrawingViews()

Dim oDrawingView As DrawingView

For Each oDrawingView In oSheet
    Call actual_Scale(oDrawingView.Scale)
Next

End Sub


Public Sub GetScale(ByVal actual_Scale As Double)
   
    Dim IDWScale As String
   
    UserForm1.ComboBox2.Clear
   
    For Each IDWScale In UserForm1.ComboBox2
      If actual_Scale = IDWScale Then  'dann ist er schon vorhanden
        actual_Scale = 0            ' 0 setzen
        Exit For
      End If
    Next IDWScale
   
    If actual_Scale <> 0 Then ComboBox2.AddItem (FormatScale(actual_Scale))
End Sub


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

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