Bonjour,

Je me permets de vous demander de l'aide, pour faire simple j'ai quelques notions en VB mais vraiment léger

je serais intéressé par la macro présenté dans ce message mais je n'arrive pas à me l'approprier pour mon fichier pourriez vous m'aider????

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
Sub Macro3()
 
'Déclaration des variables :
 
   Dim choix_liste As String     'type de pièce choisi dans la liste déroulante pour l'ouverture des pièces
   Dim nb_de_piece As Integer    'nombre de lignes de la colonne F correspondant aux nombres de pièces
   Dim increment As Integer      'incrément de 1 pour effectuer la boucle de recherche ligne par ligne sur la colonne F
   Dim myCell As String          'variable pour fusionner l'incrément et la colonne F pour la plage de recherche
   Dim path As String            'chemin du dossier d'enregistrement de la pièce
   Dim nom As String             'nom de la pièce
   Dim path_complete As String   'chemin complet de la pièce
   Dim myBool As Boolean
   Dim myError As Long, myWarning As Long
 
'Initialisation de certaines variables:
 
   choix_liste = Range("E6")
   nb_de_piece = Application.WorksheetFunction.CountA(Feuil1.Range("$I:$I")) 'nombre de cellules non vide dans la colonne F, soit le nombre de pièces
   increment = 1
 
 'ouverture de SolidWorks :
 
   myBool = Shell("C:\Program Files\SOLIDWORKS Corp\SOLIDWORKS\SLDWORKS.exe", vbNormalFocus)
   Application.Wait Now + TimeValue("0:00:10")
 
'Set swApp = CreateObject("SldWorks.Application")
 
'definition de la plage sur lequel va s'appliquer la macro :
 
For increment = 1 To nb_de_piece
 
   myCell = "I" & (increment + 9)            'concatène le nom de la cellule à partir de F5 pour l'utiliser avec Range()
   If Range(myCell) = choix_liste Then       'si le type de pièce en colonne F correspond au choix de la liste alors
   path = Range("J" & (increment + 9))       'extraction du chemin du dossier
   nom = Range("G" & (increment + 9))        'extraction du nom de la pièce
   path_complete = path + nom & ".sldprt"    'création du chemin complet avec extension
   Range(myCell).Activate                    'Selectionne la cellule = action à effectuer pour vérification pas à pas
 
   Set swApp = CreateObject("SldWorks.Application")                                              'ouverture SolidWorks
   Set swModel = swApp.OpenDoc6(path_complete, 1, 1, "", myError, myWarning)                      'ouverture fichier
   'swModel.SaveAs2 Left(path, (Len(path) - 6)) & "step", 0, True, False                          'Enregistrement en STEP
   'swApp.CloseDoc path
   Set swApp = Nothing: Set swModel = Nothing
 
   End If
 
Next increment 'on passe à la ligne suivante
 
End Sub
 
'Code récupéré sur internet pour ouverture pièce SolidWorks avec chemin complet :
 
'Sub Bouton1_Cliquer()
 
'Dim myBool As Boolean
'Dim myError As Long, myWarning As Long
 
'myBool = Shell("C:\Program Files\SOLIDWORKS Corp\SOLIDWORKS\SLDWORKS.exe", vbNormalFocus)
 
'Set swApp = CreateObject("SldWorks.Application")
'Set swModel = swApp.OpenDoc6("C:\Users\SONFVER\Desktop\macro\test\01.sldprt", 1, 1, "", myError, myWarning)
'Set swApp = Nothing: Set swModel = Nothing
 
'End Sub


photo ci dessous de mon tableau

je désire ouvrir dans SolidWorks le sw00?????? en colonne L correspondant à chaque ligne que je trouve dans mon fichier excel ou la colonne W= " Nouveau" et Colonne X= " Fabriquée" ou " Pièce/Opé Panoplie"


exemple sur fichier ci joint


étape 1 filtré toutes les lignes du fichier excel ou on trouve " Nouveau" en colonne W et " Fabriquée" ou " Pièce/Opé Panoplie" en Colonne X

étape 2 ouvrir depuis excel les fichiers "SW00??????" correspondant aux filtres sachant que le chemin d'accès de ceux ci est renseigné dans la cellule X1 "C:\_FICHETBAUCHE\03 Projets\01 Safes\PBZ00371\Technical file\02 CAD\Millium-Newton feu, cadre modifié caisse ext popée"

étape 3 enregistré les fichiers ouvert dans SolidWorks en ".DXF" au chemin suivant "G:\DAO\Iges-fao" en le renomant par le nom indiqué sur la même ligne en Colonne M en retirant le premier nombre et en ajoutant "A" à la fin du code exemple : "sw244146" renomé "5454034A"

répéter cette étape sur toutes les lignes qui correspondent aux filtres de l'étape 1


merci de votre aide


Nom : image1.jpg
Affichages : 156
Taille : 519,1 Ko