Commande SendKeys excel vers autocad

Résolu
Sup62 Messages postés 13 Date d'inscription mercredi 13 avril 2005 Statut Membre Dernière intervention 22 avril 2005 - 20 avril 2005 à 14:06
Sup62 Messages postés 13 Date d'inscription mercredi 13 avril 2005 Statut Membre Dernière intervention 22 avril 2005 - 23 avril 2005 à 12:01
Bonjour,

j'essaye de faire une macro sous excel qui permet d'envoyer une liste
de commandes de dessin contenues dans une colonne d'excel sous autocad.
J'arrive à lancer autocad par vba mais on dirait qu'Autocad ne
reconnait pas la commande sendkeys, j'ai essayé de diverses manières et
il me met toujours des erreurs:



Dim touches As String

touches = "{F2}" & "^v" 'agrandit fenêtre de commandes autocad et colle la sélection

objAcad.Visible = True

objAcad.SendKeys touches, True



Donc si quelqu un a une idée, merci d'avance



salut

10 réponses

tbbuim1 Messages postés 940 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 3 février 2011 9
21 avril 2005 à 17:13
Public Declare Sub Sleep Lib "kernel32" (ByVal dwTime As Long)


Sleep 60000 'pause d'une minute

TBBUIM
3
tbbuim1 Messages postés 940 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 3 février 2011 9
20 avril 2005 à 14:58
Tu as une erreur car le caractère ^ est un caractère spécial non reconnu par SendKeys.



Il faut donc le mettre entre {^} pour que le SendKeys l'envoi tel quel...



voici la liste des caractères spéciaux non reconnu par SendKeys:

+, ^, %, ~, (, ), {, }, [, ]



Voilà, j'espère que cela résoudra tes problèmes.

TBBUIM
0
Sup62 Messages postés 13 Date d'inscription mercredi 13 avril 2005 Statut Membre Dernière intervention 22 avril 2005
20 avril 2005 à 15:33
ah merci tbbuim, ca fait deja une erreur de moins, mais il me met quand même une erreur au niveau du sendkeys.

j'ai meme essayé les commandes objacad.paste et objacad.selection.paste pour voire si au moins, il me détectait pas d'erreurs la dedans, mais manque de bol, même ca il aime pas, il me met propriété ou méthode non gérée par l'objet.

donc jsais plus trop quoi faire ou quoi essayer
0
tbbuim1 Messages postés 940 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 3 février 2011 9
20 avril 2005 à 17:48
À mon humble avis, je pense qu'il faudrait que tu fasses un sendkeys tout court.

Sans mettre Autocad.sendkeys ...

Il faudrait que tu parviennes à lancer Autocad et donner le focus à autocad

Et à ce moment là que ton prog envoi le sendkey, il ira forcément sur l'appli ayant le focus.

Là je pense que c'est succeptible de fonctionner. Bon courage
TBBUIM
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Sup62 Messages postés 13 Date d'inscription mercredi 13 avril 2005 Statut Membre Dernière intervention 22 avril 2005
20 avril 2005 à 22:47
oulah jamais utiliser de focus, jviens de tester en faisant divers manips avec objacad.setfocus mais il a pas l'air d'aimer et me met des erreurs

c est sur qu'on peut donner le focus à un logiciel comme ici autocad?
0
tbbuim1 Messages postés 940 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 3 février 2011 9
21 avril 2005 à 09:11
En fait, je voulais dire que lorsque tu lance l'appli elle a
automatiquement le focus en principe, elle apparait en premier plan
quoi. Là, à la suite dans ton code, tu envois un SendKeys tout court,
tu as essayé ça?

TBBUIM
0
Sup62 Messages postés 13 Date d'inscription mercredi 13 avril 2005 Statut Membre Dernière intervention 22 avril 2005
21 avril 2005 à 11:30
ca devrait marcher mais le problème, c est que autocad mets pas loin
d'une minute pour se lancer, ca cause ptet problème car j'ai essayé et
il m'effectue le f2 et le ^v sous excel

je pense qu il faudrait que je dise à vba d'attendre 60 secondes avant
d'effectuer la suite des commandes se trouvant après le lancement
d'autocad et que je lui dise aussi de cacher la fenêtre excel, car même
après le lancement d'autocad et la ligne objAcad.Visible = True, c'est toujours la fenêtre excel qui se trouve à l'écran...

donc voila, et c est possible en vba de lui dire d'attendre un certain temps avant d'exécuter la suite du programme?
0
Sup62 Messages postés 13 Date d'inscription mercredi 13 avril 2005 Statut Membre Dernière intervention 22 avril 2005
22 avril 2005 à 00:44
niquel, c est un peu long du coup mais ca marche, le seul hic, c est
que je dois n'avoir aucune autre fenetre genre poste de travail ou
application genre page internet... lancée en meme temps sans quoi il
m'effectue le sendkey sous ces applications

pas d'idée pour résoudre ce ridicule bug?



et merci tbbuim, tu m'as été d'un grand secours
0
tbbuim1 Messages postés 940 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 3 février 2011 9
22 avril 2005 à 23:40
lol thx ça sert à ça les potes, d'ailleurs n'oublies pas de mettre réponse acceptée

Pour ce ridicule bug, ya mieux, il suffit de récupérer le thread de t'as fenêtre autocad et d'y envoyer le sendkey.

vas sur http://www.mentalis.org/apilist/s.shtml

et clic sur Set ActiveWindow

tu verras comment activer t'as fenêtre autocad.

Mais il te faut pour ça connaitree le n° de ton thread

tu peux l'obtenir avec ce soft ou une fonction genre

http://www.vbfrance.com/code.aspx?ID=7838

mais ya mieux mais je le retrouve plus là dsl
TBBUIM
0
Sup62 Messages postés 13 Date d'inscription mercredi 13 avril 2005 Statut Membre Dernière intervention 22 avril 2005
23 avril 2005 à 12:01
ouhla, ca m'a l'air complexe, jvais voire
ce que je peux faire avec ca, sans quoi jvais voire s'il est pas
possible de jongler avec sendkeys alt+tab voire si ca peut pas m'aider
aussi

mici encore
0
Rejoignez-nous