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 :

de l'usage de la souris [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Inscrit en
    Mai 2010
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 100
    Par défaut de l'usage de la souris
    Bonjour à tous,

    Deux questions en une :

    1 - Comme Sendkeys simule l'envoi d'une touche, existe-t-il quelque chose d'équivalent qui simulerait le click de la souris ?

    2 - Est-il possible de bloquer l'usage de la souris (notamment son déplacement) pendant le fonctionnement d'une macro ?

    Merci de votre aide.

  2. #2
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    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 374
    Billets dans le blog
    8
    Par défaut heu
    bonjour


    il y a une solution parmi tant d'autre

    sa serai de donner le focus a l'object en question(feuille ,control,ect...)

    et de te servir de la fonction run

    exemple:

    tu a dans une feuille un bouton"commandbutton1"


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    sheets(1).shape("commandbutton1").select
    Application.Run ("Feuil1.CommandButton1_Click")
    ca n'est qu'une idée n'ayant pas plus de precision


    au plaisir
    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

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2010
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 100
    Par défaut de l'usage de la souris
    Bonjour Patrick,

    En fait je cherche à manipuler des objets extérieurs à Excel.
    J'ai une appli que j'appelle à travers un système sécurisé qui demande identifiant et tout le toutim.
    Avec une séquence de Senkeys qui envoie des TAB et ENTER, j'arrive à me positionner sur des boutons ou des champs à saisir.
    Mais là, j'ai un cas plus vicieux. L'appli que je veux titiller, accepte les envois de TAB, mais arrivé sur l'élément qui m'intéresse, la touche ENTER est inefficace (même avec la touche entrée réelle). Seul un clic de souris me permet d'activer l'élément. D'où ma demande de simulation de clic de souris.

    Pour le deuxième cas, il s'agit d'un problème que je rencontre lorsque je lance un programme excel qui travaille sur une base de près de 20000 enregistrements. Le temps de traitement dépasse la minute. Pour faire patienter l'utilisateur, j'ouvre un petit formulaire qui affiche le stade d'évolution du traitement.
    Mais si je déplace ma souris en dehors de la fenêtre excel, sur ma barre de lancement rapide par exemple, l'affichage de l'évolution du traitement s'arrête (toutefois le traitement continue).
    Par contre si je lance une appli quelconque (IE par exemple), en attendant la fin du traitement excel, là le fonctionnement est perturbé, il devient erratique et me génère des erreurs. D'où ma deuxième demande de blocage de la souris pour empêcher cela. Tant pis, l'utilisateur ira boire une mousse en attendant la fin du traitement.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    97
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 97
    Par défaut
    Cher Monsieur Setepenre,

    J'ai lu avec grand intérêt votre question. C'est avec fougue et détermination que je m'empars du problème.

    Après quelques recherches avancées, voici un lien qui devrait, j'en suis sûr, vous remplir d'allegresse.

    Voici :

    http://docvb.free.fr/apidetail.php?idapi=55

    En vous souhaitant une agréable programmation...

  5. #5
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    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 374
    Billets dans le blog
    8
    Par défaut re
    purrée de purée de zut

    je l'avait oublié celle la et en plus ce lien est carement dans ma signature profile

    cela dit il faut manipuler les apis avec delicatesse

    alors attention


    au plaisir
    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
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    97
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 97
    Par défaut
    C'est pas grave, j'y avais pensé pour toi...

  7. #7
    Membre confirmé
    Inscrit en
    Mai 2010
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 100
    Par défaut De la souris à la fenêtre windows
    Bonjour à vous,

    Intéressant les APIs mais je bloque toujours.
    En fait j'ai créé un objet InternetExplorer pour ouvrir une appli autre qu'Excel.
    VBA me propose tout un tas de propriétés et méthodes pour cet objet mais, à part quelques uns, je ne vois pas à quoi ils servent.
    C'est frustrant car je sens qu'il y a moyen de moyener avec tout ça.
    J'ai aussi créé un objet Windows.
    Ce qui est bizarre c'est que l'objet Windows a une propriété WindowState qui me permet de l'aggrandir au maximum mais avec xlMaximized et non vbMaximized. Mon objet InternetExplorer n'a pas cette propriété.

    Je deviens fou. J'ai plein d'outils dans les mains mais je ne sais pas à quoi ils servent. Et il ne faut pas compter sur l'aide VBA d'Excel.

    Y a-t-il quelque part une FAQ, un Tutoriel, un site qui me permettrait de comprendre tout cela ?

  8. #8
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    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 374
    Billets dans le blog
    8
    Par défaut re
    bon

    quand je disais qu'il faut faire appel aux api ca n'etait pas seulement celle de la souris

    puisque que tu travail sur d'autre fenetres
    il te faut dabors reconaitre leur handle

    regarde du coté de
    findwindowA
    setwindowA
    getwindowA

    enfin selon ton niveau en vba je te conseille d'y aller pas a pas


    bon courage

    au plaisir
    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

  9. #9
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Bonjour,

    Il aurait été intéressant (et poli...) de poursuivre et de répondre aux propositions que tu as déjà reçues

    http://www.developpez.net/forums/d10...lications-vba/

  10. #10
    Membre confirmé
    Inscrit en
    Mai 2010
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 100
    Par défaut Politesse
    Bonjour,

    Il n'est pas dans mes habitudes d'être impoli.
    Si cela peut te paraître le cas, je m'en excuse.
    En fait je suis un peu jeune dans le forum et surtout peu habitué à ce genre de choses. C'est le premier et le seul forum auquel je participe.
    Pour moi, Développez.com est comme un labyrinthe et parfois je suis un peu perdu. Chaque jour je découvre autre chose.
    Pour ce qui est des messages passés, je les avais laissés un peu de côté car je n'avais encore pas résolu mon problème, d'où la mutiplicité des discussions que j'avais lancées. Aujourd'hui, j'ai du mal a les retrouver dans la forêt de toutes les discussions qui tombent.
    C'est la raison pour laquelle je n'y ai plus donné suite.

    Cordialement
    Setepenre

  11. #11
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Citation Envoyé par setepenre Voir le message
    Aujourd'hui, j'ai du mal a les retrouver dans la forêt de toutes les discussions qui tombent.
    Tu peux retrouver tes discussions via ton "Tableau de bord"
    Click sur ton nom --> onglet statistiques --> Trouver toutes les discussions ouvertes par xxx

  12. #12
    Membre confirmé
    Inscrit en
    Mai 2010
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 100
    Par défaut Fenêtres
    Bonjour

    Je voudrais jouer un peu avec les APIs gérant les fenêtres et la souris.
    On m'a déjà donné qq conseils. On me parle de Handle.
    J'ai trouvé dans la FAQ une routine qui permet de récupérer le Handle de la Calculatrice :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Sub ApplicationPremierPlan()
        Dim Hwnd As Long
     
        'Récupère le Handle d'une fenêtre (la calculatrice dans cet exemple).
        'Le Handle est un nombre entier unique généré par Windows afin d'identifier les fenêtres.
        '"Calculatrice" correspond au titre de la fenêtre.
        Hwnd = FindWindow(vbNullString, "Calculatrice")
     
        'Si la calculatrice est déjà ouverte
        If Hwnd > 0 Then
            'Ramène la calculatrice au premier plan
            BringWindowToTop Hwnd
            'Affiche en mode "Normal"
            ShowWindow Hwnd, 1
            Else
            'Sinon, ouvre la calculatrice
            Shell "C:\WINDOWS\system32\calc.exe", vbNormalFocus
        End If
    End Sub
    Ca marche mais quand je remplace le mot Calculatrice par le nom de l'appli que je veux manipuler, le Handle est égal à 0.
    Je pense que le nom n'est pas bon. Celui qui apparaît sur le bandeau de la fenêtre comporte des points, des espaces des tirets. Je ne suis pas sûr d'avoir exactement la bonne orthographe.
    Comment faire pour récupérer les noms des fenêtres ouvertes.

    Merci de votre aide.

  13. #13
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonsoir tout le monde,
    setepenre, si tu veux bloquer Excel durant tontraitement, tu peu tester ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    'Ceci bloque Excel durant l'exécution du
    'code hormis les boites de dialogues qui
    'peuvent être utiles au fonctionnement de ce dernier
    Application.Interactive = False
        'Ici ton code...
    Application.Interactive = True
    Hervé.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Usage de la souris en VC++
    Par DBA_OCP dans le forum C
    Réponses: 2
    Dernier message: 10/03/2008, 22h10
  2. [VB6] Des labels qui réagissent à la souris
    Par murielle dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 24/10/2002, 14h19
  3. Trouver le composant sous la souris...
    Par BestofMac dans le forum Composants VCL
    Réponses: 2
    Dernier message: 17/07/2002, 02h46
  4. Comment masquer le curseur de la souris ?
    Par benj63 dans le forum C++Builder
    Réponses: 4
    Dernier message: 26/06/2002, 18h54
  5. FOnction api specifiant la position de la souris
    Par florent dans le forum C++Builder
    Réponses: 4
    Dernier message: 15/05/2002, 20h07

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