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
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Daniel.C
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
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
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
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
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
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