Private Sub CommandButton1_Click() 'bouton "Masquer/Afficher"
Dim li As Byte 'déclare la variable li (LIgne)
Dim col As Byte 'déclare la variable col (COLonne)
Dim test As Boolean 'déclare la variable test
Range("A1").Select 'enlève le focus au bouton
If Me.CommandButton1.Caption = "Afficher" Then 'si le texte du bouton est "Afficher"
ActiveSheet.Rows.Hidden = False 'affiche toutes les lignes
ActiveSheet.Columns.Hidden = False 'affiche toutes les colonnes
Me.CommandButton1.Caption = "Masquer" 'modifie le texte du bouton
Me.CommandButton1.Accelerator = "M" 'modifie le raccourci clavier du bouton
Else 'sinon (si le texte du bouton est "Masquer")
For li = 2 To 6 'boucle sur les lignes 2 à 6
'condition : si le nombre de valeurs des colonne B à L de la ligne est égal à zéro
If Application.WorksheetFunction.CountA(Range(Cells(li, 2), Cells(li, 12))) = 0 Then
Rows(li).Hidden = True 'masque la ligne
test = True 'définit la variable test
End If 'fin de la condition
Next li 'prochaine ligne de la boucle
For col = 2 To 12 'boucle sur les colonnes B à L
'condition : si le nombre de valeurs des lignes 2 à 6 de la colonne est égal à zéro
If Application.WorksheetFunction.CountA(Range(Cells(2, col), Cells(6, col))) = 0 Then
Columns(col).Hidden = True 'masque la colonne
test = True 'définit la variable test
End If 'fin de la condition
Next col 'prochaine colonne de la boucle
If test = True Then 'si test est vrai
Me.CommandButton1.Caption = "Afficher" 'modifie le texte du bouton
Me.CommandButton1.Accelerator = "A" 'modifie le raccourci clavier du bouton
End If 'fin de la condition
End If
End Sub