Sur une feuille, Je voudrais qu'à la saisie de la touche "+" une macro
se déclenche.
J'ai donc mis mon code avec Application.OnKey dans
Workbook_SheetActivate.
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If Sh.Name = "Saisie" Then
Application.OnKey "{+}", "TouchePlus"
Else
Application.OnKey "{+}"
End If
End Sub
Mon souci est que la fonction "TouchePlus" ne se lance pas lorsque l'on
est sur la feuille "Saisie" et que j'appuie sur la touche "+".
L'argument "{+}" correspond il bien à la touche "+" ?
Si oui, pourquoi cela ne fonctionne pas ?
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
MichD
Bonjour,
Si tu veux que la touche "+" soit détectée sur toutes les feuilles dès l'ouverture du classeur et pour ce classeur en particulier, utilise le code suivant dans le thisworkook du projetVBA de ton classeur.
La touche + dans cette situation précise à la valeur 107, c'est ce que tu dois utiliser au lieu de la touche + dans la commande "Application.OnKey".
Évidemment, tu peux utiliser d'autres événements selon les objectifs que tu poursuis.
'-------------------------------------------------------------------- Private Sub Workbook_Activate() Application.OnKey "{107}", "Module4.TouchePlus" End Sub '-------------------------------------------------------------------- Private Sub Workbook_Deactivate() Application.OnKey "{107}" End Sub '--------------------------------------------------------------------
MichD
Bonjour,
Si tu veux que la touche "+" soit détectée sur toutes les feuilles dès l'ouverture du classeur et
pour ce classeur en particulier, utilise le code suivant dans le thisworkook du projetVBA de ton
classeur.
La touche + dans cette situation précise à la valeur 107, c'est ce que tu dois utiliser au lieu de
la touche + dans la commande "Application.OnKey".
Évidemment, tu peux utiliser d'autres événements selon les objectifs que tu poursuis.
'--------------------------------------------------------------------
Private Sub Workbook_Activate()
Application.OnKey "{107}", "Module4.TouchePlus"
End Sub
'--------------------------------------------------------------------
Private Sub Workbook_Deactivate()
Application.OnKey "{107}"
End Sub
'--------------------------------------------------------------------
Si tu veux que la touche "+" soit détectée sur toutes les feuilles dès l'ouverture du classeur et pour ce classeur en particulier, utilise le code suivant dans le thisworkook du projetVBA de ton classeur.
La touche + dans cette situation précise à la valeur 107, c'est ce que tu dois utiliser au lieu de la touche + dans la commande "Application.OnKey".
Évidemment, tu peux utiliser d'autres événements selon les objectifs que tu poursuis.
'-------------------------------------------------------------------- Private Sub Workbook_Activate() Application.OnKey "{107}", "Module4.TouchePlus" End Sub '-------------------------------------------------------------------- Private Sub Workbook_Deactivate() Application.OnKey "{107}" End Sub '--------------------------------------------------------------------
MichD
MichD
Je précise, la valeur 107 est pour la touche + du pavé numérique du clavier.
Je précise, la valeur 107 est pour la touche + du pavé numérique du clavier.
Je précise, la valeur 107 est pour la touche + du pavé numérique du clavier.
Geo
Bonjour
Excuse-moi, mais on ne passe dans le sub qu'au moment où le classeur devient actif.
'-------------------------------------------------------------------- Private Sub Workbook_Activate() Application.OnKey "{107}", "Module4.TouchePlus" End Sub
Il faudrait que l'appui sur la touche soit effectué juste à ce moment-là. C'est la même chose d'ailleurs pour Sheet_Activate.
Ce que j'ai compris de la demande initiale c'est que la frappe sur la touche + doit déclencher une macro uniquement si la frappe a lieu dans une feuille donnée. Elle doit se faire autant de fois que le + sera tapé dans cette feuille. Le code initial ne peut pas marcher, il faut analyser toute la saisie et ne faire un traitement particulier que si la feuille est active.
Bonjour
Excuse-moi, mais on ne passe dans le sub qu'au moment où le classeur
devient actif.
'--------------------------------------------------------------------
Private Sub Workbook_Activate()
Application.OnKey "{107}", "Module4.TouchePlus"
End Sub
Il faudrait que l'appui sur la touche soit effectué juste à ce
moment-là.
C'est la même chose d'ailleurs pour Sheet_Activate.
Ce que j'ai compris de la demande initiale c'est que la frappe sur la
touche + doit déclencher une macro uniquement si la frappe a lieu dans
une feuille donnée. Elle doit se faire autant de fois que le + sera
tapé dans cette feuille.
Le code initial ne peut pas marcher, il faut analyser toute la saisie
et ne faire un traitement particulier que si la feuille est active.
Excuse-moi, mais on ne passe dans le sub qu'au moment où le classeur devient actif.
'-------------------------------------------------------------------- Private Sub Workbook_Activate() Application.OnKey "{107}", "Module4.TouchePlus" End Sub
Il faudrait que l'appui sur la touche soit effectué juste à ce moment-là. C'est la même chose d'ailleurs pour Sheet_Activate.
Ce que j'ai compris de la demande initiale c'est que la frappe sur la touche + doit déclencher une macro uniquement si la frappe a lieu dans une feuille donnée. Elle doit se faire autant de fois que le + sera tapé dans cette feuille. Le code initial ne peut pas marcher, il faut analyser toute la saisie et ne faire un traitement particulier que si la feuille est active.
HD
Je précise, la valeur 107 est pour la touche + du pavé numérique du clavier.
Un grand MERCI à toi MichD.
Effectivement cela fonctionne bien mieux avec {107}.
Cordialement,
HD
Je précise, la valeur 107 est pour la touche + du pavé numérique du
clavier.
Un grand MERCI à toi MichD.
Effectivement cela fonctionne bien mieux avec {107}.
Je précise, la valeur 107 est pour la touche + du pavé numérique du clavier.
Un grand MERCI à toi MichD.
Effectivement cela fonctionne bien mieux avec {107}.
Cordialement,
HD
HD
Merci Geo. L'aide de MichD m'a bien aidée car mon souci était plus au niveau de la capture de la touche "+" qui n'était pas prise en compte.
Mon script avec la modif :
Private Sub Workbook_SheetActivate(ByVal Sh As Object) If Sh.Name = "Saisie" Then Application.OnKey "{107}", "TouchePlus" Else Application.OnKey "{107}" End If End Sub
Fonctionne parfaitement.
"TouchePlus" est une fonction placé dans un module.
Cordialement,
HD
Merci Geo. L'aide de MichD m'a bien aidée car mon souci était plus au
niveau de la capture de la touche "+" qui n'était pas prise en compte.
Mon script avec la modif :
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If Sh.Name = "Saisie" Then
Application.OnKey "{107}", "TouchePlus"
Else
Application.OnKey "{107}"
End If
End Sub
Fonctionne parfaitement.
"TouchePlus" est une fonction placé dans un module.
Merci Geo. L'aide de MichD m'a bien aidée car mon souci était plus au niveau de la capture de la touche "+" qui n'était pas prise en compte.
Mon script avec la modif :
Private Sub Workbook_SheetActivate(ByVal Sh As Object) If Sh.Name = "Saisie" Then Application.OnKey "{107}", "TouchePlus" Else Application.OnKey "{107}" End If End Sub
Fonctionne parfaitement.
"TouchePlus" est une fonction placé dans un module.
Cordialement,
HD
Geo
Bonjour
Fonctionne parfaitement.
Habituellement un truc ne marche pas sans qu'on comprenne pourquoi. L'inverse est rare, c'est le cas cette fois. L'important est que ça fonctionne.
Bonjour
Fonctionne parfaitement.
Habituellement un truc ne marche pas sans qu'on comprenne pourquoi.
L'inverse est rare, c'est le cas cette fois.
L'important est que ça fonctionne.