Hallo nochmal
Ich habe ein wenig an den Links gearbeitet und mit dem einfachsten angefangen: 4 Zeilen in einem Excel.
Hier ist mein Code
Sub main()
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim retval As String
' dim ajouté selon https://www.lynkoa.com/en/forum/mod%C3%A9lisation-volumique-3d/lecture-dune-valeur-dans-excel-via-sw-et-r%C3%A9cup%C3%A9ration-dune-r%C3%A9f%C3%A9rence
Dim xlApp As Excel.Application
Dim xlWB As Excel.Workbook
Dim exSheet As Excel.Worksheet
Dim i As Integer
'On ouvre l'aplication Excel
Set xlApp = New Excel.Application
xlApp.Visible = False
'On ouvre le fichier Excel
Set xlWB = xlApp.Workbooks.Open("C:\Users\nouveau\Documents\Patrons_sur_mesure\Test_macros\Edit Custom Properties.xlsx")
Set exSheet = xlWB.ActiveSheet
xlApp.Visible = False
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
retval = swModel.DeleteCustomInfo(Cells(1, 1))
retval = swModel.AddCustomInfo2(Cells(1, 1), swCustomInfoText, Cells(1, 2))
retval = swModel.DeleteCustomInfo(Cells(2, 1))
retval = swModel.AddCustomInfo2(Cells(2, 1), swCustomInfoText, Cells(2, 2))
retval = swModel.DeleteCustomInfo(Cells(3, 1))
retval = swModel.AddCustomInfo2(Cells(3, 1), swCustomInfoText, Cells(3, 2))
retval = swModel.DeleteCustomInfo(Cells(4, 1))
retval = swModel.AddCustomInfo2(Cells(4, 1), swCustomInfoText, Cells(4, 2))
'fermeture de Excel
xlWB.Close
xlApp.Quit
Set exSheet = Nothing
Set xlWB = Nothing
Set xlApp = Nothing
End Sub
Es funktioniert ziemlich. Das Makro liest die ersten 4 Zeilen, löscht die Eigenschaft, falls sie bereits vorhanden ist, und erstellt sie mit den Werten im Array neu. Die Öffnung des Bildes ist unsichtbar, sie scheint sich am Ende zu schließen.
ABER, von Zeit zu Zeit, bekomme ich den Laufzeitfehler 1004: Die 'selection'-Methode des Objekts '_Global' schlug gerade fehl, als wir begannen, auf die Eigenschaften der SW-Datei zu reagieren. Ich verstehe nicht, woher das kommt.
Manchmal ist es eine andere Fehlermeldung. Manchmal bleibt die Excel-Datei schreibgeschützt hängen. Kurz gesagt, es ist nicht stabil.
Meine nächsten Verbesserungen werden darin bestehen, eine Schleife zu erstellen, um alle nicht leeren Zeilen der Excel-Tabelle zu verarbeiten, und eine Version dieses Makros zu erstellen, die in die Excel-Datei integriert werden soll, um eine "manuelle" Methode zum Aktualisieren von Eigenschaften zu erhalten.