Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Répétition de macro pour Checkbox

2 réponses
Avatar
pjoel
Bonsoir à tous et toutes.

Je vais essayer de présenter mon problème simplement :
J'ai une liste de 18 Checkbox (nommées Case1 à Case18) que j'ai placé dans
les cellules A1 à A18 sur ma feuille Excel à partir de la barre d'outils
"Formulaire". Chaque Checkbox me permet de rendre la cellule respectivement
adjacente (B1 à B18) protégée ou pas suivant que la case soit cochée ou non.
Les cellules liées à chaque Checkbox sont en C1 à C18.
Pour le moment, j'ai une macro pour chaque Checkbox (donc 18 fois la même)
qui fonctionnent très bien mais j'aimerais simplifier tout ça pour n'en
faire qu'une. Suivant la case qu'on coche, elle déduit toute seule la ligne
correspondante à protéger.
J'espère avoir été clair dans mes explications. Merci pour votre aide.

Joël. :-)

Voici mon code pour la Checkbox "Case1" qui protège la cellule B1 si la case
est cochée.
Sub Protection()
If Range("C1") = True Then Range("B1").Locked = True Else
Range("B1").Locked = False
End Sub

2 réponses

Avatar
Denis Michon
Bonjour pjoel,


Copie cette procédure dans un module standard :

Tu dois adapter le nom de la feuille de la procédure au nom de la feuille de ton projet où sont tes cases à cocher.

à l'aide du menu contextuel lorsque tu cliques sur tes case à cocher, tu leur affectes à tour de rôle la même macro et
cela devrait être suffisant !

'-----------------------------
Sub Protection()

Dim A As String, Rg As Range
A = Application.Caller

Set Rg = Range(Worksheets("Feuil3").Shapes(A).OLEFormat.Object.LinkedCell)
If Not Rg Is Nothing Then
If Rg.Value = -1 Then
Rg.Locked = True
Else
Rg.Locked = False
End If
End If

End Sub
'-----------------------------


Salutations!



"pjoel" a écrit dans le message de news:3fb67cf5$0$9182$
Bonsoir à tous et toutes.

Je vais essayer de présenter mon problème simplement :
J'ai une liste de 18 Checkbox (nommées Case1 à Case18) que j'ai placé dans
les cellules A1 à A18 sur ma feuille Excel à partir de la barre d'outils
"Formulaire". Chaque Checkbox me permet de rendre la cellule respectivement
adjacente (B1 à B18) protégée ou pas suivant que la case soit cochée ou non.
Les cellules liées à chaque Checkbox sont en C1 à C18.
Pour le moment, j'ai une macro pour chaque Checkbox (donc 18 fois la même)
qui fonctionnent très bien mais j'aimerais simplifier tout ça pour n'en
faire qu'une. Suivant la case qu'on coche, elle déduit toute seule la ligne
correspondante à protéger.
J'espère avoir été clair dans mes explications. Merci pour votre aide.

Joël. :-)

Voici mon code pour la Checkbox "Case1" qui protège la cellule B1 si la case
est cochée.
Sub Protection()
If Range("C1") = True Then Range("B1").Locked = True Else
Range("B1").Locked = False
End Sub
Avatar
pjoel
Salut Denis,

Ca fonctionne parfaitement. Un grand merci pour ton aide.
A bientôt.

pjoel :-))


"Denis Michon" a écrit dans le message de
news:Skvtb.33591$
| Bonjour pjoel,
|
|
| Copie cette procédure dans un module standard :
|
| Tu dois adapter le nom de la feuille de la procédure au nom de la feuille
de ton projet où sont tes cases à cocher.
|
| à l'aide du menu contextuel lorsque tu cliques sur tes case à cocher, tu
leur affectes à tour de rôle la même macro et
| cela devrait être suffisant !
|
| '-----------------------------
| Sub Protection()
|
| Dim A As String, Rg As Range
| A = Application.Caller
|
| Set Rg = Range(Worksheets("Feuil3").Shapes(A).OLEFormat.Object.LinkedCell)
| If Not Rg Is Nothing Then
| If Rg.Value = -1 Then
| Rg.Locked = True
| Else
| Rg.Locked = False
| End If
| End If
|
| End Sub
| '-----------------------------
|
|
| Salutations!
|
|
|
| "pjoel" a écrit dans le message de
news:3fb67cf5$0$9182$
| Bonsoir à tous et toutes.
|
| Je vais essayer de présenter mon problème simplement :
| J'ai une liste de 18 Checkbox (nommées Case1 à Case18) que j'ai placé dans
| les cellules A1 à A18 sur ma feuille Excel à partir de la barre d'outils
| "Formulaire". Chaque Checkbox me permet de rendre la cellule
respectivement
| adjacente (B1 à B18) protégée ou pas suivant que la case soit cochée ou
non.
| Les cellules liées à chaque Checkbox sont en C1 à C18.
| Pour le moment, j'ai une macro pour chaque Checkbox (donc 18 fois la même)
| qui fonctionnent très bien mais j'aimerais simplifier tout ça pour n'en
| faire qu'une. Suivant la case qu'on coche, elle déduit toute seule la
ligne
| correspondante à protéger.
| J'espère avoir été clair dans mes explications. Merci pour votre aide.
|
| Joël. :-)
|
| Voici mon code pour la Checkbox "Case1" qui protège la cellule B1 si la
case
| est cochée.
| Sub Protection()
| If Range("C1") = True Then Range("B1").Locked = True Else
| Range("B1").Locked = False
| End Sub
|
|
|