Aide débutant

lapinou68 Messages postés 1 Date d'inscription mercredi 7 décembre 2011 Statut Membre Dernière intervention 7 décembre 2011 - 7 déc. 2011 à 21:14
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 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



Merci pour vos réponses !

3 réponses

zippedfire Messages postés 98 Date d'inscription mercredi 6 octobre 2010 Statut Membre Dernière intervention 21 novembre 2023 9
5 févr. 2012 à 17:41
Que veux tu dire par "coordonnées de points" ?
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
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
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
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
0
Rejoignez-nous