Tjena! Du kan loopa igenom dina optinbuttons. Kan tillägga att OptNamn1-3 borde bara vara OptNamn, lättare att loopa då Anledningen att dom har olika namn är att programet är till en avp2 mod's instälningar och vill enklet kunnde se vilken som är till vilken instälningn. Så här blir enklare men funkar likadant. Det blev nog lite snabbt och fel här ovan. Så här tror jag du vill ha det. Hej! Säger bara det, tack Åsa. Fungerade helt utmärkt.Hämta vald Optionbutton ur array
Håller nu på med ett program där jag har en massa OptionButtons.
Dom är uppdeleade i olika arrayer.
Till exemepel:
OptNamn1(0) OptNamn1(1) OptNamn1(2)
OptNamn2(0) OptNamn2(1) OptNamn2(2)
OptNamn3(0) OptNamn3(1) OptNamn3(2)
Det jag nu vill veta om man kan på ett enkelt sät ta reda på vilken av dessa har blivit vald, altså har Value = True.
Det enda sättet jag vet är genom:
<code: vb>
If OptNamn1(0).Value = True Then
'Gör något
Elseif OptNamn1(1),Value = True Then
'Gör något
Elseif OptNamn1(2).Value = True Then
'Gör något
End if
</code>
Tycker det borde finns någe enklare sätt än det.
Nån som vet?
Vore tacksam för hjälp...Sv: Hämta vald Optionbutton ur array
<code>
For i = 0 to "slut på Opt"
if OptNamn1(1).Value = Det som skall ske then
' gör något
end if
Next
</code>
Skriver ur skallen men något liknande bör funka,Sv:Hämta vald Optionbutton ur array
Sv: Hämta vald Optionbutton ur array
Ska kolla Anna's förslag.Sv:Hämta vald Optionbutton ur array
<code>
Private Sub OptName_Click(Index As Integer)
Select Case OptName(Index).Value
Case Is = True
'Gör något
End Select
'gör likadant på de 2 övriga.
End Sub
</code>Sv: Hämta vald Optionbutton ur array
Hur som helst tycker jag att du skall nästla dina 3 arrayer med Select Case Index och Value
<code>
Private Sub OptName_Click(Index As Integer)
Select Case Index
Case Is = 0
' Gör något
Case Is = 1
' Gör något
Case Is = 2
' Gör något
End Sub
</code>Sv: Hämta vald Optionbutton ur array
du kan använda en generell funktion för att returnera Index för den OptionButton som är vald. Det här exemplet returnerar -1 om det du skickar in inte är en ControlArray eller om ingen OptionButton i gruppen är vald.
Public Sub Test()
MsgBox GetValueFromOptionGroup(Me.OptNamn1)
End Sub
Public Function GetValueFromOptionGroup(ByRef rgrp As Object) As Long
Dim lIdx As Long
On Error GoTo GetValueFromOptionGroup_Err
lIdx = -1
For lIdx = rgrp.LBound To rgrp.UBound
If rgrp(lIdx).Value = True Then
GetValueFromOptionGroup = lIdx
Exit For
End If
Next lIdx
Exit Function
GetValueFromOptionGroup_Err:
GetValueFromOptionGroup = -1
End Function
Sv:Hämta vald Optionbutton ur array
Den enda förändringen jag gjorde var att jag gjorde så att functionen retunerade lIdx + 1 iställer för lIdx.
Detta för att modden inte kommer kunna förstå värdet 0 utan måste ha värde 1-3.
Detta är nu löst.
Tackar alla ypperligen.