Feuille de contrôle solidworks

bonjour

je cherche a recuperer les cotes de mise en plans de façon a les replacer dans une feuille exel , et dans un tableau de mise en plan 

le but final est de creer une feuilles de controle pour les pieces

je presise que mes feuilles sont a chaque fois diferentes .

le must serai de referencer les cotes ;)

je bloque sur le rappatriment des cotes sur exel 

..

ci joint un debut de code qui peu etre utile 

 


anotation_plan_solidworks.txt

Bonjour,

Dans ta macro, tu ouvres bien Excel mais tu ne lui envoie rien. Il faut aussi créer un classeur, une feuille et remplir les cellules. Les debug.print ne servent qu'à afficher le résultat dans la fenêtre de sortie de VB. Voici la même macro mais avec un résultat qui s'affiche dans excel.

Cordialement,


anotation_plan_solidworks-2.txt
2 « J'aime »

l'extraction ce passer nikel merci

, avez vous une solution pour ajouter une note sur la mise en plan pour referencer la cote dans le tableau et la mise en plan , de facon plus claire

1 « J'aime »

Bonjour,

Tu peux par exemple ajouter un texte bas dans la cote si celui-ci n'est pas déjà utilisé. Pour essayer, tu peux ajouter la ligne swDispDim.SetText swDimensionTextCalloutBelow, "(Ref A" & compteur & ")" juste avant la ligne  .Range("A" & compteur).Value = "Référence en dessous   : " & swDispDim.GetText(swDimensionTextCalloutBelow)

Cordialement,

Bonjour,

avant tous je signal que je n'y connais strictement rien en macro!

je déterre un vieux sujet. je souhaiterai faire des fiches contrôles pour l'atelier. j'ai trouvé ce poste avec un texte de la macro. je copie colle et surprise ça marche pas. pourquoi? si une personne veux bien m'accorder de son temps pour élucider ce mystère.

que la force soit avec vous


obiwan.swp
1 « J'aime »

Bonjour OBI WAN,

Tu dois ajouter la référence à Microsoft Excel dans ta macro, pour cela tu vas dans Outils / Références... et tu ajoutes Microsoft Excel xx.x Object Library :

Cordialement,

3 « J'aime »

Bonjour @d.roger

merci pour ton intervention et surtout pour ton efficacité.

que la force soit avec toi.

 

1 « J'aime »

Bonjour,@d.roger

avec ton aide j'ai bien avancé sur le sujet des fiches contrôles. mais j'aimerai aller encore plus loin avec la macro. j'explique lors de l'éxecution de la macro elle ouvre un fichier excel quelconque mais est il possible de lui faire ouvrir un fichier excel préremplie qui contiendrait une macro.

que la force soit avec toi.

 

 

pour info on peut faire quelque chose d'assez proche de ce que tu veux faire avec l'utilitaire "tolerance table" de MyCADTools j'ai l'impression (création d'une table récupérant les cotations + repérages de celles-ci)

1 « J'aime »

Bonjour OBI WAN,

Oui c'est possible, tu remplaces les lignes :

Dim xlApp As Excel.Application
Set xlApp = New Excel.Application
Dim wbk As Excel.Workbook
Dim sht As Excel.Worksheet

With xlApp
    .Visible = True
    Set wbk = .Workbooks.Add
    Set sht = wbk.ActiveSheet
End With

Par celles-ci :

Dim xlApp As Excel.Application
Dim wbk As Excel.Workbook
Dim sht As Excel.Worksheet

Set xlApp = CreateObject("Excel.application")
xlApp.Visible = True
Set wbk = xlApp.Workbooks.Open("C:\Users\XXX\Desktop\anotation_plan_solidworks-5.xlsx")
Set sht = wbk.ActiveSheet

En remplaçant le nom de fichier par ton fichier bien entendu.

Ensuite il faut que tu changes les lignes comprises entre le "With sht" et le "End With" pour mettre tes valeurs dans les bonnes cellules.

Cordialement,

2 « J'aime »

Bonjour,

merci @d.roger ça fonctionne du tonner grâce à toi.

je finalise et je mets à disposition sur lynkoa.

encore un grand merci .

la force est avec toi.

 

2 « J'aime »

@ mdelbecq  j'ai pas mycadtools sniff.

Bonjour @d.roger

voici l la macro ainsi que le fichier excel pour faire la fiche de contrôle. il y a juste un bug si sur le plan il y a une cote d'ange la ça foire.

sinon c 'est simple sur le plan afin de limiter le trie des cotes il faut mettre en premier uniquement les cotes à vérifier puis éxecuter la macro, sur le fichier excel qui c'est ouvert cliquer sur le bouton et dans le second onglet se trouve la fiche de contrôle. si quelqu'un à d'autre idée pour la customiser lâchez vous.

ps: dans la macro penser à changer le chemin d'accés au fichier excel

que la force soit avec vous.

 

 


obi_wan.zip

Bonjour,

Alors oui ça fonctionne sauf si la cote est un angle ce qui est normal car dans ta macro sur Excel tu as la ligne "Temp = Replace(Split(Temp, "(")(1), "mm)", "")" qui te permet de retravailler une valeur récupérer dans la feuille créée en automatique à partir de la macro SW mais cette valeur n'est pas sur la même format d'écriture que pour les autres cotes ce que l'on voit dans les lignes :

If swDispDim.GetType = 3 Then
                    .Range("A" & compteur).Value = "Valeur  : " & swDimension.GetSystemValue2("") * 180 / pi & Chr(176)
                Else
                    .Range("A" & compteur).Value = "Valeur : " & swDimension.GetSystemValue2("") * 1000 / 25.4 & """" & " (" & swDimension.GetSystemValue2("") * 1000 & "mm)"
                End If

de la macro de SW.

Ces lignes ne sont qu'un style de formatage d'écriture de la valeur de la cote pour le fichier Excel et cela peut être changé facilement suivant le besoin.

J'ai du mal à comprendre pourquoi tu passes par une macro dans ton fichier Excel, tout ce que tu fais dans celle-ci peut aisément se faire dans la macro SW.

Pour ma part, j'aurais eu tendance à me créer un formulaire type dans Excel puis à remplir celui-ci à partir de la macro SW, ce qui évite notamment de devoir autoriser les macros sur Excel et ce qui permet aussi la lecture de ce fichier sur LibreOffice par exemple.

Les lignes à retravailler dans la macro SW sont celles comprises entre les lignes "With sht" et "End With" pour n'afficher que les valeurs qui sont jugées nécessaires et de les envoyer dans les cellules Excel voulues. Un petit exemple suivra sûrement dans  les jours à venir (ou heures) suivant ma dispo.

Cordialement,

Bonjour,

Voici le petit exemple comme annoncé précédemment. Il y a juste à changer le chemin du fichier Excel dans la macro mais en laissant le nom de fichier tel qu'il est puis lancer celle-ci à partir de SW avec un plan chargé.

Cordialement,


fichecontrole.zip
1 « J'aime »

Bonjour @d.roger

tu es un champion mon champion. bon moi comme dis ci dessus je n'ai pas de connaissance en vba donc je bricole je bricole.

la macor marche bien mais curieusement je dois la lancer 2 fois. la première fois elle beug dès la première cote. je ferme excel , j' ai une erreur 1004 je réponds "fin" je relance la macro et la miracle ça marche nickel.

que la force reste avec toi.

Bonjour,

Plusieurs raisons possibles :

- 1 processus Excel tourne déjà.

- Lancement successif de la macro trop rapide (Excel n'a pas eu le temps de se fermer complètement).

- ...

Je n'ai pas pris le temps de gérer les erreurs dans le code ...

Cordialement,

1 « J'aime »

Merci

un jour il faudra que je prenne le temps de m'y mettre à la vba.

que la force soit avec toi.

 

1 « J'aime »

OBI WAN

"sinon c 'est simple sur le plan afin de limiter le trie des cotes il faut mettre en premier uniquement les cotes à vérifier puis éxecuter la macro, sur le fichier excel qui c'est ouvert cliquer sur le bouton et dans le second onglet se trouve la fiche de contrôle. si quelqu'un à d'autre idée pour la customiser lâchez vous."

Tu entends quoi par mettre en premier?

Puisque moi j'ai un drawing avec environ 100 cotes et je ne veux que 5 cotes dans mon tableau de controle

Merci