OVH Cloud OVH Cloud

Vérouiller plages

4 réponses
Avatar
Max
Bonjour,

J'ai un classeur avec plusieurs feuilles qui ont la même structure. Je
voudrais vérouiller certaines plages et j'ai écrit la macro suivante:

Sub VérouillerPlageSaisie()
Dim Plage
Set Plage = Application.InputBox("Saisissez la plage à vérouiller",
Type:=8)
For Each F In Worksheets
F.Activate
ActiveSheet.Unprotect
Plage.Locked = True
ActiveSheet.Protect 'ici ça se plante
Next F
End Sub

Pourquoi cela ne march pas ?
Merci de vos lumières.
Max

4 réponses

Avatar
tiah
Bonjour !

Quel message d'erreur obtiens-tu ?

parce que moi j'essaie ton code, et ça fonctionne très bien.

faut être sûr aussi que l'usager répond quelque chose du genre

A1:A7

Tiah.





Bonjour,

J'ai un classeur avec plusieurs feuilles qui ont la même structure. Je
voudrais vérouiller certaines plages et j'ai écrit la macro suivante:

Sub VérouillerPlageSaisie()
Dim Plage
Set Plage = Application.InputBox("Saisissez la plage à vérouill er",
Type:=8)
For Each F In Worksheets
F.Activate
ActiveSheet.Unprotect
Plage.Locked = True
ActiveSheet.Protect 'ici ça se plante
Next F
End Sub

Pourquoi cela ne march pas ?
Merci de vos lumières.
Max


Avatar
Max
Bonjour Tiah,

le message d'erreur c'est:
Erreur d'exécution '1004'
Impossible de définir la propriété Locked de la classe Range

Avec la boîte de saisie Type 8, l'usager saisit la plage avec la souris.

Merci de ton intervention.

Max


"tiah" a écrit dans le message de news:

Bonjour !

Quel message d'erreur obtiens-tu ?

parce que moi j'essaie ton code, et ça fonctionne très bien.

faut être sûr aussi que l'usager répond quelque chose du genre

A1:A7

Tiah.





Bonjour,

J'ai un classeur avec plusieurs feuilles qui ont la même structure. Je
voudrais vérouiller certaines plages et j'ai écrit la macro suivante:

Sub VérouillerPlageSaisie()
Dim Plage
Set Plage = Application.InputBox("Saisissez la plage à vérouiller",
Type:=8)
For Each F In Worksheets
F.Activate
ActiveSheet.Unprotect
Plage.Locked = True
ActiveSheet.Protect 'ici ça se plante
Next F
End Sub

Pourquoi cela ne march pas ?
Merci de vos lumières.
Max


Avatar
tiah koi
salut !

je viens de trouver.

au lieu de "activesheet.protect" il faudrait que ce soit "f.protect"

sinon, il essaie de protéger toujours la même feuille !

et là il plante parce que la feuille active est déjà protégée !

dis-moi si ça marche !

tiah



Bonjour Tiah,

le message d'erreur c'est:
Erreur d'exécution '1004'
Impossible de définir la propriété Locked de la classe Range

Avec la boîte de saisie Type 8, l'usager saisit la plage avec la souris.

Merci de ton intervention.

Max


"tiah" a écrit dans le message de news:

Bonjour !

Quel message d'erreur obtiens-tu ?

parce que moi j'essaie ton code, et ça fonctionne très bien.

faut être sûr aussi que l'usager répond quelque chose du genre

A1:A7

Tiah.





Bonjour,

J'ai un classeur avec plusieurs feuilles qui ont la même structure. Je
voudrais vérouiller certaines plages et j'ai écrit la macro suivante:

Sub VérouillerPlageSaisie()
Dim Plage
Set Plage = Application.InputBox("Saisissez la plage à vérouiller",
Type:=8)
For Each F In Worksheets
F.Activate
ActiveSheet.Unprotect
Plage.Locked = True
ActiveSheet.Protect 'ici ça se plante
Next F
End Sub

Pourquoi cela ne march pas ?
Merci de vos lumières.
Max







Avatar
Max
Bonsoir Tiah,

Avec le F.Protect, la macro ne se plantait plus, mais ça ne verouillait pas
les plages de toutes le feuilles.
Finalement, avec plusieurs essais, j'ai modifié la procédure comme suit:
Sub VérouillerPlageSaisieBis()
Dim Plage, A
Set Plage = Application.InputBox("Saisissez la plage à vérouiller",
Type:=8)
For Each F In Worksheets
F.Activate
ActiveSheet.Unprotect
A = Plage.Address
Range(A).Select
Selection.Locked = True
F.Protect
Next F
End Sub

et ça marche
Encore merci,
Max

"tiah koi" <tiah a écrit dans le message de
news:
salut !

je viens de trouver.

au lieu de "activesheet.protect" il faudrait que ce soit "f.protect"

sinon, il essaie de protéger toujours la même feuille !

et là il plante parce que la feuille active est déjà protégée !

dis-moi si ça marche !

tiah



Bonjour Tiah,

le message d'erreur c'est:
Erreur d'exécution '1004'
Impossible de définir la propriété Locked de la classe Range

Avec la boîte de saisie Type 8, l'usager saisit la plage avec la souris.

Merci de ton intervention.

Max


"tiah" a écrit dans le message de news:

Bonjour !

Quel message d'erreur obtiens-tu ?

parce que moi j'essaie ton code, et ça fonctionne très bien.

faut être sûr aussi que l'usager répond quelque chose du genre

A1:A7

Tiah.





Bonjour,

J'ai un classeur avec plusieurs feuilles qui ont la même structure. Je
voudrais vérouiller certaines plages et j'ai écrit la macro suivante:

Sub VérouillerPlageSaisie()
Dim Plage
Set Plage = Application.InputBox("Saisissez la plage à vérouiller",
Type:=8)
For Each F In Worksheets
F.Activate
ActiveSheet.Unprotect
Plage.Locked = True
ActiveSheet.Protect 'ici ça se plante
Next F
End Sub

Pourquoi cela ne march pas ?
Merci de vos lumières.
Max