lapinou68
Messages postés1Date d'inscriptionmercredi 7 décembre 2011StatutMembreDernière intervention 7 décembre 2011
-
7 déc. 2011 à 21:14
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018
-
5 févr. 2012 à 17:48
Bonsoir à tous,
Voila dans le cadre d'un stage je suis amené à créer des macros avec le logiciel de CAO Catia et notamment avec EXCEL pour de l'importation de coordonnées de points.
J'ai récupéré le code suivant qui fonctionne très bien que j'aimerais modifié mais comme je débute complètement je sollicite votre aide en commentant mon programme pour que je puisse tout comprendre ...
J'espère avoir de vos nouvelles très prochainement !
Voici mon code:
Public oImportValue As Single
Private Sub CommandButton1_Click()
Dim CATIA As Object
Dim start_time As Single
Dim stop_time As Single
On Error Resume Next
Set CATIA = GetObject(, CATIA.Application)
If Err.Number 0 Then
MsgBox Ouvrir le logiciel CATIA, vbCritical, Error Macro
Exit Sub
End If
Set partDocument1 = CATIA.ActiveDocument
On Error Resume Next
Set part1 = partDocument1.Part
If Err.Number 0 Then
MsgBox Ouvrir la PART qui contient les points a extraire, vbCritical, Error
Exit Sub
End If
Dim EnableSelectionFor(1)
EnableSelectionFor(0) = HybridBody
EnableSelectionFor(1) = Body
' Reset the Selection
Set sSEL = CATIA.ActiveDocument.Selection
sSEL.Clear
' Define Selection
MsgBox Selectionner le Set Geometrique ou le Corps contenant les points a extraire, vbQuestion
Excel.Application.Visible = False
CATIA.Application.Visible = True
UserSelection = sSEL.SelectElement2(EnableSelectionFor, Selectionner le Set Geometrique ou le Corps contenant les points a extraire, False)
' Evaluation if the selectio is correct or not
If UserSelection Normal Then
Message = MsgBox(Erreur de Selection, vbCritical, Error)
Exit Sub
Else
Set ohybridbody = sSEL.Item(1).Value
Excel.Application.Visible = True
MsgBox Objet Selectionne & ohybridbody.Name
End If
' Lanzar la pantalla de progreso
start_time = Timer
ProgressForm1.Show vbModeless
ProgressForm1.ExitButton.Enabled = False
sInfo = Extraction en cours ... & vbCrLf & _
& vbCrLf & _
Patientez
ProgressForm1.Label1.Caption = sInfo
ReDim acoord(2)
Dim EXCELWSH As Worksheet
Set EXCELWSH = Excel.ActiveSheet
Set objNet = CreateObject(WScript.NetWork)
EXCELWSH.Cells(5, 5).Value = Points extraits du document & CATIA.ActiveDocument.Name & vers MS Excel
EXCELWSH.Cells(7, 5).Value = Set Geometrique selectionne & ohybridbody.Name
EXCELWSH.Cells(9, 5).Value = Date & Date
EXCELWSH.Cells(11, 5).Value = Utilisateur & objNet.UserName
Dim i As Integer
Dim iRow As Integer
iRow = 2
Set oshapes = ohybridbody.HybridShapes
For i = 1 To oshapes.Count Step 1
If TypeName(oshapes.Item(i)) HybridShapePointCoord Or TypeName(oshapes.Item(i)) HybridShapePointExplicit Then
oshapes.Item(i).GetCoordinates acoord
Set reference1 = oshapes.Item(i)
EXCELWSH.Cells(iRow, 1).Value = reference1.Name
EXCELWSH.Cells(iRow, 2).Value = acoord(0)
EXCELWSH.Cells(iRow, 3).Value = acoord(1)
EXCELWSH.Cells(iRow, 4).Value = acoord(2)
iRow = iRow + 1
Else
End If
'Progressbar con frames
oImportValue = (i 100) oshapes.Count
UpdateProgressBar oImportValue
DoEvents
Next
stop_time = Timer
sInfo = Termine & vbCrLf & _
& vbCrLf & _
Nombre de points importes = & iRow - 2 & vbCrLf & _
& vbCrLf & _
sSEL = Nothing
CATIA.Application.Visible = True
Excel.Application.Visible = True
ProgressForm1.Label1.Caption = sInfo
ProgressForm1.ExitButton.Enabled = True
End Sub
Sub UpdateProgressBar(oImportValue As Single) 'Progressbar con frames
With ProgressForm1
' Update the Caption property of the Frame control.
.FrameProgress.Caption = Process Running & Format((oImportValue 100), 0%)
.LabelProgress.Caption = Format((oImportValue 100), 0%)
' Widen the Label control.
.LabelProgress.Width = (oImportValue 100) _
(.FrameProgress.Width - 10)
End With
' The DoEvents allows the UserForm to update.
DoEvents
End Sub
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018212 5 févr. 2012 à 17:45
Drôle de question, zippedfire.
Un point est défini sur un plan par ses coordonnées.
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018212 5 févr. 2012 à 17:48
Ah ... je comprends mieux ...
J'avais oublié "un conte sans comptes" et la qualité de génie du demandeur
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient