VBA FontPoints ne fonctionne qu'une seule fois

Bonjour,

J'ai une macro très simple qui lorsqu'on a un plan d'ouvert, on dimensionne une note dans le cartouche selon le nombre de caractères.

La zone utile du code est celle-ci (selection de la note et modification de la taille Police) :

boolstatus = Part.Extension.SelectByID2("Objet de détail220@Fond de plan1", "NOTE", 0, 0, 0, False, 0, Nothing, 0)
Part.FontPoints 16

Sur l'ensemble des plans avec le quel j'ai testé, j'ai constaté ceci.

Lors de la première exécution (peu importe que j'ai sélectionné une vue, ou que je sois dans le cartouche), on voit bien la macro mettre en surbrillance de sélection ma note et modifiée sa taille.

Si je modifie 16 de ma macro par 12 par exemple, lors de la seconde execution ça fonctionne aussi.

Par contre si je modifie à la main la note, la macro ne veut plus fonctionner ensuite. Sauf si je double clique sur la note et en executant la macro sans quitter la sélection, ensuite je peux quitter la note et continuer d'executer la macro.

Mais dès que j'entre une valeur manuellement la macro ne veut plus fonctionner...

Avez-vous une idée de la raison ?

 

Bonjour,

 

Déjà qu'entend tu par 'une valeur manuelle' ?

 

Pour moi ton soucis d'exécution viens du 'False' et de ta sélection, quand tu sélectionne ta note si tu la désélectionne tu n'es pas forcement au même endroit qu'au début. Tu clic surement sur une vue ou autre.

 

 

boolstatus = Part.Extension.SelectByID2("Objet de détail220@Fond de plan1", "NOTE", 0, 0, 0, False, 0, Nothing, 0)

 

Il faudrait peu être réinitialisé ta sélection en début de macro pour sélectionner ta note en fond de plan. 

 

Pour les autres note sont peu être attaché a une vue qui empêche toutes modification par la macro. Dans ce cas il faudrait parcourir toutes les vue du documents pour que ce soit efficace. 

 

Sinon tu a aussi la méthode de modifier les propriété de document et laisser les note en 'utiliser la police du document' Il te suffira de faire différente propriété suivant tes choix.

Pour vraiment fournir une analyse juste, concernant ton erreur, une ligne de code semble insuffisante.

Joint le code complet et éventuellement un mise en plan cela sera plus facile de dire ou de tester le problème.

 

1 « J'aime »