8_pool Posté(e) le 17 janvier 2005 Posté(e) le 17 janvier 2005 Salut à tous ! Dans une macro, je cherche à récupérer le nombre d'imprimantes disponible sous Catia. Voila le bout de code : Dim ActivePrinter As Printer Set ActivePrinter = CATIA.ActivePrinter MsgBox ("L'imprimante active est : "&ActivePrinter.DeviceName) Dim PrintersCollection As Printers Set PrintersCollection = CATIA.Printers Dim nb_printers As long Set nb_printers = PrintersCollection.Count MsgBox ("Il y a "&Cstr(nb_printers)&" imprimantes de déclarées") La ligne Set nb_printers.... me renvoie une erreur Objet requis et je ne vois pas pourquoi !!! Merci d'aider un débutant....... Ciao :cool:
coco9 Posté(e) le 17 janvier 2005 Posté(e) le 17 janvier 2005 Salut 8_pool, Je pense que l'erreur vient du fait que tu emplois la fonction "Set", alors que celle-ci est réservée pour les objets. Ne rien mettre pour les variable explicites. "Set ActivePrinter = CATIA.ActivePrinter" ---- >> Ok ( quoi que le nom de ton objet merite d'être personnalisé, ex : "MyActivePrinter") mais comme nb_printers est de type long, donc : nb_printers = PrintersCollection.count Je te conseille aussi de retirer les accolades "()" externes à la fonction msgbox ou alors utilise : Call msgbox (......) si tu veux les garder. Bon courage Coco9
8_pool Posté(e) le 18 janvier 2005 Auteur Posté(e) le 18 janvier 2005 Grand Merci à toi, coco9 ! C'est tellement évident..... OK pour le nom des variables, j'ai juste pour le moment repompé les exemples de l'aide dans un bout de fichier test. OK également pour les parenthèses, mais dans les exmples que j'ai pu trouvé, tantôt il y en a et tantôt il n'yen a pas, alors dans le doute, je les ai mises. Ciao :cool:
coco9 Posté(e) le 18 janvier 2005 Posté(e) le 18 janvier 2005 Salut, Pour compléter ma réponse du 17 à propos des parenthèses, quand j'ai noter "Je te conseille ...", j'aurais du écrire "Il faut...". En effet l'interpréteur n'accepte pas les parenthèses dans un appel de "sub" sauf si on met "call" devant, mais oblige à les utiliser pour les appels de "Function", sauf s'il n'y pas de retour. msgbox est un bon exemple : Dim Result as IntegerResult = MsgBox("Message", vbInformation, "Titre") ou MsgBox "Message", vbInformation, "Titre"ouCall MsgBox("Message", vbInformation, "Titre") Reste quand même à vérifier si avec le mot clés "ByRef" la syntaxe est la même (je crois que oui). A plus, Coco9
Messages recommandés
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 compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant