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.