Locked zone en VBA sans la sélectionner

Le
StDonat
Bjr
Je souhaiterais déverrouiller une zone nommée mais sans la sélectionner..
Voici un bout de mon code
Qui me génère une erreur 1004

Sur Feuil 1

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ActiveSheet.Unprotect ("toto")

If ActiveCell.Address = Range("Protege").Address Then protection
If ActiveCell.Address = Range("DeProtege").Address Then enleveprotection
End If
End sub

Dans module1
Sub protection()
Range("zoneprotegee").Locked = True
End sub
Sub enleveprotection()
Range("zoneprotegee").Locked = False
End sub

Or si je modifie ainsi
Sub protection()
Range("zoneprotegee").Select
Selection.Locked = True
End sub
Le range .select me renvoi dans le Worksheet_SelectionChange….

Merci de votre aide comme d’hab très précieuse
Bonne journée
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Daniel.C
Le #17892251
Bonjour.
J'ai testé ton code. Deux erreurs :
- "protection" est une propriété VBA. Tu ne peux donc pas l'utiliser.
- il y a un "end if" en trop.
Sinon le code fonctionne sans sélection.
Pour éviter de déclencher un nouvel évènement, il faut ajouter les
lignes :
Application.EnableEvents = False
en début de macro, et :
Application.EnableEvents = True
à la fin.
Cordialement.
Daniel
Bjr
Je souhaiterais déverrouiller une zone nommée mais sans la sélectionner..
Voici un bout de mon code
Qui me génère une erreur 1004

Sur Feuil 1

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ActiveSheet.Unprotect ("toto")

If ActiveCell.Address = Range("Protege").Address Then protection
If ActiveCell.Address = Range("DeProtege").Address Then enleveprotection
End If
End sub

Dans module1
Sub protection()
Range("zoneprotegee").Locked = True
End sub
Sub enleveprotection()
Range("zoneprotegee").Locked = False
End sub

Or si je modifie ainsi
Sub protection()
Range("zoneprotegee").Select
Selection.Locked = True
End sub
Le range .select me renvoi dans le Worksheet_SelectionChange….

Merci de votre aide comme d’hab très précieuse
Bonne journée


StDonat
Le #17894921
Merci je m'en sort grace a Application.EnableEvents = False...
Tu as raison Il y a des erreurs dans mon code mais copier/coller/couper pour
simplifier genere quelques oublies!

"Daniel.C" wrote:

Bonjour.
J'ai testé ton code. Deux erreurs :
- "protection" est une propriété VBA. Tu ne peux donc pas l'utiliser.
- il y a un "end if" en trop.
Sinon le code fonctionne sans sélection.
Pour éviter de déclencher un nouvel évènement, il faut ajouter les
lignes :
Application.EnableEvents = False
en début de macro, et :
Application.EnableEvents = True
à la fin.
Cordialement.
Daniel
> Bjr
> Je souhaiterais déverrouiller une zone nommée mais sans la sélectionner..
> Voici un bout de mon code
> Qui me génère une erreur 1004
>
> Sur Feuil 1
>
> Private Sub Worksheet_SelectionChange(ByVal Target As Range)
> ActiveSheet.Unprotect ("toto")
>
> If ActiveCell.Address = Range("Protege").Address Then protection
> If ActiveCell.Address = Range("DeProtege").Address Then enleveprotection
> End If
> End sub
>
> Dans module1
> Sub protection()
> Range("zoneprotegee").Locked = True
> End sub
> Sub enleveprotection()
> Range("zoneprotegee").Locked = False
> End sub
>
> Or si je modifie ainsi
> Sub protection()
> Range("zoneprotegee").Select
> Selection.Locked = True
> End sub
> Le range .select me renvoi dans le Worksheet_SelectionChange….
>
> Merci de votre aide comme d’hab très précieuse
> Bonne journée





Publicité
Poster une réponse
Anonyme