Procédure insertion et suppression de lignes

Le
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/
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
JB
Le #3781961
Bonjour,

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

JB
ThierryP
Le #3781951
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

géjoun
Le #3781881
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




géjoun
Le #3781871
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



géjoun
Le #3781841
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!


géjoun
Le #3781401
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


JB
Le #3781331
-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
géjoun
Le #3781241
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


JB
Le #3781151
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
Publicité
Poster une réponse
Anonyme