Canalblog
Editer l'article Suivre ce blog Administration + Créer mon blog
Publicité
AutoCAD et VBA
22 mars 2008

Jeu de sélection

En consultant les statistiques de ce blog, je me suis aperçu que beaucoup de personnes venant consulter ces sources arrivent suite à une requête sur Google du type "Le jeu de sélection existe".
Cette erreur arrive parce que le jeu de sélection précédemment créé n'a pas été correctement effacé de la mémoire d'AutoCAD, soit parce que le code ne le prévoit pas (c'est pas bien !), soit parce que lors des différents test de la macro, on l'a quittée avant d'arriver à l'instruction effaçant le jeu de sélection.
Je vous propose un petit code qui résout cette question une fois pour toute :


Sub ErreurJeuSelection()
'Déclaration des variables :
Dim sset As AcadSelectionSet 'variable du type "jeu de sélection AutoCAD"


On Error GoTo gestErr 'Si VBA rencontre une erreur en cours d'exécution, aller au gestionnaire d'erreur

'Creation du jeu de sélection "JeuSel1"
'Si le jeu de sélection "JeuSel1" existe déjà, il y aura une erreur:
'VBA ira sur le gestionnaire d'erreur avant de revenir à la ligne suivante

Set sset = ThisDrawing.SelectionSets.Add("JeuSel")


'Suite des instructions ici



'Avant de quitter la procédure, on efface l'objet "sset"
Set sset = Nothing
'puis on efface le jeu de sélection de la mémoire :
ThisDrawing.SelectionSets.Item("JeuSel").Delete

'Fin de l'exécution ici :
Exit Sub 'On quitte la procédure


gestErr: 'Ici commence le gestionnaire d'erreurs

If Err.Number = -2145320851 Then 'Si le code d'erreur correspond à celui d'un jeu de sélection déjà existant
    ThisDrawing.SelectionSets.Item("JeuSel").Delete 'Alors on efface le jeu de sélection de la mémoire
    Set sset = ThisDrawing.SelectionSets.Add("JeuSel") 'Puis on recrée un nouveau jeu de sélection
    Resume Next 'Et on repart à la ligne qui suit celle qui a engendré l'erreur
Else 'Sinon
    Msgbox Err.Number & " : " & Err.Description 'indiquer le code d'erreur et sa description
    Exit Sub 'puis quitter la procédure
End If

End Sub


Publicité
Publicité
Commentaires
T
Merci pour ce blog. Ton introduction résume assez bien l'inconfortable position des utilisateurs Francais d'Autocad...
AutoCAD et VBA
Publicité
Derniers commentaires
Publicité