Commande SendKeys excel vers autocad [Résolu]

Sup62 13 Messages postés mercredi 13 avril 2005Date d'inscription 22 avril 2005 Dernière intervention - 20 avril 2005 à 14:06 - Dernière réponse : Sup62 13 Messages postés mercredi 13 avril 2005Date d'inscription 22 avril 2005 Dernière intervention
- 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
Afficher la suite 

10 réponses

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


Sleep 60000 'pause d'une minute

TBBUIM
Cette réponse vous a-t-elle aidé ?  
tbbuim1 940 Messages postés jeudi 20 février 2003Date d'inscription 3 février 2011 Dernière intervention - 20 avril 2005 à 14:58
0
Utile
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
Sup62 13 Messages postés mercredi 13 avril 2005Date d'inscription 22 avril 2005 Dernière intervention - 20 avril 2005 à 15:33
0
Utile
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
tbbuim1 940 Messages postés jeudi 20 février 2003Date d'inscription 3 février 2011 Dernière intervention - 20 avril 2005 à 17:48
0
Utile
À 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
Sup62 13 Messages postés mercredi 13 avril 2005Date d'inscription 22 avril 2005 Dernière intervention - 20 avril 2005 à 22:47
0
Utile
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?
tbbuim1 940 Messages postés jeudi 20 février 2003Date d'inscription 3 février 2011 Dernière intervention - 21 avril 2005 à 09:11
0
Utile
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
Sup62 13 Messages postés mercredi 13 avril 2005Date d'inscription 22 avril 2005 Dernière intervention - 21 avril 2005 à 11:30
0
Utile
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?
Sup62 13 Messages postés mercredi 13 avril 2005Date d'inscription 22 avril 2005 Dernière intervention - 22 avril 2005 à 00:44
0
Utile
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
tbbuim1 940 Messages postés jeudi 20 février 2003Date d'inscription 3 février 2011 Dernière intervention - 22 avril 2005 à 23:40
0
Utile
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
Sup62 13 Messages postés mercredi 13 avril 2005Date d'inscription 22 avril 2005 Dernière intervention - 23 avril 2005 à 12:01
0
Utile
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

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.