Créer des fichiers numérotés

Créer des fichiers numérotés - VB/VBA/VBS - Programmation

Marsh Posté le 17-11-2012 à 19:14:08    

Bonjour @tous,  
 
J'espère avoir correctement choisi le Thème.  
 
Voilà comme dit dans mon profil, je suis Concepteur de Produits en 3D via le logiciel SolidWorks.  
Il arrive parfois que dans certaines de mes missions clients je rencontre des fonctions spéciales.  
Dans ce cas un précédent dessinateur avait crée une macro pour enregistrer le fichier automatiquement avec des numéros pour éviter que les fichiers suivant ne prennent un numéro existant,  
Bonne intention, cependant étant pûriste dans l'organisation du modèle 3D, le fait d'avoir des numéros ainsi créer n'est pas des plus propre.  
 
Je suis persuadé que l'on doit pouvoir commencer à 1 et enchainer au fil de la construction du projet.  
Je vous colle donc le code en espérant que certains auront aisément la solution.  
 
Merci @vous  
 
Code de la fonction NewTube  
 
Public swApp As Object  
Public swpart As Object  
Public Nom_Doc As String  
Public Ext_Doc As String  
Public Val_Prop As String  
Public part As Object  
Public boolstatus As Boolean  
Public FeatureData As Object  
Public Feature As Object  
Public Component As Object  
Public entete As Integer  
Public miseajour  
Public propriété, val_propriété, retval As Variant  
Public longstatus As Long, longwarnings As Long  
 
Sub NewTube2011()  
 
Dim swApp As SldWorks.SldWorks  
Dim swpart As Object  
Set swApp = Application.SldWorks  
Set swpart = swApp.ActiveDoc  
Dim componentDoc As Object  
Dim swSelMgr As SldWorks.SelectionMgr  
Dim swConfigMgr As SldWorks.ConfigurationManager  
Dim swComp As SldWorks.Component2  
 
Set swModel = swApp.ActiveDoc  
 
Set swSelMgr = swModel.SelectionManager  
 
Set swComp = swSelMgr.GetSelectedObjectsComponent2(1)  
 
Set componentDoc = swComp.GetModelDoc  
 
FichierActif = componentDoc.GetTitle  
 
 
'""""""""""""" CALCUL DU NOUVEAU NOM """""""""""""""""""""""""  
 
Dim MyTime, MySecond  
index = Second(Now)  
 
 
MyFolder = Strings.Left(swModel.GetPathName, Strings.InStrRev(swModel.GetPathName, "\" ) - 1) + "\"  
 
FileName = Strings.Mid(swModel.GetTitle, 1, 11) + " - "  
 
FileName = MyFolder & FileName & FichierActif & " - " & index & ".sldprt"  
 
 
 
'""""""""""""" ENREGISTREMENT DU FICHIER SELECTIONNE """""""""""""""""""  
 
 
componentDoc.SaveAs2 FileName, 0, False, False  
 
 
 
End Sub

Reply

Marsh Posté le 17-11-2012 à 19:14:08   

Reply

Marsh Posté le 17-11-2012 à 19:40:40    

a priori, le nombre est généré là :
index = Second(Now)
 
eventuellement, fait un "time code" complet genre  
yyyy-mm-dd-hh-mm-ss
 
C'est pas un indice qui commence à 1 mais c'est dejà plus propre comme manière de faire.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed