Aller au contenu

Prog Récupérer une selection


Messages recommandés

Posté(e)

Bonjour à tous

 

Je me sert d'une macro pour récupérer le selection d'un élément dans un product mais hélas je tombe sur la bonne vieille erreur : Type mismatch

 

Voila la ligne ou survient l'erreur :

Status = Selection.SelectElement2(Filter, "Choisir une plaque", False)

(Filter est égalle à Product)

 

Je ne comprend pas cette erreur j'ai regardé dans l'Automation mais je ne vois pas ce qui ne va pas avec ce que jai fait. Le type qu'il donne dans l'Automation n'est pas dans le VBA ou tout du moins il ne l'accepte pas. Je ne vois vraiment pas comment faire j'ai bien essayer d'autre type mais rien n'y fait.

 

Merci d'avance

 

Enael

Posté(e)

Salut Enael,

 

Bon, personne ne s'est lancé sur ton problème ?

 

On va essayer d'y voir un peu plus clair. Selectelement2 est une méthode pour vérifier si la sélection que tu as fait correspond bien au type demandé. Dans ton cas à toi, tu demandes que la sélection corresponde à un product. Par défaut, ton booléen à la fin est à false, cela veut donc dire que une requête est faite à l'utilisateur pour sélectionner le bon élément; dès que cela est bon, la sélection est validée.

 

la réponse que doit donner "status" est soit:

Normal

Cancel

Undo

Redo

 

Donc pour status, si tu doit lui mettre un type de variable dans VBA, mets-le en Variant déjà.

Ensuite, dans les exemples de l'aide, on trouve ceci:

ReDim InputObjectType(0) : InputObjectType(0)="Sketch"

Status=Selection.SelectElement2(InputObjectType,"Select a sketch",true)

 

Le InputObjectType ici est une variable de type liste à seule valeur.

A la place de Sketch, mets "product", passe le booléen à true et teste. Après il faut que tu teste la valeur retournée, du style If Status="Cancel" then ...

 

@+ tard

 

Gawel

  • 2 semaines après...
Posté(e)

Merci Gawel et Bonne année d'ailleurs

 

Je n'ai pas encore pu tester ce que tu m'as donné (pour caues d'arret maladie plus vacances) doncn je file tester ca et je te redis.

 

Merci encore

 

Enael

Posté(e)

Salut Gawel

 

Voila je viens de tester ce que tu m'avais donné mais rien a faire il y a toujours cette erreur que je ne comprend pas. Peut etre cela vient-il d'ailleurs mais je ne vois pas d'où... :mad2:

 

Enfin je vais chercher encore mais j'ai peu d'espoir, peut etre tourver une autre facon de faire ...

 

Enael

Posté(e)

Re Gawel c'est encore moi

 

Voila je nai toujours pas réussi à régler mon problème mais le véritable problème est apparement dans la décalaration de la variable ou plutot dans le type de la variable que je déclare Status en Variant, String, CATBSTR ou en rien ca me met toujours la même erreur.

 

Voila si tu as une idée....

 

Merci d'avance

 

Enael

Posté(e)

Salut Enael,

 

Bonne année à toi aussi, la santé et meilleur voeux pour 2005 !!

 

Je n'ai pas pu te répondre, car en ce moment, ça ne va pas très fort dans ma boite, et en plus, je suis en relation très tendue avec ma haute hiérarchie, à tel point que je vais bientôt faire partie de la 2ème plus grande entreprise de france (après les artisans bien sûr comme dit la pub !), si tu vois ce que je veux dire........ :casstet:

 

Donc ma grand souci du moment est le remodelage du CV et l'élaboration des lettres de motiv qui un exercice ma foi des plus complexes. Je vais aller faire un tour sur le web pour voir s'il n'y a pas une solution.

 

@+ tard

 

Gawel

Posté(e)

apparement, il faudrait faire cela:

 

ReDim sFilter(0) 'sans déclarer le type de variable de sFilter

 

sFilter(0) = "Product"

sStatus = Selection.SelectElement2(sFilter, "select a local axis", False)

 

sStatus lui doit être déclarer comme un string auparavant

et après:

If (sStatus = "Cancel") Then....... 'etc, à toi de mettre la suite

 

 

@+ tard

Amicalement

 

Gawel

Posté(e)

Bonjour Gawel

 

L'année commence mal pour toi apparement, désolé de ce qui t'arrive. J'espère que tu te sortiras très vite de cette situation houleuse. Mais tu as un attout que peu ont : tu es un développeur CATIA!!!!! <acronym class=dict title= Dans ce cercle très fermé que peu connaissent nous sommes l'élite de la nation oups je m'égare <acronym class=dict title= non mais c'est une qualification que peu de personne ont ou peuvent prétendre avoir.

 

Merci d'avoir répondu malgré tes soucis.

Bon courage

 

Enael

Posté(e)

Et un grand MERCI un!!

 

Merci Gawel voila j'ai suivi tes instructions et ca marche niquel!!!!!

 

Enfin débloqué merci

 

Enael

 

PS : <acronym class=dict title= Moi c'est mon centre de formation qui vient d'etre mis en liquidation judiciare, je viens de l'apprendre. Je ne sais pas ce qui va nous arriver, où on va travailler, qui vont etre nos profs et surtout si j'aurai les moyen financiers pour finir ma formation si on change de localité enfin voila vive 2005!!!

Posté(e)

De rien,

 

je suis content que ça marche du premier coup :exclam:

 

Je ne sais pas encore si je peux me prétendre développeur à juste titre, mais force est de reconnaitre que j'arrive à me débrouiller dans ce domaine. Merci pour tes encouragements, ça fait chaud au coeur par cette saison.

 

A bientôt

 

Gawel

Posté(e)

J'y comprend plus rien!!!

 

Voila jai fait ce que tu m'avais dit et ca marchait niquel j'étais enfin débloquer. Que demander de plus?!

 

Et aujourd'hui je relance ma macro et paf ca marche plus alors que je n'ai pas du tout toucher a cette partie du code. Ca me marque une erreur du type : Function or interface marked as restricted, or the function uses an Automation type not supported in Visual Basic.

 

Donc voila si c'est déja arrivé a quelqu'un ou si quelqu'un a une idée d'ou cela pourrait venir

Merci de me faire signe

 

Enael

Posté(e)

Salut !

 

 

Juste un mot pour vous souhaiter à tous les 2 bon courage pour cette année, même si le début est plutôt maussade.

 

J'espère que vous trouverez rapidement chacun une solution à vos emmerdes et que nous auront toujours le plaisir (et l'honneur) de vous lire ici.

 

A tout hasard, vous chercheriez ou et quoi comme taf ?

Ciao :cool:

Posté(e)

Salut tout le monde,

 

pour répondre d'abord à enael:

si cela a marché une fois, c'est qu'il doit y avoir une différence par rapport à ton test concluant. Peut-être s'agit-il d'une licence manquante, ou peut-être as-tu une référence dans l'éditeur VB qui a été décoché ou qui n'est plus prise en compte.

 

Peux-tu encore relancer l'éditeur VB ? as-tu fait un debug dans l'éditeur pour savoir dans quelle partie le code coince ?

 

J'ai déjà eu cela autrefois, cela correspondait pour moi à une référence qui était décochée une fois.

Une autre fois, je crois aussi que j'avais eu le problème par rapport à certaines stations: le prog VBA marchait pile poil sur ma station et sur d'autres aussi, et dès que je faisais le test sur un autre site, cela ne marchait plus: je me suis rendu compte qu'en fait sur les stations qui ne marchaient pas, il manquait un produit de catia qui n'était pas installé et que mon code, sans le savoir, utilisait des objets et des méthodes de ces produits !!

 

j'ai donc comparé les produits entre ma station et celles qui ne marchaient pas et bingo !

 

Amicalement

 

Gawel

Posté(e)

Pour répondre à 8_pool :

 

pour l'instant, je réfléchis pas mal....... :casstet:

 

j'ai eu des propositions intéressantes pour travailler sur paris, lyon ou toulouse, mais cela fait un peu loin et ce sont des postes on va dire où on y est en permanence, donc pour la vie de famille, ça change tout. Du coup, si je dois partir (avec toute ma petite famille), je pense que je pencherais vers la bretagne, du côté de rennes, vers chez PSA par exemple.

 

les domaines peuvent être assez varié: automobile, aéronautique, industrie du moule (mais ce secteur, ça va pas très fort en ce moment, et je sais de quoi je parle.....), équipement, etc......

 

Moi, personnellement, j'aimerais bien continuer à travailler dans le développement autour de catia, faire du support technique (c'est ce que je fais tous les jours !), de la formation (pourquoi pas dans des centres de formation ou école, je crois que ça me botterait pas mal), tout cela autour du thème de la mécanique.

 

J'ai pensé aussi à me reconvertir (bâtiment par exemple), mais là je m'engage sur des formations je pense.

 

Ah !!!! c'est pas simple. D'ailleurs, je me suis dit il y a pas longtemps, je vais me faire un site perso sur le web, une sorte de CV avec démo de ce que je suis capable de faire; la prog en html, j'en ai fait pas mal pour ma boite, alors ça devrait pas être compliqué ! Le truc top, avec des super références pour que si tu tapes catia dans google c'est mon site qui apparaît en premier !!! :) :) Non, faut qu'j'arrête, je m'emballe trop là......

 

Amicalement

 

Gawel

Posté(e)

Tout d'abord merci a tous pour votre soutiens ca fait chaud au coeur

 

Pour Gawel : si jamais tu as besoin de deux trois truc hésite pas vu que je pense que une fois fiini mon bts j'enchainerais sur une formation web et donc je code pas trop mal en html et en php un peu en javascript aussi enfin si tu as besoin je peux te filer un coup de mains sans souci

 

Amicalement

 

Enael

Posté(e)

Si jamais quelqu'un connaitrais une bonne boite qui fait des sites web et qui chercherait a prendre un apprentie ou qui serait tenter ...

 

Merci de me faire signe

 

Enael

Posté(e)

Voila mon problème est toujours la il maffiche toutjours : Function or interface marked as restricted, or the function uses an Automation type not supported in Visual Basic tout en pointant sur la fonction SelectElement2 de ma macro.

 

Poru ce qui est des références et touts ce qui peut etre décocher ou est ce que je pourrais voir cela?

 

Merci d'avance

 

Enael

Posté(e)

Salut Enael,

 

il faudrait que tu mettes le début du code au complet (si possible) pour pouvoir l'étudier, cela peut simplement venir d'une déclaration de variable. Apparemment, tu n'es pas le seul à avoir ce type de problème, d'autres on eut le même message d'erreur.

 

@+ tard

 

Gawel

Posté(e)

Salut Gawel

 

Voici le code depuis le début comme tu me l'a demandé

 

Dim Titre As String

Dim Direction As String

Dim FichierText As String

Dim Selection As Selection

Dim sStatus As String

 

'Saisie du chemin du fichier de sortie

Titre = "Définir le chemin du fichier de sortie"

Direction = "Fichier de sortie"

FichierText = InputBox(Direction, Titre, "c:\Temp\CoordHole.txt")

 

'Type de la sélection

ReDim Filter(0)

Filter(0) = "Product"

 

'Sélection par l'utilisateur de la pièce à scanner

Set Selection = CATIA.ActiveDocument.Selection

sStatus = Selection.SelectElement2(Filter, "Choisir une plaque", False)

MsgBox sStatus

 

Enael

Posté(e)

 

Dans ta ligne de déclaration de variable suivante:

Dim Selection As Selection

 

mets plutôt:

Dim Selection

 

normalement, cela t'enlève ton message d'erreur :cool:

 

Amicalement

 

Gawel

Posté(e)

Oh Gawel mon sauveur!!!! <acronym class=dict title=

 

Non plus sérieusement merci beaucoup tu viens encore une fois de me débloquer.

 

Par hasard tu veux pas faire mon boulot? Je suis sur que toi tu en aurais pas pour longtemps alors que moi je galère comme ca devrait pas etre permis.

 

Merci encore

 

Enael

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité