OVH Cloud OVH Cloud

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.../

6 réponses

1 2
Avatar
géjoun
Moi aussi, je viens à l'instant de retélécharger ton fichier, je l'ouvre,
active les macros, et lorsque je fais un clic droit sur une ligne, j'ai
toujours "insertion".

Mais en plus, lorsque je quitte Excel, j'ai une erreur d'exécution 5 (à la
2ème ligne de la macrop pour rétablir "supprimer"), je ferme le débogueur, et
lorsque je ré-ouvre excel, ma commande "supprimer" est toujours figée; je
suis obligé d'aller supprimer le fichier "Excel11.xlb" dans "C:Documents and
SettingsuserApplication DataMicrosoftExcelExcel11.xlb" pour pouvoir
re-récupérer cette fonction.

Comment se fait-il que cette macro fonctionne sur ton poste, et pas sur le
mien?
Quelqu'un d'autre peut-il essayer?

Merci!

--
géjoun

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







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...").Enabled
= 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...").Enabled
= True
Application.OnKey "^{-}"
Application.OnKey "^{109}"
End Sub

JB




Avatar
géjoun
Un imprime écran de la chose : http://cjoint.com/?dDsmtw5DKI
--
géjoun

/Enlever l''année pour m''écrire.../
Avatar
JB
Ajouter dans EmpecheSup:
Application.CommandBars("Cell").Controls("Insérer...").Enabled = False

Ajouter dans RetablitSup:
Application.CommandBars("Cell").Controls("Insérer...").Enabled = True

JB
Avatar
géjoun
Bonjour,

Cette fois-ci, j'y comprend plus rien...
Déjà, la commande que tu m'as fourni me provoque une erreur d'exécution à
l'ouverture du document lorsque je l'insère dans la macro, mais en plus,
maintenant, la macro, même sans rajouter ta ligne de code concernant la
commande INSERER ne me défige plus la commande supprimer en sortie, malgré
que toutes les valeurs soient à true en sortie.
La 1ère fois, ça passe, mais à la 2ème ouverture, la commande "supprimer"
est encore grisée, d'où une erreur à l'ouverture lorsque la macro essaie de
la passer à "false".

La, j'y comprend plus rien.

il n'existe pas une autre méthode pour arriver au même résultat? (mise à
part protéger la feuille?)

Merci!

--
géjoun

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




Ajouter dans EmpecheSup:
Application.CommandBars("Cell").Controls("Insérer...").Enabled = False

Ajouter dans RetablitSup:
Application.CommandBars("Cell").Controls("Insérer...").Enabled = True

JB


Avatar
JB
Sur mon poste, ce pgm fonctionne correctement

http://cjoint.com/?dEvzl7LdRx

JB
Avatar
géjoun
Bonjour,

Je reviens toujours avec mon même problème...
Le fichier que tu m'as joint ici ne fonctionne pas chez moi (erreur
d'exécution 5 sur la 1ère ligne concernant l'insertion), donc, après avoir un
peu cherché, je me demande si ça ne peut pas venir de nos versions qui
seraient différentes; j'ai Office 2003 en français, et toi?

Merci!

--
géjoun

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



Sur mon poste, ce pgm fonctionne correctement

http://cjoint.com/?dEvzl7LdRx

JB




1 2