Macro om alle bladen te kopiëren en te hernoemen (VBA)

Hallo

Ik wil een macro maken om alle vellen van een tekening te kopiëren en ze te hernoemen met het achtervoegsel -SYM (zonder de naam van de verschillende vellen te kennen)

Ik heb deze code gevonden om een blad te kopiëren, maar ik kan de code niet wijzigen om ze allemaal te kopiëren en te hernoemen met behulp van een lus.

'----------------------------------------------------------
' Preconditions:
' 1. Open a drawing document containing one sheet
'    named Sheet1.
' 2. Open the Immediate window.
'
' Postconditions:
' 1. Activates Sheet1.
' 2. Copy and pastes Sheet1 as Sheet1(2) and activates Sheet1(2).
' 3. Copy and pastes Sheet1 as Sheet1(3) and activates Sheet1(3).
' 4. Examine the FeatureManager design tree and Immediate window.
'----------------------------------------------------------
Option Explicit

Dim swApp As SldWorks.SldWorks
Dim Part As DrawingDoc
Dim swModel As ModelDoc2
Dim boolstatus As Boolean

Sub main()

    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc
    Set Part = swModel

    If (Part Is Nothing) Then
        MsgBox " Please open a drawing document. "
        End
    End If

    Dim currentsheet As Sheet
    Set currentsheet = Part.GetCurrentSheet
    Part.ActivateSheet (currentsheet.GetName)
    Debug.Print "Active sheet: " & currentsheet.GetName

    boolstatus = Part.Extension.SelectByID2("Feuille1", "SHEET", 0.09205356547875, 0.10872368523, 0, False, 0, Nothing, 0)
    swModel.EditCopy
    boolstatus = Part.PasteSheet(swInsertOption_BeforeSelectedSheet, swRenameOption_No)
    Set currentsheet = Part.GetCurrentSheet
    Part.ActivateSheet (currentsheet.GetName)
    Debug.Print "Active sheet: " & currentsheet.GetName

    boolstatus = Part.Extension.SelectByID2("Feuille1", "SHEET", 0.09205356547875, 0.10872368523, 0, False, 0, Nothing, 0)
    swModel.EditCopy
    boolstatus = Part.PasteSheet(swInsertOption_AfterSelectedSheet, swRenameOption_No)
    Set currentsheet = Part.GetCurrentSheet
    Part.ActivateSheet (currentsheet.GetName)
    Debug.Print "Active sheet: " & currentsheet.GetName

End Sub

 

Hallo 

Hier is een aanpak (het is niet mijn specialiteit, maar ik hoop dat het zal helpen),

(HS/ hoe plak je een code?  /HS) 

 


copy_rename_sheet.png
1 like

Ik ben dit aan het testen en ik zal je feedback geven, voor de code is het dit pictogram:

kies gewoon de taal en dan hier VBScript.

1 like

Zo simpel dat ik niet eens weet hoe ik het had kunnen missen... Misschien de vermoeidheid van afgelopen weekend!

Bedankt @Lynk ik mijn project kan voortzetten, ik zat 3-4 uur vast aan dit deel.