Bonsoir Siga,
Option Explicit
Private Sub réini(FX$)
Dim dlig&
With Worksheets(FX) 'sur la feuille FX
'dlig : dernière ligne utilisée, selon la colonne B
dlig = .Cells(Rows.Count, 2).End(xlUp).Row
If dlig > 17 Then
.Unprotect 'déprotège la feuille FX
.Range("A18:K" & dlig).ClearContents
.Protect 'reprotège la feuille FX
End If
End With
End Sub
Sub réini1_Cliquer()
réini "AK1C2"
End Sub
quand tu cliques sur ton bouton fléché C2, ça lance la macro réini1_Cliquer() ; cette sub appelle alors la sub privée réini() en lui envoyant le texte "AK1C2" ; ce texte est le nom de la feuille sur laquelle ça va agir, et ce texte est mis dans la variable FX.
tout le travail est fait dans le bloc With Worksheets(FX)
.. End With
; et cela pour la feuille FX.
détection de la dernière ligne utilisée, selon la colonne B ; note que si le tableau est vide : dlig = 17 ➯ on fait rien du tout
si y'a au moins une ligne de données dans le tableau, on fait ce qui est dans le bloc If
.. End If
exemple : si y'a 3 lignes, dlig = 20, donc :
* on déprotège la feuille (tu devras compléter le code VBA avec ton mot de passe)
* sur la feuille FX, on efface A18:K20 (contenu seulement, sans toucher à la mise en forme)
* on protège la feuille (tu devras compléter le code VBA avec ton mot de passe)
Sub réini2_Cliquer()
réini "AK1C6"
End Sub
Sub réini3_Cliquer()
réini "AK1C7"
End Sub
* la sub réini2_Cliquer() fait la même chose pour la feuille "AK1C6"
* la sub réini3_Cliquer() fait la même chose pour la feuille "AK1C7"
Sub Réinigé_Cliquer()
réini "AK1C2": réini "AK1C6": réini "AK1C7"
End Sub
la sub Réinigé_Cliquer() fait successivement la même chose
pour chacune des 3 feuilles "AK1C2" ; "AK1C6" ; "AK1C7"
ainsi, c'est la sub privée réini() qui fait tout le travail ; elle n'est jamais appelée directement par l'utilisateur, seulement par les autres subs (et via les boutons de ta feuille "MENU").
dhany