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

Insérer/Supprimer une cellule

14 réponses
Avatar
Albert
Bonjour

Est-ce possible dans Excel de supprimer du menu contextuel les commandes
"Insérer/Supprimer une cellule", et cela sur un classeur seulement.

Excel 2007 et 2010

Merci

--
albertri-at-videotron.ca.invalid

10 réponses

1 2
Avatar
DanielCo
Bonjour,
1. dans "ThisWorkbook", mets :

Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
Application.CommandBars("Cell").Controls("Insérer cellule").Delete
Application.CommandBars("Cell").Controls("Supprimer
cellule").Delete
On Error GoTo 0
End Sub

Private Sub Workbook_Open()
On Error Resume Next
Application.CommandBars("Cell").Controls("Insérer cellule").Delete
Application.CommandBars("Cell").Controls("Supprimer
cellule").Delete
On Error GoTo 0
Set myControl = Application.CommandBars("Cell").Controls _
.Add(Before:=1)
With myControl
.Caption = "Insérer cellule"
.OnAction = "Insérer"
End With
Set myControl = Application.CommandBars("Cell").Controls _
.Add(Before:=1)
With myControl
.Caption = "Supprimer cellule"
.OnAction = "Supprimer"
End With
End Sub

Dans un module standard, mets :

Sub Insérer()
Selection.Insert
End Sub

Sub Supprimer()
Selection.Delete
End Sub

Cordialement.
Daniel


Bonjour

Est-ce possible dans Excel de supprimer du menu contextuel les commandes
"Insérer/Supprimer une cellule", et cela sur un classeur seulement.

Excel 2007 et 2010

Merci
Avatar
Albert
Bonjour
"DanielCo" a écrit dans le message de
news:k46dgk$48j$

Merci DanielCo
L'ajout de cellules, par un bénévole, dans la colonne NOM, sans faire les
ajustements correspondants sur le reste du tableau, fait que le tableau de
700 lignes par 70 colonnes n'est plus utilisable. Il n'est pas possible de
tout protéger à cause de a fonction Private Sub Worksheet_Change(ByVal
Target As Range).
Je vais faire les réprations nécessaires, et ensuite essayer votre
suggestion,
Donc une réponse dans quelques jours.
Albert

Bonjour,
1. dans "ThisWorkbook", mets :

Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
Application.CommandBars("Cell").Controls("Insérer cellule").Delete
Application.CommandBars("Cell").Controls("Supprimer cellule").Delete
On Error GoTo 0
End Sub

Private Sub Workbook_Open()
On Error Resume Next
Application.CommandBars("Cell").Controls("Insérer cellule").Delete
Application.CommandBars("Cell").Controls("Supprimer cellule").Delete
On Error GoTo 0
Set myControl = Application.CommandBars("Cell").Controls _
.Add(Before:=1)
With myControl
.Caption = "Insérer cellule"
.OnAction = "Insérer"
End With
Set myControl = Application.CommandBars("Cell").Controls _
.Add(Before:=1)
With myControl
.Caption = "Supprimer cellule"
.OnAction = "Supprimer"
End With
End Sub

Dans un module standard, mets :

Sub Insérer()
Selection.Insert
End Sub

Sub Supprimer()
Selection.Delete
End Sub

Cordialement.
Daniel


Bonjour

Est-ce possible dans Excel de supprimer du menu contextuel les commandes
"Insérer/Supprimer une cellule", et cela sur un classeur seulement.

Excel 2007 et 2010

Merci




Avatar
Albert
Bonjour DanielCo
"DanielCo" a écrit dans le message de
news:k46dgk$48j$

Malheureusement cela ne semble pas produire l'effet désiré et en plus cause
des problèmes à tous les fichiers EXCEL sur mon ordinateur.
Cette macro devrait être fonctionnelle seulement sur le fichier
**InsérerCellule.xlsm**.
Le menu contextuel de cellule (bouton droit) contient 3 fois supprimer
cellule et cela ne fonctionne pas et Supprimer dans le ruban supprime
encore les cellules..
Sur tous les fichiers, si j'essaie de supprimer une cellule j'ai un message
d'erreur et le fichier d'essai "InsérerCellule.xlsm" ouvre.
Il est toujours possible de supprimer ou insérer une cellule sur le fichier
exemple.
Le dossier XLSTART est vide.

Voir http://cjoint.com/?BIEcYTTt7Od fichier réduit tel qu'utilisé et avec
les macros.

Document avec les images et les messages d'erreurs
http://cjoint.com/?BIEc20BuV7t

SVP m'aider à corriger ces problèmes et remettre le tout comme auparavant.

Albert



Bonjour,
1. dans "ThisWorkbook", mets :

Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
Application.CommandBars("Cell").Controls("Insérer cellule").Delete
Application.CommandBars("Cell").Controls("Supprimer cellule").Delete
On Error GoTo 0
End Sub

Private Sub Workbook_Open()
On Error Resume Next
Application.CommandBars("Cell").Controls("Insérer cellule").Delete
Application.CommandBars("Cell").Controls("Supprimer cellule").Delete
On Error GoTo 0
Set myControl = Application.CommandBars("Cell").Controls _
.Add(Before:=1)
With myControl
.Caption = "Insérer cellule"
.OnAction = "Insérer"
End With
Set myControl = Application.CommandBars("Cell").Controls _
.Add(Before:=1)
With myControl
.Caption = "Supprimer cellule"
.OnAction = "Supprimer"
End With
End Sub

Dans un module standard, mets :

Sub Insérer()
Selection.Insert
End Sub

Sub Supprimer()
Selection.Delete
End Sub

Cordialement.
Daniel


Bonjour

Est-ce possible dans Excel de supprimer du menu contextuel les commandes
"Insérer/Supprimer une cellule", et cela sur un classeur seulement.

Excel 2007 et 2010

Merci




Avatar
DanielCo
Désolé, j'avais mal lu, en fait, j'ai ajouté ces commandes au lieu de
les supprimer. Je regarde,sans doute dans la journée. Pour rétablir le
menu standard :

Application.CommandBars("Cell").Reset

Daniel


Bonjour DanielCo
"DanielCo" a écrit dans le message de
news:k46dgk$48j$

Malheureusement cela ne semble pas produire l'effet désiré et en plus
cause des problèmes à tous les fichiers EXCEL sur mon ordinateur.
Cette macro devrait être fonctionnelle seulement sur le fichier
**InsérerCellule.xlsm**.
Le menu contextuel de cellule (bouton droit) contient 3 fois supprimer
cellule et cela ne fonctionne pas et Supprimer dans le ruban supprime
encore les cellules..
Sur tous les fichiers, si j'essaie de supprimer une cellule j'ai un message
d'erreur et le fichier d'essai "InsérerCellule.xlsm" ouvre.
Il est toujours possible de supprimer ou insérer une cellule sur le fichier
exemple.
Le dossier XLSTART est vide.

Voir http://cjoint.com/?BIEcYTTt7Od fichier réduit tel qu'utilisé et
avec les macros.

Document avec les images et les messages d'erreurs
http://cjoint.com/?BIEc20BuV7t

SVP m'aider à corriger ces problèmes et remettre le tout comme
auparavant.

Albert
Avatar
DanielCo
Bonjour,

Mets ceci dans le module "ThisWorkbook" :

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.CommandBars("Cell").Reset
End Sub

Private Sub Workbook_Open()
With Application.CommandBars("Cell")
.Reset
.Controls(6).Visible = False
.Controls(6).Enabled = False
.Controls(7).Visible = False
.Controls(7).Enabled = False
End With
End Sub

Daniel
Avatar
MichD
Bonjour,

Voici un fichier exemple qui fait le travail :

http://cjoint.com/?BIEpx6U0reU


MichD
---------------------------------------------------------------
Avatar
Albert
Bonsoir / Bonjour
"DanielCo" a écrit dans le message de
news:k49gnm$20l$

Tout semble revenu normal, je vous remercie.
Dans un message suivant je décrie mieux le problème.
Albert

Bonjour,

Mets ceci dans le module "ThisWorkbook" :

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.CommandBars("Cell").Reset
End Sub

Private Sub Workbook_Open()
With Application.CommandBars("Cell")
.Reset
.Controls(6).Visible = False
.Controls(6).Enabled = False
.Controls(7).Visible = False
.Controls(7).Enabled = False
End With
End Sub

Daniel


Avatar
Albert
Bonjour
"MichD" a écrit dans le message de
news:k49h6m$2un$

Ce n'est pas ce que je cherche, mais ce fichier est très intéressant, je le
conserve.
Dans un message suivant je décrie mieux le problème.
Merci
Albert


Bonjour,

Voici un fichier exemple qui fait le travail :

http://cjoint.com/?BIEpx6U0reU

MichD
---------------------------------------------------------------

Avatar
Albert
Bonjour / Bonsoir

Voici une description plus précise du problème, et le fichier exemple est
sur
http://cjoint.com/?BIEu72F3bbs

Le fichier courant contient environ 700 lignes et 70 colonnes, pour
enregistrer les présences des membres de septembre à mai.
Le calendrier est mis à jour en ajoutant/supprimant les colonnes une fois
par année habituellement.
De même la liste des membres est constamment mise à jour en
ajoutant/supprimant les lignes, plusieurs membres en couleur seront
supprimés en octobre, si leur adhésion n'est pas renouvellé.
Dans le fichier exemple les présences sont enregistrées en marquant un "1"
dans la plage $C$3:$L$30, cette plage varie continuellement selon le nombre
de membres.
Refaire les formules à chaque changement était un problème. Les Macros
"Private Sub Worksheet_Change()" et "Sub MisaJourFormules()" ont automatisé
cela et utilisent comme points de repères la cellule $C$3, le mot TOTAL à
l'extrême droite de la ligne 2, le mot VISITEURS de la colonne B et le mot
RENCONTRES aussi de la colonne B.

Le tout fonctionne très bien, c'est à dire FONCTIONNAIT très bien, jusqu'à
ce qu'un bénévole bien intentionné ajoute dans la colonne B des noms par
ordre alphabétique en insérant des cellules au lieu de lignes. Suite à cela
la plage des présences $C$3 à ?? ne correspondait aux noms inscrit dans la
colonne B.

Ma question est est-il possible d'empêcher l'insertion/suppression de
cellules dans la plage $B$3:B ?
Possiblement le même problème peut arriver avec la ligne 2, mais c'est moins
probable.

J'espère que mon explication n'est pas trop longue, vos commentaires sont
bienvenus.

--
albertri-at-videotron.ca.invalid
Avatar
MichD
Voici le fichier modifié : http://cjoint.com/?BIEwJlVFgrv

Il y a du code dans le ThisWorkbook, Module1 et le module de la feuil1

Cela s'appliquent à la feuille dont l'onglet porte le nom de "Feuil1"
Si tu utilises une autre feuille, tu devras modifier le nom dans les
procédures.

Le principe est simple, dès que la colonne B:B fait partie de la sélection,
la
feuille est protégée sinon aucune protection est appliquée.

Si tu le désires, tu peux ajouter un Msgbox pour signifier cet état de
choses
aux usagers.


MichD
---------------------------------------------------------------
1 2