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 :

Sendkey excel vba et application console


Sujet :

Macros et VBA Excel

  1. #1
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Août 2007
    Messages
    117
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Août 2007
    Messages : 117
    Points : 133
    Points
    133
    Par défaut Sendkey excel vba et application console
    Bonjour,

    je suis encore un debutant en vba, pourtant pour des besoins professionel j'ai besoin de simuler les frappes de clavier dans une application console
    je m'explique :

    j'ai construit un tableau sur excel qui est alimenté par un userform
    or ces meme donnés doivent resaisie dans l'application console
    je me suis un peu renseigner et apparement avec sendkey cela serait possible de simuler la saisie dans le userform ensuite dans l'application windows
    du style
    application.sendkey "150"
    percontre je ne sais pas comment faire pour que ceci ai lieu dans l'application console
    je voudrait essayer windows("nomappliconsole").activate mais je crois que se n'est pas si smple que cela
    si qq'un peut m'eclairer sur ce sujet je lui serai tres reconnaissant

    merci

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Tu as un exemple bien fait dans l'aide, à Sendkeys, où on te montre comment envoyer plusieurs touches dans une boucle [for i = 1 to NbreTouches]
    Je ne le reproduit pas ici mais si tu n'as pas l'aide, tu dis
    A+

  3. #3
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Août 2007
    Messages
    117
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Août 2007
    Messages : 117
    Points : 133
    Points
    133
    Par défaut
    le probleme n'est pas tant la boucle que de faire la simulation dans cette application console voila comment je voudrais que cela se passe
    d'abord saisir les donnée dans mon tableau grace au userform puis en appuyant sur un bouton reprendre ces donnée et simuler la frappse dans l'application console ( en fait c'est un programme de facturation en .exe mais construit comme une appli console)

    ce que je me demande en suivant l'exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ReturnValue = Shell("appliconsole.exe", 1)
    est ce que cela marchera pour cette appli (le copier, coller ne marche pas)

    je vais essayer demain (l'appli etant au boulot) et je donnerai des news

    merci

    pour info voila ce que je vais essayer demain
    mes donnee sont classees par date de saisie


    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    Sub  CommandButton1_Click()
    Dim ReturnValue, I
    Set deb = Column(1).findfirst(text1) ' text1 est un textbox qui donne la date debut
    Set fin = Column(1).findlast(text2) ' text2 est un textbox qui donne la date fin
    debl = deb.Row
    finl = fin.Row
     
     
    ReturnValue = Shell("DKV.EXE", 1)  
    AppActivate ReturnValue            
    For I = debl To finl  step 1
        SendKeys Cells(I, 8), True
        SendKeys "{END}", True
        SendKeys "{ENTER}", True
        SendKeys "{F3}", True
        SendKeys Cells(I, 3), True
        SendKeys "{ENTER}", True
        SendKeys Left(Cells(I, 1), 2), True
        SendKeys Mid(Cells(I, 1), 3, 2), True
        SendKeys "{ENTER}", True
        SendKeys Left(Cells(I, 4), 2), True
        SendKeys Mid(Cells(I, 4), 3, 2), True
        SendKeys "{ENTER}", True
        SendKeys Left(Cells(I, 5), 2), True
        SendKeys Mid(Cells(I, 5), 3, 2), True
        SendKeys "{ENTER}", True
        SendKeys Left(Cells(I, 6), Len(Cells(I, 6)) - 3), True
        SendKeys "{RIGHT}", True
        SendKeys "{RIGHT}", True
        SendKeys Right(Cells(I, 6), 2), True
        SendKeys "{ENTER}", True
        SendKeys Left(Cells(I, 6), Len(Cells(I, 6)) - 3), True
        SendKeys "{RIGHT}", True
        SendKeys "{RIGHT}", True
        SendKeys Right(Cells(I, 6), 2), True
        SendKeys "{ENTER}", True
        SendKeys "{END}", True
        SendKeys "{ENTER}", True
        If Cells(I, 10).Value > 102 Then
        SendKeys "j", True
        SendKeys "{ENTER}", True
        SendKeys "{ENTER}", True
        SendKeys "{ENTER}", True
        SendKeys "{ENTER}", True
         SendKeys Left(Cells(I, 6), Len(Cells(I, 6)) - 3), True
        SendKeys "{RIGHT}", True
        SendKeys "{RIGHT}", True
        SendKeys Right(Cells(I, 6), 2), True
        SendKeys "{ENTER}", True
          SendKeys "{ENTER}", True
        Else
          SendKeys "{ENTER}", True
        End If
        If checkbox1.Value = True Then
        SendKeys "{F3}", True
          SendKeys "{ENTER}", True
            SendKeys "{F10}", True
            SendKeys "{ENTER}", True
        Else
         SendKeys "{F10}", True
            SendKeys "{ENTER}", True
        End If
    Next I                
    End Sub

  4. #4
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Août 2007
    Messages
    117
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Août 2007
    Messages : 117
    Points : 133
    Points
    133
    Par défaut
    malheureusement cela n'a pas marché

    voila le chemin qu'il a dans le raccourcis
    D:\DLC83\bin\_progres.exe -basekey "ini" -ininame j:\ini\dkv.ini -pf j:\ini\dkv.pf

    quand j'essaye :returnvalue=shell(....progres.exe)
    j'ai juste une console et rien d'autre
    j'ai essayé aussi de faire pareil avec les autres : returnvalue=shell(....dkv.ini)

    la je ne sais pas quoi faire

    est il possible de lancer le raccourci .lnk avec shell ?
    merci

  5. #5
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Ma première idée serait de te demander pourquoi ne pas lancer directement l'exécutable ?

  6. #6
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Août 2007
    Messages
    117
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Août 2007
    Messages : 117
    Points : 133
    Points
    133
    Par défaut
    je peut mais je n'arrive pas a faire en sorte qu'il le selectionne pour ensuite simuler les frappes
    je suis vraiment novice dans ce domaine

    ca marche quand je selectionne mon prog puis je reselectionne mon classeur
    et dans le code je met application.windowstate = xlminimized

    une derniere question please
    l'appli marche mais il semble que {f3} et {END} ne marche pas
    si qq'un peut m'aider s'il vous plait

  7. #7
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Pour f3, je pense que tu as bien mis F3... Pour End ? Désolé mais il faudrait avec un test sous la main...
    Sous Excel, F3 ne fait rien (avec F1 j'ai bien l'aide)
    Ce que tu pourrais faire pour tester, c'est modifier une touche de fonction dans Excel et vérifier le fonctionnement
    Par contre, j'ai essayé la combinaison de touche "^{ENTER}" qui aurait dû avoir une action, or rien ne s'est produit (?)
    Mais je ne peux pas dire si c'est parce que {ENTER} ne fonctionne pas ou si la raison est tout autre
    Très désolé
    Bon courage

  8. #8
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Août 2007
    Messages
    117
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Août 2007
    Messages : 117
    Points : 133
    Points
    133
    Par défaut
    Désolé pour la réponse très tardive mais merci bcp le problème est résolu

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 16/01/2023, 10h20
  2. [VBA EXCEL] Fermer l'application Excel
    Par scully2501 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 22/10/2007, 12h17
  3. [VBA-E] Application Excel ou Access
    Par Observatoire dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 20/03/2006, 12h00
  4. VBA et application Excel
    Par BonyR dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 22/09/2005, 09h31

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