So stellen Sie Münzen mit einem Makro wieder her

Hallo, ich möchte in der Lage sein, ein Dokument aus einem Dokument abzurufen, um dies zu tun, habe ich mein Programm so gestaltet, dass es funktioniert, aber ich möchte jetzt in der Lage sein, ein anderes Dokument mit einem anderen Namen im selben Dokument zu nehmen. Es ist zu beachten, dass es in diesem Dokument immer nur ein Stück geben wird. Ist es möglich, ein Makro zu haben, das alle Teile desselben Dokuments akzeptiert?

Zum Beispiel:  boolstatus = swApp.LoadFile2("C:\Benutzer\Desktop\neuer Ordner\ (alle oder Dateiname)", "")

Hallo

Können Sie uns Ihr aktuelles Makro mitteilen?

Kein Problem:


macro_ouverture_dossier.swp

Können Sie erklären, was Sie tun möchten? Ich dachte, das Makro würde mir verständlich machen, was Sie mit "eine Münze holen" und "alle Münzen nehmen" meinen, aber das ist es nicht.

Außerdem verwendet das Makro "SelectByRay", was etwas zufällig ist

Wenn Sie versuchen, Kanten auszuwählen, ist es besser, dies mit GetBodies2  zu tun, dann GetFirstFace / GetNextFace und dann GetEdges

 

Vielen Dank für die Antwort. Ich bin ein Neuling auf diesem Gebiet, daher fehlen mir einige Begriffe, also vielen Dank :). 

Tatsächlich möchte ich, dass die Software automatisch ein Werkzeug in Bezug auf ein Teil in einer Datei erstellt, stellen wir uns vor, ich habe einen Teil A und einen Teil B. Wenn ich mein Makro mit Teil A als Basis erstelle, funktioniert es, aber wenn ich jetzt Teil A aus dem Ordner entferne und durch B ersetze, funktioniert es nicht mehr, da sie nicht den gleichen Namen haben. Gibt es eine Möglichkeit, dieses Problem zu lösen ?

Sie können die Datei über ein Dialogfeld auswählen:

' cliquer dans le menu de la fenêtre VBA: Tools > References > sélectionner: "microsoft Excel xx.0 object library"
Sub main()
    Dim xlsObject As Excel.Application
    Dim fdFolder As Office.FileDialog

    Set xlsObject = New Excel.Application
    xlsObject.Visible = False
    Set fdFolder = xlsObject.Application.FileDialog(msoFileDialogFilePicker)
       fdFolder.Filters.Clear
    fdFolder.Filters.Add "SolidWorks Files", "*.sld*"
    fdFolder.Show
    Debug.Print "fichier sélectionné: " & fdFolder.SelectedItems(1)
    xlsObject.Quit
    Set xlsObject = Nothing
End Sub

oder durchsuchen Sie alle Dateien in einem Ordner mit:

Sub main()
Dim oFSO As Object
Dim oFolder As Object
Dim oFile As Object
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oFolder = oFSO.GetFolder("C:\Users\...")
For Each oFile In oFolder.Files
    Debug.Print oFile.Name
Next oFile
End Sub

 

Hallo

Wenn Sie, wie oben erwähnt, immer noch nur eine Datei in dem betreffenden Ordner haben, können Sie deren Namen mit der DIR-Funktion abrufen:

    Dim Dossier As String
    Dossier = "C:\Temp\divers\" 'Ligne à modifier pour mettre le nom de ton dossier
    Dim Fichier As String
    Fichier = Dir(Dossier)
    Debug.Print Dossier & Fichier
    boolstatus = swApp.LoadFile2(Dossier & Fichier, "")

 

Herzliche Grüße

Vielen Dank für Ihre Antworten, ich werde es testen. 

Seien Sie jedoch vorsichtig mit dem Dateityp, den Sie öffnen möchten, verwenden Sie die Funktion LoadFile2 (nehmen Sie LoadFile4 auf den neuesten Stand), die für nicht-native Solidworks-Dateien gedacht ist, wenn es sich um eine native Solidworks-Datei handelt, müssen Sie die Funktion OpenDoc6 verwenden und daher eine Überprüfung des Dateityps durchführen (asm, PRT oder DRW).

Herzliche Grüße

1 „Gefällt mir“

Es funktioniert, danke.

OK, alles, was Sie tun müssen, ist, die Antwort zu bestätigen, die Ihre Frage beantwortet hat...

Herzliche Grüße