comment savoir si la touche CTRL est appuyée ? Excel 97
3 réponses
chris col
Bonsoir à tous,
Je souhaiterais changer dans une simple feuille, la couleur du texte contenu
dans une cellule
quand je la sélectionne si la touche contrôle est appuyée. (Excel 97)
La fonction KeyDown ne semble pas s'appliquer ailleurs que dans un Contrôle.
Si QQ a un bout de code d'exemple, je le remercie par avance.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
papou
Bonjour Avec une fonction API peut-être bien que je ne vois pas trop l'utilité : 1 - dans le code de la feuille (à adapter) : Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Address <> "$A$1" Then Exit Sub 'Si Ctrl est appuyé Getkeystate renvoie une valeur négative If GetKeyState(VK_CONTROL) < 0 Then Target.Font.ColorIndex = 3 'rouge Else: Target.Font.ColorIndex = 0: End If End Sub
2 - dans un module standard : Public Const VK_CONTROL = &H11 Public Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
Cordialement Pascal
"chris col" a écrit dans le message de news: 42811138$0$27922$
Bonsoir à tous,
Je souhaiterais changer dans une simple feuille, la couleur du texte contenu dans une cellule quand je la sélectionne si la touche contrôle est appuyée. (Excel 97)
La fonction KeyDown ne semble pas s'appliquer ailleurs que dans un Contrôle.
Si QQ a un bout de code d'exemple, je le remercie par avance.
C.C.
Bonjour
Avec une fonction API peut-être bien que je ne vois pas trop l'utilité :
1 - dans le code de la feuille (à adapter) :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address <> "$A$1" Then Exit Sub
'Si Ctrl est appuyé Getkeystate renvoie une valeur négative
If GetKeyState(VK_CONTROL) < 0 Then
Target.Font.ColorIndex = 3 'rouge
Else: Target.Font.ColorIndex = 0: End If
End Sub
2 - dans un module standard :
Public Const VK_CONTROL = &H11
Public Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As
Integer
Cordialement
Pascal
"chris col" <chris.col@free.fr> a écrit dans le message de news:
42811138$0$27922$626a14ce@news.free.fr...
Bonsoir à tous,
Je souhaiterais changer dans une simple feuille, la couleur du texte
contenu
dans une cellule
quand je la sélectionne si la touche contrôle est appuyée. (Excel 97)
La fonction KeyDown ne semble pas s'appliquer ailleurs que dans un
Contrôle.
Si QQ a un bout de code d'exemple, je le remercie par avance.
Bonjour Avec une fonction API peut-être bien que je ne vois pas trop l'utilité : 1 - dans le code de la feuille (à adapter) : Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Address <> "$A$1" Then Exit Sub 'Si Ctrl est appuyé Getkeystate renvoie une valeur négative If GetKeyState(VK_CONTROL) < 0 Then Target.Font.ColorIndex = 3 'rouge Else: Target.Font.ColorIndex = 0: End If End Sub
2 - dans un module standard : Public Const VK_CONTROL = &H11 Public Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
Cordialement Pascal
"chris col" a écrit dans le message de news: 42811138$0$27922$
Bonsoir à tous,
Je souhaiterais changer dans une simple feuille, la couleur du texte contenu dans une cellule quand je la sélectionne si la touche contrôle est appuyée. (Excel 97)
La fonction KeyDown ne semble pas s'appliquer ailleurs que dans un Contrôle.
Si QQ a un bout de code d'exemple, je le remercie par avance.
C.C.
papou
Re Autre solution inspirée d'un exemple de Ole P. Erlandsen qui permet de changer la couleur de la cellule si celle-ci est active (donc sans tenir compte de la touche CTRL) : 1 - Dans un module standard : Function CellActive(Lig As Boolean) As Long CellActive = 0 On Error Resume Next If Lig Then CellActive = ActiveCell.Row Else CellActive = ActiveCell.Column End If End Function
2 - Dans le code de la feuille : Private Sub Worksheet_SelectionChange(ByVal Target As Range) Me.Calculate End Sub
3 - Dans une plage de cellules sur ta feuille : Format Mise en forme conditionnelle, la formule est : =ET(LIGNE()Îllactive(VRAI);COLONNE()Îllactive(FAUX)) puis tu détermines la couleur de la police
Cordialement Pascal
"papou" <cestpasbon@çanonplus44.fr> a écrit dans le message de news: %23%
Bonjour Avec une fonction API peut-être bien que je ne vois pas trop l'utilité : 1 - dans le code de la feuille (à adapter) : Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Address <> "$A$1" Then Exit Sub 'Si Ctrl est appuyé Getkeystate renvoie une valeur négative If GetKeyState(VK_CONTROL) < 0 Then Target.Font.ColorIndex = 3 'rouge Else: Target.Font.ColorIndex = 0: End If End Sub
2 - dans un module standard : Public Const VK_CONTROL = &H11 Public Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
Cordialement Pascal
"chris col" a écrit dans le message de news: 42811138$0$27922$
Bonsoir à tous,
Je souhaiterais changer dans une simple feuille, la couleur du texte contenu dans une cellule quand je la sélectionne si la touche contrôle est appuyée. (Excel 97)
La fonction KeyDown ne semble pas s'appliquer ailleurs que dans un Contrôle.
Si QQ a un bout de code d'exemple, je le remercie par avance.
C.C.
Re
Autre solution inspirée d'un exemple de Ole P. Erlandsen qui permet de
changer la couleur de la cellule si celle-ci est active (donc sans tenir
compte de la touche CTRL) :
1 - Dans un module standard :
Function CellActive(Lig As Boolean) As Long
CellActive = 0
On Error Resume Next
If Lig Then
CellActive = ActiveCell.Row
Else
CellActive = ActiveCell.Column
End If
End Function
2 - Dans le code de la feuille :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Me.Calculate
End Sub
3 - Dans une plage de cellules sur ta feuille :
Format Mise en forme conditionnelle, la formule est :
=ET(LIGNE()Îllactive(VRAI);COLONNE()Îllactive(FAUX))
puis tu détermines la couleur de la police
Cordialement
Pascal
"papou" <cestpasbon@çanonplus44.fr> a écrit dans le message de news:
%23%23Io86gVFHA.2444@TK2MSFTNGP10.phx.gbl...
Bonjour
Avec une fonction API peut-être bien que je ne vois pas trop l'utilité :
1 - dans le code de la feuille (à adapter) :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address <> "$A$1" Then Exit Sub
'Si Ctrl est appuyé Getkeystate renvoie une valeur négative
If GetKeyState(VK_CONTROL) < 0 Then
Target.Font.ColorIndex = 3 'rouge
Else: Target.Font.ColorIndex = 0: End If
End Sub
2 - dans un module standard :
Public Const VK_CONTROL = &H11
Public Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long)
As Integer
Cordialement
Pascal
"chris col" <chris.col@free.fr> a écrit dans le message de news:
42811138$0$27922$626a14ce@news.free.fr...
Bonsoir à tous,
Je souhaiterais changer dans une simple feuille, la couleur du texte
contenu
dans une cellule
quand je la sélectionne si la touche contrôle est appuyée. (Excel 97)
La fonction KeyDown ne semble pas s'appliquer ailleurs que dans un
Contrôle.
Si QQ a un bout de code d'exemple, je le remercie par avance.
Re Autre solution inspirée d'un exemple de Ole P. Erlandsen qui permet de changer la couleur de la cellule si celle-ci est active (donc sans tenir compte de la touche CTRL) : 1 - Dans un module standard : Function CellActive(Lig As Boolean) As Long CellActive = 0 On Error Resume Next If Lig Then CellActive = ActiveCell.Row Else CellActive = ActiveCell.Column End If End Function
2 - Dans le code de la feuille : Private Sub Worksheet_SelectionChange(ByVal Target As Range) Me.Calculate End Sub
3 - Dans une plage de cellules sur ta feuille : Format Mise en forme conditionnelle, la formule est : =ET(LIGNE()Îllactive(VRAI);COLONNE()Îllactive(FAUX)) puis tu détermines la couleur de la police
Cordialement Pascal
"papou" <cestpasbon@çanonplus44.fr> a écrit dans le message de news: %23%
Bonjour Avec une fonction API peut-être bien que je ne vois pas trop l'utilité : 1 - dans le code de la feuille (à adapter) : Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Address <> "$A$1" Then Exit Sub 'Si Ctrl est appuyé Getkeystate renvoie une valeur négative If GetKeyState(VK_CONTROL) < 0 Then Target.Font.ColorIndex = 3 'rouge Else: Target.Font.ColorIndex = 0: End If End Sub
2 - dans un module standard : Public Const VK_CONTROL = &H11 Public Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
Cordialement Pascal
"chris col" a écrit dans le message de news: 42811138$0$27922$
Bonsoir à tous,
Je souhaiterais changer dans une simple feuille, la couleur du texte contenu dans une cellule quand je la sélectionne si la touche contrôle est appuyée. (Excel 97)
La fonction KeyDown ne semble pas s'appliquer ailleurs que dans un Contrôle.
Si QQ a un bout de code d'exemple, je le remercie par avance.
C.C.
chris col
Merci Papou, C'est exactement ce que je cherchais jusque là en vain.
Ce serait plus que parfait s'il était possible d'inhiber, pendant l'utilisation de cette procedure seulement, la fonction de sélection multiple.
En tous cas, encore Merci.
C.C.
Merci Papou,
C'est exactement ce que je cherchais jusque là en vain.
Ce serait plus que parfait s'il était possible d'inhiber, pendant
l'utilisation de cette procedure seulement, la fonction de sélection
multiple.