Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Excel > VBA Excel

Réponse
 
Outils de la discussion
Vieux 29/05/2006, 19h16   #1 (permalink)
Membre Confirmé
 
Date d'inscription: mai 2006
Messages: 233
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 :
 
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

Dernière modification par bbil ; 29/05/2006 à 19h20 Motif: Rajout balises de code ... pensez-y !! #
zoumzoum59 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 29/05/2006, 19h24   #2 (permalink)
Inactif(ve)
 
Avatar de jmfmarques
 
Date d'inscription: décembre 2005
Localisation: Plus ici.
Messages: 3 838
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 !
jmfmarques est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 29/05/2006, 20h13   #3 (permalink)
Membre Confirmé
 
Date d'inscription: mai 2006
Messages: 233
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
zoumzoum59 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 29/05/2006, 20h48   #4 (permalink)
Inactif(ve)
 
Avatar de jmfmarques
 
Date d'inscription: décembre 2005
Localisation: Plus ici.
Messages: 3 838
Par défaut

hey ! Hélà !
Je parle de l'argument Wait de sendkeys !
jmfmarques est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 29/05/2006, 20h50   #5 (permalink)
Modérateur
 
Avatar de ouskel'n'or
 
Date d'inscription: février 2005
Localisation: Une petite rue qui "avait" un merle
Messages: 11 640
Par défaut

J'utiliserais aussi DoEvents après (ok jmf ? )
Code :
 
ActiveWorkbook.SaveAs NomFichier
DoEvents
 
et après

Code :
 
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.
__________________
Je...ne...réponds...pas....aux...questions...techniques... par...mp
La recherche (VBA-E) : Le Forum, La FAQ, Les cours et tutoriels, Contribuez, Les Sources et... l'Aide en ligne !!!
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 29/05/2006, 21h11   #6 (permalink)
Membre Confirmé
 
Date d'inscription: mai 2006
Messages: 233
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 !
zoumzoum59 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 29/05/2006, 21h30   #7 (permalink)
Inactif(ve)
 
Avatar de jmfmarques
 
Date d'inscription: décembre 2005
Localisation: Plus ici.
Messages: 3 838
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 !
jmfmarques est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 31/05/2006, 21h02   #8 (permalink)
Membre Confirmé
 
Date d'inscription: mai 2006
Messages: 233
Par défaut

je vous remercie j'ai utilisé uniquement vos infos mais voila le résultat de mes recherche qui fonctionne :

Code :
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

Dernière modification par AlainTech ; 01/06/2006 à 07h49 Motif: Balises [code]
zoumzoum59 est déconnecté   Envoyer un message privé Réponse avec citation
NEWS MS-OFFICEFAQs OFFICETUTORIELS OFFICELIVRES OFFICESOURCES VBA

Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Excel > VBA Excel



Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide