Bonjour,
Je cherche à créer une macro solidworks permettant de faire l'équivalent de fichier/ouvrir et pointant sur un dossier spécifique pour ensuite ouvrir le fichier de mon choix.
Merci de votre aide.
Lionel
Bonjour,
Je cherche à créer une macro solidworks permettant de faire l'équivalent de fichier/ouvrir et pointant sur un dossier spécifique pour ensuite ouvrir le fichier de mon choix.
Merci de votre aide.
Lionel
Bonjour,
Une réponse ici :
Function SelectFolder(Optional Title As String, Optional TopFolder As String) As String Dim objShell As New Shell32.Shell Dim objFolder As Shell32.Folder 'If you use 16384 instead of 1 on the next line, files are also displayed Set objFolder = objShell.BrowseForFolder (0, Title, 1, TopFolder) If Not objFolder Is Nothing Then SelectFolder = objFolder.Items.Item.Path End If End Function
http://www.your-save-time-and-improve-quality-technologies-online-resource.com/vba-select-folder.html
Merci pour la réactivité mais petit problème:
Il doit manquer la références correpondante, tu peux essayer de cocher quelque chose comme
"Microsoft Shell Controls ..."
Dans le menu Outils > Références de VBA
Excact .PL bien vu... ceci dit ce n'est qu'une sélection de dossier, impossible d'ouvrir un fichier.
L'idée est d'ouvrir un fichier en ayant "préselectionné" le dossier dans la macro.
Voir peut-être ici :
http://www.eng-tips.com/viewthread.cfm?qid=165464
Ou ici :
http://www.eng-tips.com/faqs.cfm?fid=1164
Quelque chose comme `swApp.GetOpenFileName(.....)` ?
Sa ouvre une fenêtre similaire au bouton "Ouvrir", tu peux sélectionner les filtres (Les types de fichiers à afficher), le fichier initiale, etc.
La fonction te retourne le chemin du fichier choisi, si l'utilisateur clique sur la croix, le chemin retourner est vide.
Merci .PL on approche...
Comment déclarer un chemin spécifique?
En effet, avec get ça pourrait fonctionner, on a un exemple ici :
http://help.solidworks.com/2013/english/api/sldworksapi/Open_File_Example_VB.htm
fileName = swApp.GetOpenFileName("File to Attach", "", Filter, fileOptions, fileConfig, fileDispName) Avec les instructions : value = instance.GetOpenFileName(DialogTitle, InitialFileName, FileFilter, OpenOptions, ConfigName, DisplayName)
En effet je n'avais pas vu les quotes ....
Un grand merci à toi .PL
Oups...répondu trop vite...
Pourquoi le fichier sélectionné pour ouverture ne s'ouvre t-il pas?
Je ne sais pas ! Je suis à court d'idée, ce n'est peut-être pas possible !
swApp.GetOpenFileName(...)
te retourne le chemin du fichier sous forme de `String` (Chaîne de caractère).
Ensutie pour ouvrir le fichier il faut utiliser la fonction `swApp.OpenDoc6`
http://help.solidworks.com/2012/English/api/sldworksapi/SolidWorks.Interop.sldworks~SolidWorks.Interop.sldworks.ISldWorks~OpenDoc6.html
Si tu veux de l'aide supplémentaire, utilise l'enregistreur de macro de SolidWorks et ouvre un fichier. Tu verras comment utiliser `swApp.OpenDoc6(...)`
Ps: Si tu as résolu ton problème, ajoute une "Meilleure réponse"