Userform macro SolidWorks

Hallo

Ik heb een hele reeks opties om in te stellen op SolidWorks met behulp van macro's zoals:

- een Ø2 boring op zo'n positie van de bovenkant van mijn onderdeel

- een sleuf voor een schroevendraaier

- een groef voor pakking

-enz...

In totaal heb ik er 20 inclusief de optie "geen opties"

En ik wilde weten hoe ik het moest doen, of ik de functies If en ElsIf voor elke optie moet gebruiken of dat er andere methoden zijn?

Bij voorbaat dank voor uw antwoorden

Hallo

Als ik het goed begrijp, zijn dit selectievakjes, dus ja, je zult te maken krijgen met als/anders of selecteer hoofdletters (de tweede is sneller, maar van mijn kant heb ik nooit problemen gehad met als/anders).

Het hangt immers allemaal af van wat u precies wilt doen (de vakjes aanvinken, incompatibiliteit naar keuze...)

3 likes

In mijn gebruikersformulier heb ik een Listbox gemaakt waar we hebben:

U "00" -> geen opties

U "01" -> boren Ø2

U "02" -> groef voor pakking

... tot de 21e

Dus ik merk op:

"Als U = (optienummer) Dan" OF "Als U "00" selecteer Dan"

Ik weet niet precies hoe ik te werk moet gaan met deze functie

Ik geef de voorkeur aan Cyril.f, voor mijn gebruik van een Select Case (equivalent van een Switch in andere talen, zoals PHP, Java, enz.)

Hier is een verwerking voorbeeldcode (ik heb een volledige macro voor het voorbeeld als een bijgevoegd bestand):

Privé Sub BtValid_Click()
    'We doen een behandeling op de waarde
    Selecteer Case ComboBox.Value
        Vak "U1":
            MsgBox "Ik doe een behandeling op U1"
        Vak "U2":
            MsgBox "Ik geef U2 weer"
        Vak "U3":
            MsgBox "Ik ben U3"
        Geval anders
            MsgBox "Standaard verwerking op waarde" & ComboBox.Value
    Einde selecteren
Einde Sub

 

Edit: Merk op dat ik alleen de verwerking op de U1, U2 en U3 waarden, alle andere waarden zal de "Case Else".


voorbeeld.swp
1 like

Dat is niet precies wat ik wil doen, ik gebruik liever de if- en else-functies.

Ik wil graag dat mijn macro bijvoorbeeld het volgende heeft:

Als het U14-vierkant is geselecteerd, neem dan dat en dat vlak, maak een cirkel van die en die Ø, enz enz

Ik weet alleen niet hoe ik dat in een vba-taal moet zeggen en dat is alles wat ik nodig heb

>Als het U14-vierkant is geselecteerd, neem dan dat en dat vlak, maak een cirkel van die en die Ø enz enz

Nou, je kunt het hier doen:

Vak "U1":
     'Hier doe je je behandeling, neem dit vliegtuig, maak een cirkel van die en die Ø
Vak "U2":
     Behandeling voor U2

Dit komt overeen met:

Als ComboBox.Value = "U1" dan
   Behandeling voor U1
elseif combobox.value = "u2" dan
  Behandeling voor U2

Endif

 

De eerste oplossing die ik gaf is gewoon korter.