IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

SendKeys désactive ou réactive la touche numérique


Sujet :

Macros et VBA Excel

  1. #1
    re
    re est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 116
    Points : 43
    Points
    43
    Par défaut SendKeys désactive ou réactive la touche numérique
    Bonjour,
    Lorsque j'utilise SendKeys peut importe l'appel de touche (exemple SendKeys "{TAB}") ça me désactive ou réactive la touche numérique du clavier à chaque lancement de la macro et ça ne fait pas la fonction demandée.

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub ComboBox1_Change()
    Sheets("Formule").Range("A1").Value = ComboBox1.Value
    SendKeys "{TAB}"
    End Sub
    Avez vous une idée

    Win 10 64bits / office 2016

    Merci

  2. #2
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut
    Bonjour,

    ne pas utiliser les instructions SendKeys du VBA mais celle de Windows :   CreateObject("WScript.Shell").SendKeys   …

    ___________________________________________________________________________________________________________

         Merci de cliquer sur en bas à droite de chaque message ayant aidé puis sur pour clore cette discussion …

    ___________________________________________________________________________________________________________
    Je suis Paris, Nigeria, New-York, Mogadicio, Barcelone, London, Manchester, Egypte, Stockholm, Istanbul, Berlin, Nice, Bruxelles, Charlie, …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  3. #3
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    bonjour

    perso j'aimerais bien savoir a quoi te sert ton sendkeys
    ton code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub ComboBox1_Change()
    Sheets("Formule").Range("A1").Value = ComboBox1.Value
    SendKeys "{TAB}"
    End Sub
    qu'est ce que ton tab est sensé faire ???????????
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  4. #4
    re
    re est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 116
    Points : 43
    Points
    43
    Par défaut
    Merci pour vos réponses
    CreateObject("WScript.Shell").SendKeys "{TAB}"
    Fonctionne mais envoie aussi un active pavé num seul pour chaque lancement

    Vu l'interrogation de patricktoulon je ne dois peut être pas utiliser correctement la fonction désirée qui est de :
    A partir d'un useform dans lequel il y a des combobox qui va cherché une liste de données, lorsque je choisi une valeur en entier la validation ce fait dans la cellule A1 de la feuille mais si cette valeur a une décimale il faut aller à la useform suivante ou faire un TAB pour qu'elle se valide dans la cellule.

  5. #5
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    je me doutais bien qu'il y avait une histoire de changement de focus soit de cells soit de control activx dans un usf mais changement de userform la je l'ai pas vu venir celle la

    tu veux dire quoi exactement par ceci:
    lorsque je choisi une valeur en entier la validation ce fait dans la cellule A1 de la feuille mais si cette valeur a une décimale il faut aller à la useform suivante ou faire un TAB pour qu'elle se valide dans la cellule.
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  6. #6
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut
    Citation Envoyé par re Voir le message
    Merci pour vos réponses
    CreateObject("WScript.Shell").SendKeys "{TAB}"
    Fonctionne mais envoie aussi un active pavé num seul pour chaque lancement
    Jamais de mon côté et pourtant testé sur une bonne trentaine de PC différents …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  7. #7
    re
    re est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 116
    Points : 43
    Points
    43
    Par défaut
    Citation Envoyé par patricktoulon Voir le message
    je me doutais bien qu'il y avait une histoire de changement de focus soit de cells soit de control activx dans un usf mais changement de userform la je l'ai pas vu venir celle la

    tu veux dire quoi exactement par ceci:
    Exemple :
    B1= 1
    B2 =1,5
    Si dans le choix du combobox je choisi 1 le ControlSource et donc la cellule (A1) ou s'écrit la valeur 1 est validée
    Si dans le choix du combobox je choisi 1,5 le ControlSource et donc la cellule 'A1) ou s'écrit la valeur 1,5 n'est pas validée, seule solution que j'ai trouvé, faire un TAB ou aller à la combobox suivante !

  8. #8
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Je peux choisir 2?

    Si oui ça justifierait largement l'emploi du SendKeys!

    Si pas validé comboboxSuivante.focus

  9. #9
    re
    re est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 116
    Points : 43
    Points
    43
    Par défaut
    Oui tant qu'il n'y a pas de décimale y a pas de limite

  10. #10
    re
    re est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 116
    Points : 43
    Points
    43
    Par défaut
    Merci pour la suggestion, ça fonctionne avec : combobox2.Setfocus j ai erreur avec combobox2.focus seul, c'est normal docteur ? :-)

  11. #11
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    perso plus tu essaie de t'expliquer plus je suis dans le flou
    tu parle de userform2 maintenant tu parle d'autre cellule

    je vais laisser décanter tout ca et quand ton but sera un peu plus éclairci je reviendrais

    j'ai une très forte conviction qu'il y a confusion sur les objects et leur propriétés de ta part
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  12. #12
    re
    re est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 116
    Points : 43
    Points
    43
    Par défaut
    Cher Expert Eminent Senior,
    Comme tu l'as constaté je ne suis pas un expert :-)
    Avec une image c'est mieux ou veux tu un fichier ?
    Nom : combobox.PNG
Affichages : 1103
Taille : 24,1 Ko

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub ComboBox1_Change()
    Sheets("Formule").Range("A1").Value = ComboBox1.Value
    CreateObject("WScript.Shell").SendKeys "{TAB}"
    ComboBox2.SetFocus
    End Sub
    Merci

  13. #13
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Bonjour
    Comme tu l'as constaté je ne suis pas un expert
    Et cela se voit (autant que se voit l'absence de réflexion) ...
    Déjà :
    L'évènement Change d'une combobox survient (comme son nom l'indique très clairement) lorsque le texte de la zone d'édition de la combobox est modifié.
    Ce qui veut dire que si tu y frappes "bonjour", cet évènement surviendra ... 7 fois ! ... et aura des incidences sur ta feuille ... 7 fois

    Mais le ton que tu emploies à l'égard de patricktoulon, que je salue, fait que je te mets un pouce rouge et te laisse personnellement méditer (cela fait du bien, de méditer un peu...)
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  14. #14
    re
    re est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 116
    Points : 43
    Points
    43
    Par défaut
    Citation Envoyé par unparia Voir le message
    Bonjour
    Mais le ton que tu emploies à l'égard de patricktoulon, que je salue, fait que je te mets un pouce rouge et te laisse personnellement méditer (cela fait du bien, de méditer un peu...)
    Mais que cela veut dire ?
    Je n'ai jamais manqué de respect à patricktoulon, il est venu vers moi pour m'aider et je le remercie pour son aide.Je ne comprends pas que tu puisses m'agresser, il me semble être courtois non ? le ''Cher Expert'' était tout ce qu'il y de plus respectueux avec de l'humour pour le sachant.
    Comment dois-je interpreter '' Et cela se voit (autant que se voit l'absence de réflexion)'' ?
    Je débute en code VBA je n'en ai aucune honte.

    Ceci dit, j'ai toujours eu de bonnes discutions très constructives ici, que me reproches tu exactement ?

    Pour en revenir à ta réponse , je ne comprends pas je n'ai aucune répétition, lorsque je choisi un nombre il s'affiche dans la cellule A1 et il y reste tant que je ne choisi pas un autre valeur et l'on passe à la combobox2 si l'on veut

    Bien à toi
    Ps : c'est bien la 1er fois ....

  15. #15
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Essaie la prochaine fois de dire "cher patricktoulon" et tout ira moins mal, hein ...
    Et apprends dans la foulée l'art de vivre --->> lorsque, après "cher" (qui est un adjectif qui implique un sentiment), on met en avant une fonction, un grade, un métier, etc ... (qui n'impliquent, eux, aucun sentiment), on "dit" certaines choses qui ne sont pas celles que tu crois.
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  16. #16
    re
    re est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 116
    Points : 43
    Points
    43
    Par défaut
    Cher unparia
    Ce n'est pas comme ça qu'il fallait interpréter, je t'assure que c'était très amical mais à chacun son humour :-)

    "Tu dis : Et apprends dans la foulée l'art de vivre '' (tu as du passer une mauvaise journée :-)
    Pas tout a fait d'accord avec toi que fais -tu de ''Cher Maître'' par exemple
    Bref incident clos !
    J'espère que j'arriverai à régler mon petit souci qui est le but de ce post, si quelqu'un à compris m'a demande et si quelqu'un veut bien m'aider
    @+

  17. #17
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    mais à chacun son humour
    Ah ? -->> accepte donc le mien

    PS : non, je ne dirais jamais "Cher Maître". Je dirais "Maitre" ou (si amitié annexe à la fonction) "Cher Pierre", "Cher Monsieur Dupont", mais en aucun cas "Cher Maître" !
    Te viendrait-il à l'idée (avocat ou accusé) de dire "Cher Juge" à un juge ? Non, n'est-ce-pas ? Bien sûr que non !
    Mais si toutefois tu le faisais, cela aurait une connotation que je te laisse deviner, hein ...
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  18. #18
    re
    re est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 116
    Points : 43
    Points
    43
    Par défaut
    Unparia,
    je n'ai pas envie de polémiquer, le cher Maître est bien un usage. je ne pensais qu'un petit cher allait créer un incident, dommage, tu sais ce que tu écris avec humour ou pas est quand même agressif, mais tu es pardonné...
    Que la paix soit avec toi :-)

    Et mon petit souci comment on le traite ?

  19. #19
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Et mon petit souci comment on le traite ?
    avec soin
    Que l'esprit soit avec toi
    A demain (peut-être ...)
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  20. #20
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    avec soin
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

Discussions similaires

  1. Désactiver et activer la touche Shift
    Par gorille68 dans le forum Sécurité
    Réponses: 3
    Dernier message: 31/03/2018, 18h47
  2. Index désactivés impossible à réactiver
    Par engi dans le forum Firebird
    Réponses: 8
    Dernier message: 01/07/2010, 09h52
  3. désactiver et réactiver l'aide de visual studio
    Par TSniper dans le forum Visual Studio
    Réponses: 0
    Dernier message: 22/04/2010, 22h45
  4. Réponses: 4
    Dernier message: 23/01/2009, 01h54
  5. Désactiver submit par la touche entrée
    Par tom42 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 14/02/2007, 15h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo