Important : Je ne suis pas un expert en programmation VBA, le peut de connaissances que je partage ici sont issues de mes expériences et des différentes aides que j’ai pu trouver sur internet, les programmes que je partage sur ce site peuvent être améliorés mais quel que soit mon niveau en VBA ces programmes pourront rendre service à ceux qui comme moi ont des difficultés à commencer leur premières programmations en VBA sous CATIA.
Ce programme sert a fait pour remplir un cartouche à l’aide d’une boite de dialogue à l’aide éventuellement de paramètres crées dans les modèles 3D. Pour ce tutoriel j’ai utilisé un cartouche dans lequel je vais me servir uniquement de la ligne « description », vous pourrez ensuite à l’aide de cet exemple ajouter des lignes et les configurer de la même façon.
Il faudra créer un cartouche et une ligne de texte, pour mon exemple la deuxième ligne prend la valeur « description » la première ligne ne sera pas utilisée dans cet exemple.
On crée un paramètre Chaîne « Outils / Formule… » :
Au démarrage de la macro une FORM va s’ouvrir, je clic sur le bouton « Paramètres », le programme va récupérer la valeur du paramètre « Description » si cette valeur est vide cela n’aura aucune incidence sur la bonne marche du programme, pour l’exemple j’ai entré la valeur « essai »
Déclaration des variables publiques, publiques veut dire que je pourrais utiliser la valeur de ces variables n’importe où dans le programme :
La fonction ChargeParam sert à récupérer la valeur du paramètre Description et de l’inscrire dans le TEXTBOX description :
En 1, on affecte la valeur CATIA.ActiveDocument à la variable DrawDocument, on indique au programme que DrawDocument est le document ouvert sur lequel on travaille soit pour notre exemple la mise en plan.
En 2, on affecte la valeur DrawDocument.Parameters à la variable param, on indique au programme que param est un paramètre de la mise en plan.
En 3, on affecte la valeur DrawDocument.Sheets.ActiveSheet à la variable Calque, on indique au programme que Calque est la feuille active de notre mise en plan.
En 4, on affecte la valeur Calque.Views à la variable AcView, on indique au programme que AcView est une vue active de notre mise en plan.
En 5, on affecte la valeur Calque.Views.ActiveView.Texts à la variable MaNote, on indique au programme que MaNote est une note dans une vue active de notre mise en plan.
La fonction ChargeParam sert à récupérer la valeur du paramètre Description et de l’inscrire dans le TEXTBOX description :
Je crée un nouvelle variable qui sera utilisée uniquement dans la fonction ChangeParam, puis je lui affecte la valeur du TEXTBOX description :
Dim NouveauDescription As String
NouveauDescription = UserForm1.TxtDescription.Text
Puis je fais une boucle sur tous les paramètres de la mise en plan, à la variable AncienParam, j’affecte le nom du paramètre :
Le renvoie à la fonction SplitName ne sert pas (ce sont des essais pour d’autres fonctions)
NBParam = param.Count : compte le nombre de paramètres de la mise en plan
Je fais une boucle sur tous les paramètres :
For i = 1 To NBParam
Pour (For) chaque paramètre, je récupère le nom du paramètre et je l’affecte à la variable NameParam :
NameParam = param.Item(i).Name
Puis je compare la valeur de cette variable au terme « Description », si (if) la variable et le terme sont identiques, alors (then), le TEXTBOX de la FORM prend la valeur du paramètre :
If NameParam = « Description » Then
UserForm1.TxtDescription.Text = param.Item(i).ValueAsString
End If
La fonction ChangeParam sert à récupérer la valeur du TEXTBOX description que l’on aura modifiée, et de l’utiliser pour modifier le texte du cartouche ainsi que le paramètre « Description »
Je crée un nouvelle variable qui sera utilisée uniquement dans la fonction ChangeParam, puis je lui affecte la valeur du TEXTBOX description :
Dim NouveauDescription As String
NouveauDescription = UserForm1.TxtDescription.Text
Puis je fais une boucle sur tous les paramètres de la mise en plan, à la variable AncienParam, j’affecte le nom du paramètre :
AncienParam = param.Item(i).Name
Puis je compare la valeur de cette variable au terme « Description », si (if) la variable et le terme sont identiques, alors (then) le paramètre »Description » prend la valeur de la variable NouveauDescription.
La fonction RempliCart va servir à remplir le cartouche :
AcView.Count sert à compter le nombre de vues dans la mise en plan, la boucle qui suit sert à trouver le Background View (le fond de plan) une fois trouvé on l’active AcView.Item(k).Activate:
Ensuite je crée une variable à laquelle j’affecte la valeur du TEXTBOX, puis j’indique le nombre de note (texte) qu’il y a dans le fond de plan CountNote = MaNote.Count
Ensuite la deuxième boucle K sert à trouver la note du cartouche nommée « Description » et à remplacer sa valeur par la valeur de la variable « description », la troisième boucle K va permettre de sélectionner le calque des vues et de l’activer (une fois le cartouche modifié on quitte le fond de plan).