Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 Interdire la suppression "suppr"

  • Initiateur de la discussion Initiateur de la discussion maxd88
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

maxd88

XLDnaute Nouveau
Bonjour, j'ai un formulaire Excel que mes employés doivent remplir, pour une raison précise mais longue à expliquer :

Je veux que dès qu'un salarié fait un choix dans un menu déroulant (colonne C), la date/heure s'inscrit et qu'on ne puisse plus la changer.
1. J'ai fait quelques manips mais la touche SUPPR fonctionne encore 🙁 Comment y remédier ?
2. Et quand on SUPPR et change le choix dans le menu déroulant la date/heure se met à jour, alors que je voudrai la date / heure initiale.

Comment faire ? Au moins pour le point 1.

A priori j'ai la réponse ici mais je ne sais pas insérer ce code : https://forum.excel-pratique.com/excel/interdire-touche-supprimer-t100946.html
Merciii.
 

Pièces jointes

Dernière édition:
Bonjour le forum
Bonjour maxd88, Franc58, TooFatBoy, mapomme & cousinhub

Pour interdire le couper :
VB:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.OnKey "^x"  ' Rétablir Ctrl + X
End Sub

Private Sub Workbook_Open()
 Application.OnKey "^x", ""  ' Interdire Ctrl + X
 End Sub

Après, l'on peut annuler le clic droit de la souris...
Bonne journée à toutes & à tous
Eric c
 
Re le fil,
Une solution complète qui interdit le Ctrl x, le grisé des options lors du clic droit de la souris ET l'impossibilité de se servir du "Couper" du ruban. Code de don_pets en 2014 :

VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
With Application
.OnKey ("^{x}"), "" 'Combinaison de touches =CTRL+x
End With
End Sub

'Cela empêchera ton user de se servir de son clavier avec le ctl x


'sinon pour éviter l'usage de la souris :

Private Sub Workbook_Activate()
Dim oCtrl As Office.CommandBarControl

'Disable all Cut menus
For Each oCtrl In Application.CommandBars.FindControls(ID:=21)
oCtrl.Enabled = False
Next oCtrl

'Disable all Copy menus
For Each oCtrl In Application.CommandBars.FindControls(ID:=19)
oCtrl.Enabled = False
Next oCtrl

Application.CellDragAndDrop = False

End Sub

Private Sub Workbook_Deactivate()
Dim oCtrl As Office.CommandBarControl

'Enable all Cut menus
For Each oCtrl In Application.CommandBars.FindControls(ID:=21)
oCtrl.Enabled = True
Next oCtrl

'Enable all Copy menus
For Each oCtrl In Application.CommandBars.FindControls(ID:=19)
oCtrl.Enabled = True
Next oCtrl

Application.CellDragAndDrop = True

End Sub

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
With Application
.CellDragAndDrop = False
.CutCopyMode = False 'Clear clipboard
End With
End Sub
1er code à placer dans la feuille (ou le classeur) et le second dans le classeur

Eric c
 
Re le fil,

Essaie avec ce code :

VB:
Sub Workbook_SheetSelectionChange(ByVal Sh As Object, _
 ByVal Target As Excel.Range)

 Select Case Application.CutCopyMode
 Case Is = False
 'do nothing
 Case Is = xlCopy
 'do nothing
 Case Is = xlCut
 MsgBox "Attention : il ne faut pas utiliser l'option COUPER dans ce classeur. Vous pouvez utiliser COPIER, puis supprimer les données source.", vbExclamation
 Application.CutCopyMode = False 'clear clipboard and cancel cut
 End Select

 End Sub

 
Private Sub Workbook_Open()

     Application.CellDragAndDrop = False
    
    
End Sub

Private Sub Workbook_Activate()
 Application.CellDragAndDrop = False
 End Sub

 Private Sub Workbook_BeforeClose(Cancel As Boolean)
 Application.CellDragAndDrop = True
 End Sub

 Private Sub Workbook_Deactivate()
 Application.CellDragAndDrop = True
 End Sub

Bon appétit
Eric c
 
Bonjour, merci, dans le même registre, j'aimerai que en colonne L les npms de mes utilisateurs s'affichent automatiquement (chaque pc a bien le nom de l'utilisateur),
j'ai écris ce code :

Option Explicit

Function username()
username = Application.username
End Function


Seulement quand je l'appel avec =username() mon nom apparait sur toute la colonne !
J'aimerai que le nom apparraisse que quand quelqu'un démarre une saisie sur la ligne en question, et que cette colonne soit grisée (car calculée automatiquement).

J'ai tenté :
=SI(ESTVIDE(B184);"";username())

mais ca donne rien 🙁 Avez-vous des pistes ?
Merci.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
3 K
Réponses
19
Affichages
3 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…