Récupérer les propriétés personnalisés vba excel [RESOLU]

vos questions concernant les API SolidWorks

Récupérer les propriétés personnalisés vba excel [RESOLU]

Messagepar danielpfi » Jeu 28 Juin 2012, 14:39

Bonjour à tous,

J'ai petit problème pour récupérer les propriétés personnalisés des pièces solidworks depuis ma macro excel. j'arrive à récupérer les propriétés type "nom" et 'taille" sans aucun problème. Mais je ne vois pas comment récupérer les propriétés personnalisés liées à la pièce comme la "description".....

En gros, j'ai base de données sur excel avec différents paramètres, Et je souhaite pouvoir lancer une comparaison de cette base avec les pièces mais avant je dois arriver à récupérer les informations des pièces depuis ma macro escel.

Une partie de la macro excel concernée :
--------------------------------------------------------------------------------------
Sub Test()
proprietesFichier_getFile "C:\Users\Daniel\Desktop\Pièce1.SLDPRT"
End Sub


Sub proprietesFichier_getFile(Fichier As String)
'
'Nécessite d'activer la référence Microsoft Scripting Runtime
'
Dim Cible As Scripting.FileSystemObject
Dim Valeur As Scripting.File
Dim Resultat As String

Set Cible = CreateObject("Scripting.fileSystemObject")
Set Valeur = Cible.GetFile(Fichier)

Resultat = "Chemin et nom complet : " & Cible.GetAbsolutePathName(Valeur) & Chr(10) & Chr(10) & _
"Chemin : " & Cible.GetParentFolderName(Valeur) & Chr(10) & Chr(10) & _
"Nom fichier : " & Cible.GetFileName(Valeur) & Chr(10) & Chr(10) & _
"Nom fichier sans extension : " & Cible.GetBaseName(Valeur) & Chr(10) & Chr(10) & _
"Extension fichier : " & Cible.GetExtensionName(Valeur) & Chr(10) & Chr(10) & _
"Chemin : " & Valeur.ParentFolder & Chr(10) & Chr(10) & _
"Derniere modification : " & Valeur.dateLastModified & Chr(10) & Chr(10) & _
"Type fichier : " & Valeur.Type

MsgBox Resultat

End Sub
------------------------------------------------------------------------------------------------

Merci d'avance

Daniel
Dernière édition par danielpfi le Lun 02 Juil 2012, 12:07, édité 1 fois.
danielpfi
Ewok SolidWorks
 
Messages: 15
Inscription: Mer 30 Juil 2008, 15:37
Localisation: France

Messagepar liryc » Jeu 28 Juin 2012, 18:22

liryc
Chevalier Jedi SolidWorks
 
Messages: 479
Inscription: Ven 02 Mar 2007, 8:14
Localisation: Paris - SW2009 SP5.0

Messagepar Annwn » Ven 29 Juin 2012, 11:14

Mhouai j'aurais plutôt indiqué celui-là http://support.microsoft.com/kb/224351/fr parce que ça te fait toutes les propriétés de fichierpas seulement l'auteur, le titre, dernier accès et modifié le .... :wink:
Programmer, c'est bien; programmer utile, c'est mieux........
Venez faire un tour ici !
Annwn
Site Admin
 
Messages: 4938
Inscription: Lun 18 Déc 2006, 22:35

Messagepar liryc » Ven 29 Juin 2012, 13:04

Annwn a écrit:Mhouai j'aurais plutôt indiqué celui-là http://support.microsoft.com/kb/224351/fr parce que ça te fait toutes les propriétés de fichierpas seulement l'auteur, le titre, dernier accès et modifié le .... :wink:

C'est plus ou moins ce qu'il y a sur le second lien.
J'avais également celui de Microsoft mais étant sur mon tél et en edge ça rame donc je n'ai pas ouvert tous les résultats de recherche ;)
liryc
Chevalier Jedi SolidWorks
 
Messages: 479
Inscription: Ven 02 Mar 2007, 8:14
Localisation: Paris - SW2009 SP5.0

Messagepar danielpfi » Dim 01 Juil 2012, 20:45

Salut,

Merci pour votre rapidité, grâce à vous j'ai trouvé le morceau de code qui me manquait.
Ci dessous le code :

Sub LireProprietes()
'necessite d'activer la reference DSO OleDocument Properties Reader 2.0

Dim DSO As DSOFile.OleDocumentProperties

Set DSO = New DSOFile.OleDocumentProperties

'le fichier doit etre fermé !
DSO.Open sfilename:="Chemin du fichire"
MsgBox DSO.CustomProperties.Item("nom de la propriété").Value
DSO.Close
End Sub

Amicalement,

Daniel
danielpfi
Ewok SolidWorks
 
Messages: 15
Inscription: Mer 30 Juil 2008, 15:37
Localisation: France

Messagepar fred_ecai » Dim 01 Juil 2012, 20:59

Salut
un petit [résolu] dans le titre de ton premier message?

merci
Avatar de l’utilisateur
fred_ecai
Membres du Conseil SolidWorks
 
Messages: 1450
Inscription: Mar 22 Déc 2009, 9:09
Localisation: loire (42), Slw 2012 SP1.0 XP 64bit (in english please)

Re: Récupérer les propriétés personnalisés vba excel [RESOLU

Messagepar vincent56 » Mer 06 Mai 2015, 15:28

Bonjour,
Je cherche également à modifier les propriétés personnalisés d'un fichier solidworks sans avoir à l'ouvrir.(à partir d'excel)
Je souhaitais donc utiliser ta macro:
Code: Tout sélectionner
Sub LireProprietes()
'necessite d'activer la reference DSO OleDocument Properties Reader 2.0

Dim DSO As DSOFile.OleDocumentProperties

Set DSO = New DSOFile.OleDocumentProperties

'le fichier doit etre fermé !
DSO.Open sfilename:="Chemin du fichire"
MsgBox DSO.CustomProperties.Item("nom de la propriété").Value
DSO.Close
End Sub


J'ai installer la référence DSO OleDocument Properties Reader 2.1 au lieu de 2.0, et j'ai le message d'erreur :
Erreur d'exécution '429':
Un composant ActiveX ne peut pas créer d'ojet
Sur la ligne:
Code: Tout sélectionner
Set DSO = New DSOFile.OleDocumentProperties


Pourriez-vous m'aider sur cette erreur, est-ce un problème d'installation du DSO ? ou faudrait-il modifier le code ?
Merci d'avance
vincent56
Ewok SolidWorks
 
Messages: 6
Inscription: Mar 23 Oct 2012, 8:30
Localisation: France

Re: Récupérer les propriétés personnalisés vba excel [RESOLU

Messagepar Agadoudou » Mar 20 Fév 2018, 8:42

Bonjour,

J'utilisais ce code il y a 1 ou 2 ans avec SW2014. Depuis que je suis passé en SW2016, ce code fonctionne pour des pièces créées depuis SW2014 mais pas avec des pièces créées en SW2016 ! Pourtant, les propriétés sont bien les mêmes...

Voici le code

Code: Tout sélectionner
Option Explicit

Dim swApp As SldWorks.SldWorks
Dim swModelDoc As SldWorks.ModelDoc2
Dim swModelDocExt As SldWorks.ModelDocExtension
Dim swPackAndGo As SldWorks.PackAndGo
Dim openFile As String
Dim myFileName As String
Dim pgFileNames As Variant
Dim pgFileStatus As Variant
Dim pgSetFileNames() As String
Dim pgGetFileNames As Variant
Dim pgDocumentStatus As Variant
Dim status As Boolean
Dim warnings As Long
Dim errors As Long
Dim i As Long
Dim j As Long
Dim namesCount As Long
Dim myPath As String
Dim statuses As Variant
Public DSO As DSOFile.OleDocumentProperties 'AJOUT
Public Chemin, OldFile As String
Public Ligne1, DernligneASM

Sub ListerOldFichiers()

Dim Fichier As String

Range("A2:B1000") = "" 'Vidage des cellules

Chemin = CheminUser
OldFile = Dir(Chemin & "*.sldasm")

'Ecrire les noms de fichiers dans colone A

Ligne1 = 2 'Départ pour rentrer les noms de fichiers

    Do While OldFile <> ""
   
        Cells(Ligne1, 1) = OldFile
        OldFile = Dir()
        Ligne1 = Ligne1 + 1
   
    Loop

DernligneASM = Range("a65536").End(xlUp).Row

Dim Dernligne2
Dernligne2 = Range("a65536").End(xlUp).Row + 1

OldFile = Dir(Chemin & "*.sldprt")

    Do While OldFile <> ""
   
        Cells(Dernligne2, 1) = OldFile
        OldFile = Dir()
        Dernligne2 = Dernligne2 + 1
       
    Loop


Dim Dernligne3
Dernligne3 = Range("a65536").End(xlUp).Row

Ligne1 = 2

For Ligne1 = Ligne1 To Dernligne3
       
        Dim File1, OldDes, k, PropName, Compteur
       
        File1 = Cells(Ligne1, 1).Value
       
        Set DSO = New DSOFile.OleDocumentProperties
        DSO.Open sfilename:=Chemin & File1
       
        Compteur = DSO.CustomProperties.Count
       
        If Compteur <> 0 Then
       
            For k = 1 To Compteur - 1
           
                PropName = DSO.CustomProperties.Item(k).Name
           
                If PropName = "Designation-1" Then
               
                    OldDes = DSO.CustomProperties.Item("Designation-1").Value
                    Cells(Ligne1, 2) = OldDes
               
                End If
               
            Next k

        End If
           
        DSO.Save
        DSO.Close
 
Next


Et c'est là que ça ne fonctionne pas, le compteur ne compte pas. Pourtant, j'ai bien la référence DSO OLE Document Properties Reader 2.1

Avez-vous une idée ?
Merci à TOUS !!!!!
Agadoudou
Padawan SolidWorks
 
Messages: 84
Inscription: Ven 13 Avr 2012, 7:19
Localisation: Clermont Fd

Re: Récupérer les propriétés personnalisés vba excel [RESOLU

Messagepar MarcS » Mer 21 Fév 2018, 21:06

Est-ce que tu es sur Windows 10 ?
Car je crois que le DSOFile.OleDocumentProperties n'est pas fonctionnel en Windows 10

Si je te donne un poisson tu pourras manger Aujourd’hui
mais si je t’apprend a pêcher tu pourras manger toute ta vie !!!
Salut !

Marc S.
Avatar de l’utilisateur
MarcS
Chevalier Jedi SolidWorks
 
Messages: 311
Inscription: Mar 06 Jan 2009, 20:10
Localisation: Quebec, Quebec SolidWorks 2017 SP 1.0 & SolidWorks 2014 SP 2.0

Re: Récupérer les propriétés personnalisés vba excel [RESOLU

Messagepar Agadoudou » Mer 21 Fév 2018, 22:29

Salut,

Non, windows 7 comme quand j'avais créé ce code...
Merci à TOUS !!!!!
Agadoudou
Padawan SolidWorks
 
Messages: 84
Inscription: Ven 13 Avr 2012, 7:19
Localisation: Clermont Fd

Re: Récupérer les propriétés personnalisés vba excel [RESOLU

Messagepar MarcS » Jeu 22 Fév 2018, 16:59

ce que j'ai trouvé sur le web "Depuis sw2015, le format de fichier est changé! Les fichiers SLDXXX ne sont plus des fichiers MS Compound"

De mon côté pour vérifier ou modifier les propriétés de fichiers Soldiworks j'utilise
la librairie SwDocumentMgr

Dim swDoc2 As SwDocumentMgr.SwDMDocument18
Dim Classfac As SwDocumentMgr.SwDMClassFactory
Dim swDocMgr As SwDocumentMgr.SwDMApplication4

Set Classfac = CreateObject("SwDocumentMgr.SwDMClassFactory")
Set swDocMgr = Classfac.GetApplication("VOTRE LICENSE KEY ")

Set swDoc2 = swDocMgr.GetDocument("C:\FICHIER_TEST.sldprt", swDmDocumentUnknown, False, Empty)
For i_prop = 0 To swDoc2.GetCustomPropertyCount - 1
Debug.Print swDoc2.GetCustomPropertyNames(i_prop)
Next
swDoc2.AddCustomProperty "TEST", swDmCustomInfoText, "VALEUR DE LA PROPRIETE TEST"
swDoc2.Save
swDoc2.CloseDoc

Si je te donne un poisson tu pourras manger Aujourd’hui
mais si je t’apprend a pêcher tu pourras manger toute ta vie !!!
Salut !

Marc S.
Avatar de l’utilisateur
MarcS
Chevalier Jedi SolidWorks
 
Messages: 311
Inscription: Mar 06 Jan 2009, 20:10
Localisation: Quebec, Quebec SolidWorks 2017 SP 1.0 & SolidWorks 2014 SP 2.0

Re: Récupérer les propriétés personnalisés vba excel [RESOLU

Messagepar Agadoudou » Lun 05 Mar 2018, 9:57

Salut Marc et merci,

J'ai essayer de modifier mon code en intégrant ce que tu m'as donné mais je n'arrive pas à le faire fonctionner :

1 - Est-ce que cet extrait de code peut fonctionner depuis Excel sans ouvrir les fichiers ?

2 - Quand il y a :

Code: Tout sélectionner
Set swDocMgr = Classfac.GetApplication("VOTRE LICENSE KEY ")


Est-ce que ça signifie qu'il faut mettre le numéro de série ? Parce que le truc, c'est qu'on a plusieurs machine avec des N° de série différents donc ça va être compliqué à déployer ça... à part si je trouve un bout de code qui récupère le N° depuis la base de registre.

Merci pour tes réponses
Merci à TOUS !!!!!
Agadoudou
Padawan SolidWorks
 
Messages: 84
Inscription: Ven 13 Avr 2012, 7:19
Localisation: Clermont Fd

Re: Récupérer les propriétés personnalisés vba excel [RESOLU

Messagepar MarcS » Mar 06 Mar 2018, 20:14

Il y a quelques années nous devions demander
la clé de la librairie du DOCUMENT MANAGER (API) à notre revendeur SolidWorks et par la suite
nous pouvions l'utiliser la même pour tous les postes et nous utilisons la même clé pour toute les versions.

Je sais pas si aujourd'hui c'est la même procédure.

Si je te donne un poisson tu pourras manger Aujourd’hui
mais si je t’apprend a pêcher tu pourras manger toute ta vie !!!
Salut !

Marc S.
Avatar de l’utilisateur
MarcS
Chevalier Jedi SolidWorks
 
Messages: 311
Inscription: Mar 06 Jan 2009, 20:10
Localisation: Quebec, Quebec SolidWorks 2017 SP 1.0 & SolidWorks 2014 SP 2.0

Re: Récupérer les propriétés personnalisés vba excel [RESOLU

Messagepar Agadoudou » Mer 07 Mar 2018, 7:54

Ok mais du coup, est-ce que cette fonction peut être faite depuis Excel ?
Merci à TOUS !!!!!
Agadoudou
Padawan SolidWorks
 
Messages: 84
Inscription: Ven 13 Avr 2012, 7:19
Localisation: Clermont Fd

Re: Récupérer les propriétés personnalisés vba excel [RESOLU

Messagepar MarcS » Mer 07 Mar 2018, 14:18

Je crois que OUI si vous ajoutez la librairie du Document Manager dans votre VBA d'EXCEL.

Si je te donne un poisson tu pourras manger Aujourd’hui
mais si je t’apprend a pêcher tu pourras manger toute ta vie !!!
Salut !

Marc S.
Avatar de l’utilisateur
MarcS
Chevalier Jedi SolidWorks
 
Messages: 311
Inscription: Mar 06 Jan 2009, 20:10
Localisation: Quebec, Quebec SolidWorks 2017 SP 1.0 & SolidWorks 2014 SP 2.0


Retourner vers Questions générales sur les API

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 3 invités

banniere