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

Procédure insertion et suppression de lignes

16 réponses
Avatar
géjoun
Bonjour,

En recherchant dans les archives, j'ai trouvé une procédure postée par
Benead, à mettre dans le ThisWorkBook de mon fichier pour empêcher la
suppression de lignes, et je n'arrive pas à la modifier pour aussi empêcher
leur insertion.
Je me doute qu'il ne doit pas y avoir beaucoup à changer, mais ça beugue à
chaque fois.

Voici la procédure :

Option Explicit
Private Sub Workbook_Open()
Application.CommandBars("Row").Controls("Supprimer...").Enabled = False
Application.CommandBars("Cell").Controls("Supprimer...").Enabled = False

Application.CommandBars(1).Controls("Insertion").Controls("Lignes").Enabled =
False

Application.CommandBars(1).Controls("Edition").Controls("Supprimer...").Enabled = False
Application.OnKey "^{-}", ""
Application.OnKey "^{109}", ""
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.CommandBars("Row").Controls("Supprimer...").Enabled = True
Application.CommandBars("Cell").Controls("Supprimer...").Enabled = True

Application.CommandBars(1).Controls("Insertion").Controls("Lignes").Enabled =
True

Application.CommandBars(1).Controls("Edition").Controls("Supprimer...").Enabled = True
Application.OnKey "^{-}"
Application.OnKey "^{109}"
End Sub

Et est-ce possible de la modifier de façon à ce qu'elle n'empêche
l'insertion et la suppression uniquement pour le fichier dans lequel elle est
insérée? (car là, tant que mon fichier est ouvert, elle me bloque aussi les
autres).

Merci beaucoup!

--
géjoun
dam-mail2006@ifrance.com
/Enlever l''année pour m''écrire.../

10 réponses

1 2
Avatar
JB
Bonjour,

Placer le code dans un module et appeler le code dans les propriétés
Activate et Deactivate des feuilles du classeur.

JB
Avatar
ThierryP
Bonjour géjoun,

Pour limiter l'action à ce seul fichier, tu dois mettre ton code dans le
workbook_activate, et l'exact contraire de ton code dans le
workbook_deactivate

Bonjour,

En recherchant dans les archives, j'ai trouvé une procédure postée par
Benead, à mettre dans le ThisWorkBook de mon fichier pour empêcher la
suppression de lignes, et je n'arrive pas à la modifier pour aussi empêcher
leur insertion.
Je me doute qu'il ne doit pas y avoir beaucoup à changer, mais ça beugue à
chaque fois.

Voici la procédure :

Option Explicit
Private Sub Workbook_Open()
Application.CommandBars("Row").Controls("Supprimer...").Enabled = False
Application.CommandBars("Cell").Controls("Supprimer...").Enabled = False

Application.CommandBars(1).Controls("Insertion").Controls("Lignes").Enabled =
False

Application.CommandBars(1).Controls("Edition").Controls("Supprimer...").Enabled = False
Application.OnKey "^{-}", ""
Application.OnKey "^{109}", ""
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.CommandBars("Row").Controls("Supprimer...").Enabled = True
Application.CommandBars("Cell").Controls("Supprimer...").Enabled = True

Application.CommandBars(1).Controls("Insertion").Controls("Lignes").Enabled =
True

Application.CommandBars(1).Controls("Edition").Controls("Supprimer...").Enabled = True
Application.OnKey "^{-}"
Application.OnKey "^{109}"
End Sub

Et est-ce possible de la modifier de façon à ce qu'elle n'empêche
l'insertion et la suppression uniquement pour le fichier dans lequel elle est
insérée? (car là, tant que mon fichier est ouvert, elle me bloque aussi les
autres).

Merci beaucoup!



--
@+ thierryp
-----------------
Passer pour un idiot aux yeux d'un imbécile est une volupté de fin
gourmet - G. Courteline

Avatar
géjoun
Bonjour,

Peux-tu être un peu plus détaillé, parce que coller le code dans un module,
je sais faire, mais aprés, je comprend pas comment "appeler" le code dasn les
propriétés.

Merci!

--
géjoun

/Enlever l''année pour m''écrire.../



Bonjour,

Placer le code dans un module et appeler le code dans les propriétés
Activate et Deactivate des feuilles du classeur.

JB




Avatar
géjoun
Bonjour,

Je pense avoir compris! :-)
J'ai modifié mon code que j'ai dasn ThisWorkBook en:

Option Explicit
Sub Workbook_Activate()
Application.CommandBars("Row").Controls("Supprimer...").Enabled = False
Application.CommandBars("Cell").Controls("Supprimer...").Enabled = False

Application.CommandBars(1).Controls("Insertion").Controls("Lignes").Enabled =
False

Application.CommandBars(1).Controls("Edition").Controls("Supprimer...").Enabled = False
Application.OnKey "^{-}", ""
Application.OnKey "^{109}", ""
End Sub
Sub Workbook_Deactivate()
Application.CommandBars("Row").Controls("Supprimer...").Enabled = True
Application.CommandBars("Cell").Controls("Supprimer...").Enabled = True

Application.CommandBars(1).Controls("Insertion").Controls("Lignes").Enabled =
True

Application.CommandBars(1).Controls("Edition").Controls("Supprimer...").Enabled = True
Application.OnKey "^{-}"
Application.OnKey "^{109}"
End Sub

et effectivement, ça me permet si j'ouvre un autre fichier, de bien avoir
toutes mes fonctions.

Par contre, dans le fichier ou je souhaite interdire la suppression et
l'insertion, j'ai encore les fonctions "insertion" (lorsque je fais un clic
droit sur l'en-tête d'une ligne ou colonnes, ou en pasant par le menu
INSERTION) et "insérer"(lors d'un clic droit dasn une cellule) qui sont
actifs.

Que rajouter comme code pour aussi désactiver ces 2 focntions?

Merci!

--
géjoun

/Enlever l''année pour m''écrire.../



Bonjour géjoun,

Pour limiter l'action à ce seul fichier, tu dois mettre ton code dans le
workbook_activate, et l'exact contraire de ton code dans le
workbook_deactivate
--
@+ thierryp
-----------------
Passer pour un idiot aux yeux d'un imbécile est une volupté de fin
gourmet - G. Courteline



Avatar
géjoun
Répondu trop vite...
Pour ça, j'ai trouvé!

Mais par pour désactiver INSERTION. :-(

--
géjoun

/Enlever l''année pour m''écrire.../



Bonjour,

Peux-tu être un peu plus détaillé, parce que coller le code dans un module,
je sais faire, mais aprés, je comprend pas comment "appeler" le code dasn les
propriétés.

Merci!


Avatar
JB
Voir PJ

http://cjoint.com/?dDoJfRrNVX

JB
Avatar
géjoun
Re,

Merci pour ton exemple, mais existe-t'il une différence entre mettre
directement la macro dans ThisWorkBook, ou mettre comme dans ton exemple un
code qui renvoie vers la macro qui se trouve dans un module (si j'ai bien
compris...)?

Et malgré tout mes essais, je n'arrive toujours pas à faire de même pour
désactiver INSERTION...

Merci!

--
géjoun

/Enlever l''année pour m''écrire.../



Voir PJ

http://cjoint.com/?dDoJfRrNVX

JB


Avatar
JB
-Il n'y a pas de différence.
J'avais le code mis dans un module pour pouvoir appeler les procédures
avec d'autres événements éventuellement.
-Sur le fichier que j'ai mis en PJ (Excel2003), on n'a pas accés à la
commande Insertion/Lignes

JB
Avatar
géjoun
Re,

OK pour la précision entre le module et le classeur; par contre, pour ce qui
est de désactiver la commande INSERTION, je ne suis pas sur que ça fonctionne
vraiment sur ton fichier, car lors d'un clic droit, la commande est toujours
active, comme elle est aussi active dans le menu insertion.
Ou alors, j'ai pas suivi comment il faut faire...
--
géjoun

/Enlever l''année pour m''écrire.../



-Il n'y a pas de différence.
J'avais le code mis dans un module pour pouvoir appeler les procédures
avec d'autres événements éventuellement.
-Sur le fichier que j'ai mis en PJ (Excel2003), on n'a pas accés à la
commande Insertion/Lignes


Avatar
JB
Je viens de tester à nouveau:

http://cjoint.com/?dDrrMm1XCz

Private Sub Workbook_Activate()
EmpecheSup
End Sub

Private Sub Workbook_Deactivate()
RetablitSup
End Sub

Sub EmpecheSup()
Application.CommandBars("Row").Controls("Supprimer...").Enabled =
False
Application.CommandBars("Cell").Controls("Supprimer...").Enabled =
False

Application.CommandBars(1).Controls("Insertion").Controls("Lignes").Enabled
= False

Application.CommandBars(1).Controls("Edition").Controls("Supprimer...").Ena bled
= False
Application.OnKey "^{-}", ""
Application.OnKey "^{109}", ""
End Sub

Sub RetablitSup()
Application.CommandBars("Row").Controls("Supprimer...").Enabled =
True
Application.CommandBars("Cell").Controls("Supprimer...").Enabled =
True

Application.CommandBars(1).Controls("Insertion").Controls("Lignes").Enabled
= True

Application.CommandBars(1).Controls("Edition").Controls("Supprimer...").Ena bled
= True
Application.OnKey "^{-}"
Application.OnKey "^{109}"
End Sub

JB
1 2