aide pour macro cartouche svp
2 participants
Page 1 sur 1
aide pour macro cartouche svp
Salut,
J'ai un souci sur une macro pour remplir mon cartouche catia v5:
La macro en question fonctionne bien sur une variable " Description", mais je n'arrive pas a mettre en place les autres variable que j'ai rajouter dans le userform "Numero"-"echelle" et "date".
Une âme charitable pourrai me donner un coup de main svp.
merci.
macro:
Public NameDraw As String
Public DecoupageChaine As Variant
Public ConteurPart As Integer
Public CountVieuw As Integer
Public NBParam As Integer
Public NameParam As String
Public CountNote As Integer
Public MaNote02 As DrawingText
Sub CATMain()
UserForm1.Show
End Sub
Public Property Get DrawDocument() As DrawingDocument
Set DrawDocument = CATIA.ActiveDocument
End Property
Public Property Get param() As Parameters
Set param = DrawDocument.Parameters
End Property
Public Property Get Calque() As DrawingSheet
Set Calque = DrawDocument.Sheets.ActiveSheet
End Property
Public Property Get AcView() As DrawingViews
Set AcView = Calque.Views
End Property
Public Property Get MaNote() As DrawingTexts
Set MaNote = Calque.Views.ActiveView.Texts
End Property
Public Function ChargeParam()
UserForm1.Projet.Caption = "Projet"
SplitName
UserForm1.Label1.Caption = NameDraw
'
NBParam = param.Count
For i = 1 To NBParam
NameParam = param.Item(i).Name
If NameParam = "Description" Then
UserForm1.TxtDescription.Text = param.Item(i).ValueAsString
End If
Next i
'
End Function
Public Function ChangeParam()
Dim NouveauDescription As String
NouveauDescription = UserForm1.TxtDescription.Text
For i = 1 To NBParam
AncienParam = param.Item(i).Name
If AncienParam = "Description" Then
param.Item(i).ValuateFromString (NouveauDescription)
End If
Next i
End Function
Public Function RempliCart()
CountVieuw = AcView.Count
For k = 1 To CountVieuw
Set MaVieuw = AcView.Item(k)
If MaVieuw.Name = "Background View" Then
AcView.Item(k).Activate
End If
Next
'
Dim Description As String
Description = UserForm1.TxtDescription.Text
CountNote = MaNote.Count
'
For k = 1 To CountNote
Set MaNote02 = MaNote.Item(k)
If MaNote02.Name = "Description" Then
MaNote02.Text = Description
End If
Next
'
'
For k = 1 To CountVieuw
Set MaVieuw = AcView.Item(k)
If MaVieuw.Name = "Main View" Then
AcView.Item(k).Activate
End If
Next
End Function
Public Function SplitName()
NameDraw = DrawDocument.Name
DecoupageChaine = Split(NameDraw, ".")
'
ConteurPart = 0
'
For Each Part In DecoupageChaine
ConteurPart = ConteurPart + 1
Next
End Function
lien vers la macro: ul.to/98di1f2i
J'ai un souci sur une macro pour remplir mon cartouche catia v5:
La macro en question fonctionne bien sur une variable " Description", mais je n'arrive pas a mettre en place les autres variable que j'ai rajouter dans le userform "Numero"-"echelle" et "date".
Une âme charitable pourrai me donner un coup de main svp.
merci.
macro:
Public NameDraw As String
Public DecoupageChaine As Variant
Public ConteurPart As Integer
Public CountVieuw As Integer
Public NBParam As Integer
Public NameParam As String
Public CountNote As Integer
Public MaNote02 As DrawingText
Sub CATMain()
UserForm1.Show
End Sub
Public Property Get DrawDocument() As DrawingDocument
Set DrawDocument = CATIA.ActiveDocument
End Property
Public Property Get param() As Parameters
Set param = DrawDocument.Parameters
End Property
Public Property Get Calque() As DrawingSheet
Set Calque = DrawDocument.Sheets.ActiveSheet
End Property
Public Property Get AcView() As DrawingViews
Set AcView = Calque.Views
End Property
Public Property Get MaNote() As DrawingTexts
Set MaNote = Calque.Views.ActiveView.Texts
End Property
Public Function ChargeParam()
UserForm1.Projet.Caption = "Projet"
SplitName
UserForm1.Label1.Caption = NameDraw
'
NBParam = param.Count
For i = 1 To NBParam
NameParam = param.Item(i).Name
If NameParam = "Description" Then
UserForm1.TxtDescription.Text = param.Item(i).ValueAsString
End If
Next i
'
End Function
Public Function ChangeParam()
Dim NouveauDescription As String
NouveauDescription = UserForm1.TxtDescription.Text
For i = 1 To NBParam
AncienParam = param.Item(i).Name
If AncienParam = "Description" Then
param.Item(i).ValuateFromString (NouveauDescription)
End If
Next i
End Function
Public Function RempliCart()
CountVieuw = AcView.Count
For k = 1 To CountVieuw
Set MaVieuw = AcView.Item(k)
If MaVieuw.Name = "Background View" Then
AcView.Item(k).Activate
End If
Next
'
Dim Description As String
Description = UserForm1.TxtDescription.Text
CountNote = MaNote.Count
'
For k = 1 To CountNote
Set MaNote02 = MaNote.Item(k)
If MaNote02.Name = "Description" Then
MaNote02.Text = Description
End If
Next
'
'
For k = 1 To CountVieuw
Set MaVieuw = AcView.Item(k)
If MaVieuw.Name = "Main View" Then
AcView.Item(k).Activate
End If
Next
End Function
Public Function SplitName()
NameDraw = DrawDocument.Name
DecoupageChaine = Split(NameDraw, ".")
'
ConteurPart = 0
'
For Each Part In DecoupageChaine
ConteurPart = ConteurPart + 1
Next
End Function
lien vers la macro: ul.to/98di1f2i
mouss- timide
- Messages : 2
Date d'inscription : 22/09/2016
Localisation : RIVES SUR FURE
Re: aide pour macro cartouche svp
Bonjour,
je viens de regarder ton programme et je pense que tu devrais le revoir complètement, tu utilises beaucoup de ligne et c'est un peu le fouillis ( sans te vexe).
le conseil que je te donne:
1- revois tes déclarations de variables voici un exemple :
2 - utilise Private Sub UserForm_Initialize() ou Private Sub UserForm_Activate() , le premier est préférable,
pour déterminé tous tes captions à l ouverture ou directement dans les propriétés (encore mieux)
3- je sais que pour remplir un cartouche, le texte provisoir dois avoir dans sa propriété un nom similaire (ex: C_txt1, C_txt2....) de cette manière tu fais d abord un comptage des textes dans ta feuille et tu l'utilise dans une boucle.
je viens de regarder ton programme et je pense que tu devrais le revoir complètement, tu utilises beaucoup de ligne et c'est un peu le fouillis ( sans te vexe).
le conseil que je te donne:
1- revois tes déclarations de variables voici un exemple :
- Code:
'code à mettre à la place du code de ton bouton (valider, remplir....?)
Private sub Valider_click()
dim NameDraw As String
dim DecoupageChaine As Variant
dim ConteurPart As Integer
dim CountVieuw As Integer
dim NBParam As Integer
dim NameParam As String
dim CountNote As Integer
'declaration variable catia''''
dim MaNote02 As DrawingText
dim DrawDocument As DrawingDocument
dim param As Parameters
dim Calque As DrawingSheet
dim AcView As DrawingViews
dim MaNote As DrawingTexts
Set DrawDocument = CATIA.ActiveDocument
Set param = DrawDocument.Parameters
Set Calque = DrawDocument.Sheets.ActiveSheet
Set AcView = Calque.Views
Set MaNote = Calque.Views.ActiveView.Texts
2 - utilise Private Sub UserForm_Initialize() ou Private Sub UserForm_Activate() , le premier est préférable,
pour déterminé tous tes captions à l ouverture ou directement dans les propriétés (encore mieux)
3- je sais que pour remplir un cartouche, le texte provisoir dois avoir dans sa propriété un nom similaire (ex: C_txt1, C_txt2....) de cette manière tu fais d abord un comptage des textes dans ta feuille et tu l'utilise dans une boucle.
- Code:
parametre_a=1
for a=1 to toncomptage
parametre_b = gauche(nomtexte,5)
if parametre_b="C_txt" then
select case parametre_b & parametre_a
case "C_txt1"
parametre_b¶metre_a=userforme1.label1.caption
case "C_txt2"
split du texte.....
parametre_b¶metre_a=userforme1.label2.caption
.
.
.
end select
parametre_a=parametre_a+1
end if
next
end sub
raphael_59240- actif
- Messages : 127
Date d'inscription : 28/03/2015
Age : 53
Localisation : dunkerque
Sujets similaires
» Adaptation macro cartouche
» Aide pour macro, activation/desactivation d'un solide
» recuperer info dans le 3D pour afficher dans un cartouche via une macro
» DRAWING - Cartouche personnalisé - Récupérer infos part pour ajout dans le cartouche
» Macro cartouche
» Aide pour macro, activation/desactivation d'un solide
» recuperer info dans le 3D pour afficher dans un cartouche via une macro
» DRAWING - Cartouche personnalisé - Récupérer infos part pour ajout dans le cartouche
» Macro cartouche
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|