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

Protection feuille vs macro

2 réponses
Avatar
Jo-Julie
Bonjour,

J'ai dernièrement posé une question concernant la protection de feuille qui
me permet d'afficher mes groupes. MichDenis m'a très bien répondu et tout
fonctionne bien avec cette syntaxe dans mon ThisWorkbook
______________________________________

Private Sub Workbook_Open()

With Worksheets("Coûts")
.EnableOutlining = True
.Protect Contents:=True, userInterfaceOnly:=True
End With
With Worksheets("Rapports")
.EnableOutlining = True
.Protect Contents:=True, userInterfaceOnly:=True
End With
With Worksheets("Dt Arg")
.EnableOutlining = True
.Protect Contents:=True, userInterfaceOnly:=True
End With
With Worksheets("Dt Hre-H")
.EnableOutlining = True
.Protect Contents:=True, userInterfaceOnly:=True
End With

End Sub
_____________________________________

J'ai par la suite créer une macro pour copier et insérer des lignes comme
ceci :

_____________________________________

Sub ligne()
'
' ligne Macro
' Macro enregistrée le 2005-03-21 par Luc & Julie
'
' Touche de raccourci du clavier: Ctrl+l
'
ActiveSheet.Unprotect
ActiveCell.Rows("1:1").EntireRow.Select
Selection.Copy
Selection.Insert Shift:=xlDown
Application.CutCopyMode = False
ActiveCell.Offset(0, 0).Range("b1").Select
ActiveSheet.Protect
End Sub

_____________________________________

Et aussi pour supprimer des lignes comme ceci :
_____________________________________

Sub supprligne()
'
' supprligne Macro
' Macro enregistrée le 2005-03-21 par Luc & Julie
'
' Touche de raccourci du clavier: Ctrl+s
'
ActiveCell.Select
ActiveSheet.Unprotect
ActiveCell.Rows("1:1").EntireRow.Select
Selection.Delete Shift:=xlUp
ActiveCell.Offset(0, 0).Range("b1").Select
ActiveSheet.Protect
End Sub

_______________________________________

Voila mon problème : Quand j'applique ces deux dernières macro, cela
reprotège mes groupes, je dois fermé mon classeur et réouvrir.

Dans ma version de excel à la maison (plus récente) je peux spécifier lors
de la protection de la feuille que je permet l'ajout et la suppression de
ligne... Mais au bureau j'ai excel 97... je ne peux donc pas.

Puis-je changer ma phrase de programmation soit dans mon ThisWorkbook pour
permettre l'ajout et la suppression de ligne... ou encore changer quelque
chose de mes macro d'ajout et de suppression de ligne?

Merci beauoup

2 réponses

Avatar
MichDenis
Bonjour jo-Julie,

A ) Dans ton workbook, ta procédure pourrait ressembler à ceci , et ce serait suffisant.

B ) cet élément : userInterfaceOnly:=True de la méthode Protect de l'objet Feuille te permet d'utiliser toutes les
macros que tu désires sans te soucier du fait que les feuilles sont protégées. Toutes les feuilles qui auront été
protégées par la manière présentée ici obéiront à toutes les modifications demandées par les macros dans la feuille mais
refuseront les modifications manuelles des usagers.

En conséquence, dans tes autres macros, ne déprotège pas les feuilles en début de macro ... ni besoin des protéger à la
fin de chacune des macros.

'---------------------------------
Private Sub Workbook_Open()

Dim Arr(), Elt As Variant
Arr = Array("Coûts", "Rapports", "Dt Arg", "Dt Hre-H")

For Each Elt In Arr
With Worksheets(Elt)
.EnableOutlining = True
.Protect Contents:=True, userInterfaceOnly:=True
End With
Next

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


Salutations!


"Jo-Julie" a écrit dans le message de news:

Bonjour,

J'ai dernièrement posé une question concernant la protection de feuille qui
me permet d'afficher mes groupes. MichDenis m'a très bien répondu et tout
fonctionne bien avec cette syntaxe dans mon ThisWorkbook
______________________________________

Private Sub Workbook_Open()

With Worksheets("Coûts")
.EnableOutlining = True
.Protect Contents:=True, userInterfaceOnly:=True
End With
With Worksheets("Rapports")
.EnableOutlining = True
.Protect Contents:=True, userInterfaceOnly:=True
End With
With Worksheets("Dt Arg")
.EnableOutlining = True
.Protect Contents:=True, userInterfaceOnly:=True
End With
With Worksheets("Dt Hre-H")
.EnableOutlining = True
.Protect Contents:=True, userInterfaceOnly:=True
End With

End Sub
_____________________________________

J'ai par la suite créer une macro pour copier et insérer des lignes comme
ceci :

_____________________________________

Sub ligne()
'
' ligne Macro
' Macro enregistrée le 2005-03-21 par Luc & Julie
'
' Touche de raccourci du clavier: Ctrl+l
'
ActiveSheet.Unprotect
ActiveCell.Rows("1:1").EntireRow.Select
Selection.Copy
Selection.Insert Shift:=xlDown
Application.CutCopyMode = False
ActiveCell.Offset(0, 0).Range("b1").Select
ActiveSheet.Protect
End Sub

_____________________________________

Et aussi pour supprimer des lignes comme ceci :
_____________________________________

Sub supprligne()
'
' supprligne Macro
' Macro enregistrée le 2005-03-21 par Luc & Julie
'
' Touche de raccourci du clavier: Ctrl+s
'
ActiveCell.Select
ActiveSheet.Unprotect
ActiveCell.Rows("1:1").EntireRow.Select
Selection.Delete Shift:=xlUp
ActiveCell.Offset(0, 0).Range("b1").Select
ActiveSheet.Protect
End Sub

_______________________________________

Voila mon problème : Quand j'applique ces deux dernières macro, cela
reprotège mes groupes, je dois fermé mon classeur et réouvrir.

Dans ma version de excel à la maison (plus récente) je peux spécifier lors
de la protection de la feuille que je permet l'ajout et la suppression de
ligne... Mais au bureau j'ai excel 97... je ne peux donc pas.

Puis-je changer ma phrase de programmation soit dans mon ThisWorkbook pour
permettre l'ajout et la suppression de ligne... ou encore changer quelque
chose de mes macro d'ajout et de suppression de ligne?

Merci beauoup
Avatar
Jo-Julie
Super, Merci infiniment.....

Salutations

Julie


Bonjour jo-Julie,

A ) Dans ton workbook, ta procédure pourrait ressembler à ceci , et ce serait suffisant.

B ) cet élément : userInterfaceOnly:=True de la méthode Protect de l'objet Feuille te permet d'utiliser toutes les
macros que tu désires sans te soucier du fait que les feuilles sont protégées. Toutes les feuilles qui auront été
protégées par la manière présentée ici obéiront à toutes les modifications demandées par les macros dans la feuille mais
refuseront les modifications manuelles des usagers.

En conséquence, dans tes autres macros, ne déprotège pas les feuilles en début de macro ... ni besoin des protéger à la
fin de chacune des macros.

'---------------------------------
Private Sub Workbook_Open()

Dim Arr(), Elt As Variant
Arr = Array("Coûts", "Rapports", "Dt Arg", "Dt Hre-H")

For Each Elt In Arr
With Worksheets(Elt)
.EnableOutlining = True
.Protect Contents:=True, userInterfaceOnly:=True
End With
Next

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


Salutations!


"Jo-Julie" a écrit dans le message de news:

Bonjour,

J'ai dernièrement posé une question concernant la protection de feuille qui
me permet d'afficher mes groupes. MichDenis m'a très bien répondu et tout
fonctionne bien avec cette syntaxe dans mon ThisWorkbook
______________________________________

Private Sub Workbook_Open()

With Worksheets("Coûts")
.EnableOutlining = True
.Protect Contents:=True, userInterfaceOnly:=True
End With
With Worksheets("Rapports")
.EnableOutlining = True
.Protect Contents:=True, userInterfaceOnly:=True
End With
With Worksheets("Dt Arg")
.EnableOutlining = True
.Protect Contents:=True, userInterfaceOnly:=True
End With
With Worksheets("Dt Hre-H")
.EnableOutlining = True
.Protect Contents:=True, userInterfaceOnly:=True
End With

End Sub
_____________________________________

J'ai par la suite créer une macro pour copier et insérer des lignes comme
ceci :

_____________________________________

Sub ligne()
'
' ligne Macro
' Macro enregistrée le 2005-03-21 par Luc & Julie
'
' Touche de raccourci du clavier: Ctrl+l
'
ActiveSheet.Unprotect
ActiveCell.Rows("1:1").EntireRow.Select
Selection.Copy
Selection.Insert Shift:=xlDown
Application.CutCopyMode = False
ActiveCell.Offset(0, 0).Range("b1").Select
ActiveSheet.Protect
End Sub

_____________________________________

Et aussi pour supprimer des lignes comme ceci :
_____________________________________

Sub supprligne()
'
' supprligne Macro
' Macro enregistrée le 2005-03-21 par Luc & Julie
'
' Touche de raccourci du clavier: Ctrl+s
'
ActiveCell.Select
ActiveSheet.Unprotect
ActiveCell.Rows("1:1").EntireRow.Select
Selection.Delete Shift:=xlUp
ActiveCell.Offset(0, 0).Range("b1").Select
ActiveSheet.Protect
End Sub

_______________________________________

Voila mon problème : Quand j'applique ces deux dernières macro, cela
reprotège mes groupes, je dois fermé mon classeur et réouvrir.

Dans ma version de excel à la maison (plus récente) je peux spécifier lors
de la protection de la feuille que je permet l'ajout et la suppression de
ligne... Mais au bureau j'ai excel 97... je ne peux donc pas.

Puis-je changer ma phrase de programmation soit dans mon ThisWorkbook pour
permettre l'ajout et la suppression de ligne... ou encore changer quelque
chose de mes macro d'ajout et de suppression de ligne?

Merci beauoup