PNG32 PNG32 PNG32 PNG32
PNG32
Forum Excel, VBA, VSTO, Exceltips, Excelhj�lp PNG32 drivs av Excelspecialisten    Logga in     English
PNG32
PNG32 PNG32
PNG32

Logga in

PNG32

Du är inte inloggad. Logga in eller registrera dig för att skriva inlägg eller svara på inlägg.

För frågor om forumet, kontakta oss på webmaster@excelforum.se

PNG32 PNG32
PNG32 PNG32
PNG32

Excelforum

PNG32

 
ForumForumDiskussionerDiskussionerVBAVBAOptionButtonsOptionButtons
Föregående Föregående
 
Nästa Nästa
Nytt inlägg
 2023-08-20 06:36
 

 Jag har tolv OptionButtons, en för varje månad. När man gjort sitt val vill jag släcka alla månader efter den valda (t ex juni) genom att sätta OptionButton7.Enabled=False och så vidare t o m OptionButton12. Hur gör man detta på enklaste sätt?

Nytt inlägg
 2023-08-20 08:44
 
 Ändrad av Gondi  på 2023-08-20 08:56:06

Hej short,

Använder du en VBA UserForm eller har du lagt in knapparna direkt i Excelarket?

Rent allmänt så är det enklare att använda sig av en drop-down lista istället för OptionButton om man bara ska kunna göra ett val ur en lista med alternativ.

Nytt inlägg
 2023-08-20 10:30
 

 Med utgångspunkt i valet i en dropdown-lista (t ex maj) vill jag påverka ett senare val av genom att omöjliggöra att man väljer en alternativknapp för senare månader (juni-dec). Ett tvåstegsval där val nr 2 beror på val nr 1. Knapparna har jag lagt in direkt i Excelarkaet.

Nytt inlägg
 2023-08-20 16:08
 
 Ändrad av Gondi  på 2023-08-20 16:08:32

Jag är med på ett ungefär hur du menar.

Kan du dela med dig av ett screenshot så förenklar det förståelsen väsentligt.

Tack på förhand.

Nytt inlägg
 2023-08-21 04:37
 

 

Jag har alltså tolv optionbuttons. Jag får en månad t ex augusti och då vill jag stänga av sep-dec. Jag har löst problemet på ett "osnyggt" sätt men letar efter att kunna se optionbuttons som en samling och skriva något i stil med "För alla optionButtons fr o m sep ska detta gälla". Som jag nu gjort blir det många kodrader.

Sub Ställ_in()

 

 

x = Range("Mån")

    Sheets("Blad1").Jan.Value = False

    Sheets("Blad1").Feb.Value = False

    Sheets("Blad1").Mars.Value = False

    Sheets("Blad1").April.Value = False

    Sheets("Blad1").Maj.Value = False

    Sheets("Blad1").Juni.Value = False

    Sheets("Blad1").Juli.Value = False

    Sheets("Blad1").Aug.Value = False

    Sheets("Blad1").Sep.Value = False

    Sheets("Blad1").Okt.Value = False

    Sheets("Blad1").Nov.Value = False

    Sheets("Blad1").Dec.Value = False

 

 

    Sheets("Blad1").Jan.Enabled = True

    Sheets("Blad1").Feb.Enabled = False

    Sheets("Blad1").Mars.Enabled = False

    Sheets("Blad1").April.Enabled = False

    Sheets("Blad1").Maj.Enabled = False

    Sheets("Blad1").Juni.Enabled = False

    Sheets("Blad1").Juli.Enabled = False

    Sheets("Blad1").Aug.Enabled = False

    Sheets("Blad1").Sep.Enabled = False

    Sheets("Blad1").Okt.Enabled = False

    Sheets("Blad1").Nov.Enabled = False

    Sheets("Blad1").Dec.Enabled = False

    

    

   If Range("månnr") = 1 Then Exit Sub Else

   

   If Range("månnr") >= 2 Then Sheets("Blad1").Feb.Enabled = True

   If Range("månnr") = 2 Then Exit Sub

   

   If Range("månnr") >= 3 Then Sheets("Blad1").Mars.Enabled = True

   If Range("månnr") = 3 Then Exit Sub

   

   If Range("månnr") >= 4 Then Sheets("Blad1").April.Enabled = True

   If Range("månnr") = 4 Then Exit Sub

   

   If Range("månnr") >= 5 Then Sheets("Blad1").Maj.Enabled = True

   If Range("månnr") = 5 Then Exit Sub

   

   If Range("månnr") >= 6 Then Sheets("Blad1").Juni.Enabled = True

   If Range("månnr") = 6 Then Exit Sub

   

   If Range("månnr") >= 7 Then Sheets("Blad1").Juli.Enabled = True

   If Range("månnr") = 7 Then Exit Sub

   

   If Range("månnr") >= 8 Then Sheets("Blad1").Aug.Enabled = True

   If Range("månnr") = 8 Then Exit Sub

   

   If Range("månnr") >= 9 Then Sheets("Blad1").Sep.Enabled = True

   If Range("månnr") = 9 Then Exit Sub

   

   If Range("månnr") >= 10 Then Sheets("Blad1").Okt.Enabled = True

   If Range("månnr") = 10 Then Exit Sub

   

   If Range("månnr") >= 11 Then Sheets("Blad1").Nov.Enabled = True

   If Range("månnr") = 11 Then Exit Sub

   

   If Range("månnr") >= 12 Then Sheets("Blad1").Dec.Enabled = True

   

       

End Sub

Nytt inlägg
 2023-08-21 16:07
 

Hej short och tack för den utförliga förklaringen!

Om du namnger dina OptionButtons med ett löpnummer på slutet istället för att kalla dem vid enbart namn kan man skriva en loop som åstadkommer det du eftersöker.

Jag har namngivit mina ActiveX-knappar OptionButton1 - OptionButton12 och skrivit följande enkla loop.

Sub Ställ_in()    

    Dim i As Integer

    For i = 12 To 1 Step -1

    ActiveSheet.OLEObjects("OptionButton" & i).Enabled = True

        If ActiveSheet.OLEObjects("OptionButton" & i).Object.Value = True Then

            Exit Sub

        Else

            ActiveSheet.OLEObjects("OptionButton" & i).Enabled = False

        End If

    Next i

End Sub

Nytt inlägg
 2023-08-28 11:15
 

 Tack det löste saken!

Föregående Föregående
 
Nästa Nästa
ForumForumDiskussionerDiskussionerVBAVBAOptionButtonsOptionButtons

PNG32 PNG32
Excelforum drivs av Excelspecialisten som bedriver utbildning i Excel och VBA, tillhandahåller support och hjälp med Excel, utvecklar program i Excel. Är ni i behov av en konsult inom Excel, VBA eller VSTO, eller söker en excelkurs, kontakta oss.
Copyright 2013 ExcelSpecialisten XLS AB   Användarvillkor  Personliga uppgifter