Comment désactiver le bouton Control(ctrl)?

  • Initiateur de la discussion Initiateur de la discussion subkill
  • 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 !

S

subkill

Guest
Bonjour,

J'ai un application en excel qui permet d'ajouter et de supprimer plusieurs employés(chaque employé est sur un ligne).

Pour supprimer, l'utilisateur peut sélectionner soit un utilisateur soit plusieurs. Cependant quand il en sélectionne plusieurs ils doivent être adjacent, alors je ne veux pas que l'utilisateur puisse utiliser le bouton control(ctrl) pour en sélection à différent endroit.

Est-ce possible de désactivé le bouton control(ctrl) dans mon classeur excel?
 
Re : Comment désactiver le bouton Control(ctrl)?

Bonsoir staple
à priori, subkill veut interdire la sélection de cellules non adjacentes par la touche CTRL (comme le dit hervé dans ton lien🙂

en vba on peut controler certaines touches par la méthode onkey, hélas, ctrl est exclus des touches controlables.

Mais peut-être va-t-il revenir pour préciser ses besoins?????
 
Re : Comment désactiver le bouton Control(ctrl)?

Re


Donc si j'ai bien compris (avec ce code dans la feuille, pas dans un module)
On empeche la sélection multiple
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Selection.Cells.Count > 1 Then
MsgBox "Selection multiple impossible", vbCritical, "Attention ERREUR"
ActiveCell.Select
Exit Sub
End If
End Sub
 
Re : Comment désactiver le bouton Control(ctrl)?

Re


En cherchant ci et là

J'ia trouvé ce genre de code (qui semble interessant)
Code:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'http://www.office-loesung.de/ftopic93467_0_0_asc.php
  If Target.Columns.Count = 1 Then
    Me.Unprotect
    With Target
      Range(.Cells(2, 1), Cells(Rows.Count, .Columns(.Columns.Count).Column)).Locked = Len(.Cells(1)) = 0
    End With
    Me.Protect
  Else
    On Error GoTo Ende
    Application.EnableEvents = False
    Application.Undo
  End If
Ende:
  Application.EnableEvents = True
End Sub

Mais je ne vois pas encore comment l'adapter à la question posée.

Quelqu'un aurait une idée?
 
Dernière édition:
Re : Comment désactiver le bouton Control(ctrl)?

Re-,
inutile de te fatiguer, je subodore que le code écrit par notre ami permet de supprimer les lignes sélectionnées, code qui fonctionne sans problème si les cellules sont adjacentes, mais qui pose problème en cas de sélection multiple.
attendons son code, et on verra
 
Re : Comment désactiver le bouton Control(ctrl)?

bonsoir le fil,

une autre piste avec les APIs

Code:
Global Const VK_CONTROL = &H11
Private Declare Function GetKeyState Lib "user32" _
    (ByVal vKey As Long) As Integer
Function DisableVK_CONTROL()
    If GetKeyState(VK_CONTROL) < 0 Then ActiveCell.Select
End Function
et dans le module de feuille
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
DisableVK_CONTROL
End Sub
mais je crois qu'on en saura plus demain.

bonne soirée
fred65200
 
Re : Comment désactiver le bouton Control(ctrl)?

Bonsoir Fred65200


Ta solution est bluffante (et peut servir à de mauvaises blagues
destinées au collègue , celui qui...)


Heureusement, j'ai pas de collègue qui.. 😛

Mais une collègue qui .....est bluffante elle aussi 😉
 
Re : Comment désactiver le bouton Control(ctrl)?

merci Staple1600,

on peut faire la même chose pour d'autre touches

Global Const VK_CONTROL = &H11
Global Const VK_SHIFT = &H10
Global Const VK_TAB = &H9
Global Const VK_RETURN = &HD
Global Const VK_PRIOR = &H21 ' PGUP
Global Const VK_NEXT = &H22 ' PGDN
Global Const VK_MENU As Long = &H12
Global Const VK_CAPITAL = &H14
Global Const VK_NUMLOCK = &H90
Global Const VK_SCROLL = &H91


@+
fred65200
 
Dernière édition:
Re : Comment désactiver le bouton Control(ctrl)?

bonsoir le fil,

une autre piste avec les APIs

Code:
Global Const VK_CONTROL = &H11
Private Declare Function GetKeyState Lib "user32" _
    (ByVal vKey As Long) As Integer
Function DisableVK_CONTROL()
    If GetKeyState(VK_CONTROL) < 0 Then ActiveCell.Select
End Function
et dans le module de feuille
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
DisableVK_CONTROL
End Sub
mais je crois qu'on en saura plus demain.

bonne soirée
fred65200

Bonjour Fred65200, bonjour le forum,
Je souhaite utiliser le code pour désactiver la touche Ctrl, mais celui-ci n'empêche pas le Ctrl+ ou Ctrl-, sur l'en tête de ligne ou de colonne.
Avez-vous une autre solution ?
Merci.
 
Dernière édition:
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

F
  • Résolu(e)
Microsoft 365 Macro VBA
Réponses
16
Affichages
3 K
Fofi1
F
S
Réponses
4
Affichages
2 K
stage_ferrit
S
D
Réponses
4
Affichages
2 K
danpom302
D
E
Réponses
2
Affichages
2 K
Retour