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 :

[VBA-E] Problème avec Sendkeys


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Homme Profil pro
    En reconversion
    Inscrit en
    Mai 2006
    Messages
    485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : En reconversion

    Informations forums :
    Inscription : Mai 2006
    Messages : 485
    Points : 161
    Points
    161
    Par défaut [VBA-E] Problème avec Sendkeys
    Bonjour à tous

    Dans le code suivant, j'ai lancer l'application Notepad.exe avec la commande Shell, le problème est que le bloc note est bien lancé mais n'est apparemment l'application active car elle n'est pas au premier plan et les commande avec sendkeys fonctionne sur excel et pas sur le bloc note comme normalement ça devrais car c'est la boite de dialogue ouvrir d'excel qui s'affiche
    .
    Y a t il quelque chose de particulier avec le bloc note car avec l'application (debitpro) qui est juste après dans mon code les commandes Shell et sendkeys fonctionne trés bien.

    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
     
    Dim NomFichier As Variant
     
    NomFichier = Application.GetSaveAsFilename("aze.cvs", fileFilter:="Fichier (*.csv), *.csv")
     
    If NomFichier <> False Then
    ActiveWorkbook.SaveAs NomFichier
    ActiveWorkbook.Close
    Else
    Exit Sub
    End If
    Shell """C:\Windows\system32\notepad.exe"""
    Application.SendKeys "^o"
    'Shell """C:\Program Files\RozetUtil\DebitPro\debitpro.exe"""
    'Application.SendKeys "%f+i"
    'Application.SendKeys "{tab 2}"
    'Application.SendKeys " "
    'Application.SendKeys "{tab}"
    'Application.SendKeys "~"
    End Sub
    Si quelqu'un peut me donner un petit coup de pouce.

    Merci d'avance

  2. #2
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Tu dois jouer avec la valeur (True ou False) de Wait.
    Je ne connais par ailleurs pas VBA et ignore pourquoi tu écris Application.sendkeys et pas sendkeys tout court !

  3. #3
    Membre habitué
    Homme Profil pro
    En reconversion
    Inscrit en
    Mai 2006
    Messages
    485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : En reconversion

    Informations forums :
    Inscription : Mai 2006
    Messages : 485
    Points : 161
    Points
    161
    Par défaut
    Je viens de chercher et je ne vois pas comment utilisé wait pour l'integrer dans mon code si tu peux etre un peu plus precis.

    Merci

  4. #4
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    hey ! Hélà !
    Je parle de l'argument Wait de sendkeys !

  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
    J'utiliserais aussi DoEvents après (ok jmf ? )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ActiveWorkbook.SaveAs NomFichier
    DoEvents
    et après

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Shell """C:\Windows\system32\notepad.exe"""
    DoEvents
    Bref, chaque fois que tu fais appel au système.
    Citation Envoyé par L'aide
    Arrête momentanément l'exécution afin que le système d'exploitation puisse traiter d'autres événements.

  6. #6
    Membre habitué
    Homme Profil pro
    En reconversion
    Inscrit en
    Mai 2006
    Messages
    485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : En reconversion

    Informations forums :
    Inscription : Mai 2006
    Messages : 485
    Points : 161
    Points
    161
    Par défaut
    Il y a quelque chose que je ne comprend pas pourquoi utiliser wait de sendkeys alors qu'avec le code suivant:

    Shell """C:\Windows\system32\notepad.exe"""

    le bloc note devrait etre mon application active alors que ce n'est pas le cas, puisqu'apparemment Excel est toujours actif.

    Desolé si je suis long à la détente !

  7. #7
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    oui... tu es long...
    Un moyen d'être plus rapide : Sendkeys dans l'aide en ligne et voir ce qu'est l'argument Wait (True ou False) et à quoi il sert !

  8. #8
    Membre habitué
    Homme Profil pro
    En reconversion
    Inscrit en
    Mai 2006
    Messages
    485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : En reconversion

    Informations forums :
    Inscription : Mai 2006
    Messages : 485
    Points : 161
    Points
    161
    Par défaut
    je vous remercie j'ai utilisé uniquement vos infos mais voila le résultat de mes recherche qui fonctionne :

    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
    Dim NomFichier As Variant
     
    NomFichier = Application.GetSaveAsFilename("aze.cvs", _
                                               fileFilter:="Fichier (*.csv), _
                                               *.csv")
     
    If NomFichier <> False Then
            ActiveWorkbook.SaveAs NomFichier
            ActiveWorkbook.Close
        Else
            Exit Sub
    End If
     
    ident = Shell("C:\Windows\system32\notepad.exe", vbNormalNoFocus)
    AppActivate ident
    DoEvents
    SendKeys "^o", True
    'Shell """C:\Program Files\RozetUtil\DebitPro\debitpro.exe"""
     'Application.SendKeys "%f+i"
     'Application.SendKeys "{tab 2}"
     'Application.SendKeys " "
     'Application.SendKeys "{tab}"
     'Application.SendKeys "~"
        End Sub

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

Discussions similaires

  1. [VBA-E] Probleme avec sendkeys
    Par Elstak dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 19/07/2006, 13h42
  2. [VBA EXCEL] Problème d'éxécution avec graphiques
    Par RedBurn dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 28/11/2005, 09h55
  3. [VBA Excel] problème de range avec find
    Par loacast dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 23/11/2005, 13h56
  4. [VBA] Copie d'une feuille (avec graphique)
    Par ed_dexia dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 06/10/2005, 09h56
  5. [VBA Excel] ecrire le caractere " avec une macro
    Par oktopuces dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 09/09/2005, 22h56

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