Bonjour,
Ça, ça se passe en dehors (et en amont) de ta proc. CommandButton1).
La propriété Enabled du bouton doit être mise par défaut sur False (à la conception). Le bouton sera donc inactif à l'ouverture (et cela se voit).
Ton expression s sera définie lorsqu'un OptionButton de chaque Frame aura été cliqué, il te faut donc tester à chaque clic sur un OptionButton si un bouton de chaque Frame est à True...
Par exemple, tu définis une variable Integer Niveau module, mettons Enbl.
Clic sur un OptionButton de Frame1 : tu testes :
If Not 1 And Enbl Then Enbl = Enbl + 1
Pour Frame2, tu testeras :
If Not 2 And Enbl Then Enbl = Enbl + 2
Et pour Frame3 :
If Not 4 And Enbl Then Enbl = Enbl + 4
Et à la suite, pour les 3 :
If Enbl = 7 Then CommandButton1.Enabled = True
Cordialement.