Macro : Problème de communication entre CATIA et Excel

Aller en bas

R?solu Macro : Problème de communication entre CATIA et Excel

Message par Spo le Jeu 21 Déc 2017 - 21:06

Bonjour à tous,

Comme annoncé dans le titre du post, j’ai un problème de communication entre Excel et  Catia.

Je m’explique, je me suis fait une macro qui, à partir d’une nomenclature, permet de copier/coller des fichiers d’un répertoire à un autre. Elle permet de faire le transfert de .CATPart, .CATDrawing, .stp et pdf. Cette partie de la macro fonctionne très bien à partir du moment où les fichiers stp et pdf ont préalablement été créés.
Je voudrais améliorer cette macro en ajoutant la fonction de conversions de fichier de .CATDrawing en .pdf et plus tard la conversion de fichier .CATPart en .stp (mais ce sera dans un second temps)

J’ai une macro Catia qui me permet de faire la conversion de drawing en pdf, elle fonctionne lorsque je la lance depuis l’éditeur VBA de Catia mais ne fonctionne plus lorsque je la passe sur Excel. J’ai ajouté toute les bibliothèques Catia disponible dans Excel + la librairie CATIA V5 ApplicationFrame Object Library et pourtant ça ne fonctionne pas.

Voici la macro qui fonctionne lorsqu’on la lance avec CATIA que j’ai intégrée dans Excel :
Code:
Public myDrawing As DrawingDocument

Public Sub CATMain()
lunchComputation


'Demande de sélectionner le dossier source:
Const ssfTous = &H1
Dim objShell As Object, ObjFolder As Object, oFolderItem As Object
Set objShell = CreateObject("Shell.Application")
Set ObjFolder = objShell.BrowseForFolder(&H0&, "Sélectionner le répertoire source", ssfTous)

'Si clic annuler alors
If ObjFolder Is Nothing Then
    MsgBox "Fin de l'application", vbInformation, "État de la conversion"

'Sinon...
    Else
'Dossier sélectionné mis en variable
    Set oFolderItem = ObjFolder.Items.Item
    MsgBox oFolderItem.Path, , "Dossier selectionné"
    MySourceFolder = oFolderItem.Path
    MySourceFolder = MySourceFolder & "\"
    Set objShell = Nothing
    Set ObjFolder = Nothing
    Set oFolderItem = Nothing
'    File = Dir(MySourceFolder & "*.CATDrawing")

'Comptage du nombre de fichier trouvés
    Rep = Dir(MySourceFolder & "*.CATDrawing")
    While Rep <> ""
        nbfichiertotal = nbfichiertotal + 1
        Rep = Dir
    Wend
    MsgBox "Nombre de plans à convertir : " & nbfichiertotal

'Ouverture du fichier trouvé
    Dim documents1 As Documents
    File = Dir(MySourceFolder & "*.CATDrawing")
    While File <> ""
        Set documents1 = CATIA.Documents
        Set drawingDocument1 = documents1.Open(MySourceFolder & File)
        Set myDrawing = CATIA.ActiveDocument
        nameCATDrawing = Left(myDrawing.Name, Len(myDrawing.Name) - 11)  'on supprime l'extension .CATDrawing (11 caractères)
        myDrawing.ExportData myDrawing.Path & "\" & nameCATDrawing & ".pdf", "pdf"
        myDrawing.Close
        File = Dir
    Wend
    
'Suppression de PDF TITLE_BLOCK
    FilePDFTITLE = Dir(MySourceFolder & "*_TITLE_BLOCK.pdf")
    While FilePDFTITLE <> ""
        PlanPDFAsupprimer = MySourceFolder & "*_TITLE_BLOCK.pdf"
        Kill PlanPDFAsupprimer
        FilePDFTITLE = Dir
    Wend
'Renommage du PDF WORKSHEET
    FilePDFWORK = Dir(MySourceFolder & "*_WORKSHEET.pdf")
    While FilePDFWORK <> ""
        Texte = Left(FilePDFWORK, Len(FilePDFWORK) - 14)
        Texte = Texte & ".pdf"
        Name MySourceFolder & FilePDFWORK As MySourceFolder & Texte
        FilePDFWORK = Dir
    Wend
    
'MsgBox "Export terminé"

End If
End Sub


'**************************************************************************************************************************************
' Fonction permettant d'ouvrir catia
' Parametre : /
'**************************************************************************************************************************************

Function lunchComputation()
'Modifier le chemin pour que catia se lance au travers de la macro
    Shell "CMD /C " & """" & "cd C:\Program Files\Dassault Systemes\B21\win_b64\code\bin && CATSTART" & """"
    MsgBox "Veuillez patienter 10 secondes l'ouverture de CATIA"
    Application.Wait Now + TimeValue("0:00:10")
End Function

L’erreur survient à la ligne 41 (        Set documents1 = CATIA.Documents) et l’éditeur VBA m’affiche l’erreur 429 : un composant ActiveX ne peut pas crée d’objet.

Est-ce que quelqu’un aurait une idée pour résoudre le problème ? Ou une façon de le contourner ?

J’ai vraiment l’impression que c’est un problème d’interprétation du CATIA.Documents qu’excel ne gère pas, d’où ma suspicion d’un problème de communication entre excel et Catia.
Voilà, j’espère avoir été clair, si vous avez des questions n’hésitez pas !  

Merci d’avance Wink

Spo
timide
timide

Messages : 5
Date d'inscription : 20/12/2017
Localisation : Blagnac

Revenir en haut Aller en bas

R?solu Re: Macro : Problème de communication entre CATIA et Excel

Message par lumpazepfel le Ven 22 Déc 2017 - 20:24

Bonjour Simon,

Il me semble qu'il te manque la déclaration de ton application CATIA dans ta macro EXCEL.

Insère les lignes ci dessous avant d'utiliser les commandes CATIA :

Code:
Dim CATIA As Object
On Error Resume Next
 Set CATIA = GetObject(, "CATIA.Application")
 If Err.Number <> 0 Then
        MsgBox "Démarrer CATIA Exclamation!", vbCritical, "Erreur Macro"
        Exit Sub
End If

Inversement, si tu veux utiliser des fonctions EXCEL dans une macro CATIA :
Code:
Dim xl As Object 'Excel.Application
On Error Resume Next
    Set xl = GetObject(, "Excel.Application")
If Err <> o Then
    Set xl = CreateObject("Excel.Application")
    xl.Visible = True
End If
On Error GoTo 0
avatar
lumpazepfel
actif
actif

Messages : 164
Date d'inscription : 03/11/2015
Localisation : Ensisheim

Revenir en haut Aller en bas

R?solu Re: Macro : Problème de communication entre CATIA et Excel

Message par Spo le Mer 3 Jan 2018 - 21:18

Bonjour Marc,

Merci pour ta réponse, je vais essayer ça dans la journée et te tiendrais au courant.

En attendant, je te souhaite une très bonne année !

@+
Simon

Spo
timide
timide

Messages : 5
Date d'inscription : 20/12/2017
Localisation : Blagnac

Revenir en haut Aller en bas

R?solu Re: Macro : Problème de communication entre CATIA et Excel

Message par Spo le Ven 5 Jan 2018 - 0:40

Bonjour Marc,

J'ai finalement opté pour lancer la macro depuis Catia et ouvrir excel depuis Catia. Ca marche plutot bien Smile
Merci pour m'avoir donné la bonne piste a suivre.

@+
Simon

Spo
timide
timide

Messages : 5
Date d'inscription : 20/12/2017
Localisation : Blagnac

Revenir en haut Aller en bas

R?solu Re: Macro : Problème de communication entre CATIA et Excel

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum