Sub hzonemasq(control As IRibbonControl, pressed As Boolean)
If control.ID = "msqcol1" Then
Sheets("Bilan").Columns("E:E").EntireColumn.Hidden = pressed
End If
End Sub
Sub hzonemasq(control As IRibbonControl, pressed As Boolean)
If control.ID = "msqcol1" Then
Sheets("Bilan").Columns("E:E").EntireColumn.Hidden = Not pressed
End If
End Sub
L'argument pressed.
Exemple : Sub ____OnAction(control As IRibbonControl, pressed As Boolean)
Cet argument renvoie la valeur Vrai si le contrôle est coché (pour les checkBox) ou si la touche est enfoncée (pour les toggleButton). La valeur Faux est renvoyée dans le cas contraire.
Sub hzonemasq(control As IRibbonControl, pressed As Boolean) debug.print "Bouton : " & control.ID debug.print "pressed = " & pressed 'On regarde ce que vaut control.ID .... SELECT CASE control.ID CASE "msqcol1" debug.print "bouton msqcol1" Sheets("Bilan").Columns("E:E").EntireColumn.Hidden = pressed CASE "msqcol2" debug.print "bouton msqcol2" Sheets("Bilan").Columns("F:F").EntireColumn.Hidden = pressed CASE else debug.print "Autre bouton" END SELECT End Sub
Sub hzonemasq(control As IRibbonControl, pressed As Boolean) 'On regarde ce que vaut control.ID .... SELECT CASE control.ID CASE "msqcol1" debug.print "bouton msqcol1 => " & control.value If control.value = True Then debug.print(" On Masque la colonne E") Sheets("Bilan").Columns("E:E").EntireColumn.Hidden = True Else debug.print(" On Affiche la colonne E") Sheets("Bilan").Columns("E:E").EntireColumn.Hidden = False End If CASE "msqcol2" debug.print "bouton msqcol1 => " & control.value If control.value = True Then debug.print(" On Masque la colonne F") Sheets("Bilan").Columns("F:F").EntireColumn.Hidden = True Else debug.print(" On Affiche la colonne F") Sheets("Bilan").Columns("F:F").EntireColumn.Hidden = False End If CASE else debug.print "Autre bouton" END SELECT 'MsgBox control.ID & vbCrLf & pressed End Sub
cependant je crois comprendre qu'avec les cases à cocher il vaux mieux utiliser la fonction "SelectCase" que "If...Then" ?Ah non aucun rapport.... c'est juste que lorsque tu veux tester UNE VARIABLE qui peut avoir plusieurs Valeurs... ( ici... control.ID peut correspondre à ton bouton 1 ou ton bouton 2 ou ....) il est plus simple d'utiliser le SELECT CASE.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionDebug.Print "bouton msqcol1 => " & control.Value
Private Sub CheckBox1_Click()Nota : on aurait pu créer un groupe de contrôles, mais pas vraiment utile pour seulement 3 checkboxes
toto CheckBox1
End Sub
Private Sub CheckBox2_Click()
toto CheckBox2
End Sub
Private Sub CheckBox3_Click()
toto CheckBox3
End Sub
Private Sub toto(c As Object)
Dim co As Range
Set co = Columns(Val(Right(c.Name, 1) + 4))
If c.Value Then
co.Hidden = True
Else
co.Hidden = False
End If
End Sub