Makro-Grundkarte

Hallo

Ich möchte die Hintergründe alter Pläne aktualisieren. Ich habe die folgenden Vorlagenformate im Windows-Ordner C:\parameter-sw\Basemaps

A3;   A3_Technical_specifications_catalogue_products; A2; A2_TECH; A1;  A1_TECH

 

auf meinen alten Grundkarten, die ich verwendet habe

 

A3;  Technical_specifications_catalogue_products; A2; A2_TECH; A1;  A1_TECH

Ich möchte, wenn Namensvorlagen

Technical_specifications_catalogue_products.slddrt lädt dann die Grundkarte durch: A3_Technical_specifications_catalogue_products.slddrt

Wenn A3.slddrt dann A3.slddrt neuer Pfad

..............

 

Ich hänge das Makro an, das ich verwende.

Haben Sie eine Idee, den Namen der Vorlage zu überprüfen?

 

Vielen Dank im Voraus für Ihr Feedback

 


mise_en_forme_fdp_avant_validation.swp

Hallo

Je nachdem, wie die Funktion SldWorks.Sheet deklariert wird, sollten Sie Folgendes schreiben:

Set swSheet = swDraw.GetCurrentSheet
sTemplate = Mid(swSheet.GetTemplateName, InStrRev(swSheet.GetTemplateName, "\") + 1)

 

1 „Gefällt mir“

Vielen Dank für Ihr Feedback, Cyril

Ich habe es getestet, aber es funktioniert nicht, hier ist das aktualisierte Makro 

Haben Sie eine Idee?

 

 

 


mise_en_forme_fdp_avant_validation_-_copie.swp

Hallo

Ich hatte den Code bis dahin nicht geöffnet, also sehe ich beim Öffnen, dass dem Namen der gefundenen Hintergrundkarte eine Verarbeitung fehlt.

Sie müssen also sTemplate mit If... Dann.

Nach der Änderung des Hintergrundplans im gleichen Format werde ich Informationen verwenden, die @d.roger mir in einem anderen Thema im Jahr 2017 gegeben hat.

Grundsätzlich müssen Sie die Hintergrundänderung zweimal starten, damit sie funktioniert.

bRet = swDraw.SetupSheet4(swSheet.GetName, vSheetProps(0), 12, vSheetProps(2), vSheetProps(3), True, stemplatepath, 0#, 0#, "")
bRet = swDraw.SetupSheet4(swSheet.GetName, vSheetProps(0), 12, vSheetProps(2), vSheetProps(3), True, stemplatepath, 0#, 0#, "")

 

Hallo Cyril,

Vielen Dank für Ihr Feedback.

Für das A3-Format habe ich 3 vorhandene Formate A3, A3TECH, A3_Technical_specifications_catalogue_products 

Alle Vorlagen haben die gleiche Bezeichnungen (A3 für A3, A3-TEC für A3-TECH, A2 für A2 ........), mit Ausnahme der Technical_specifications_catalogue_products, die  A3_Technical_specifications_catalogue_products geworden ist.

Ich schätze, Sie müssen so viele Konstanten erstellen, wie es Hintergründe gibt?

Ich verstehe nicht, wie  man den Grundkartennamen überprüft und die entsprechende Grundkarte lädt.

Vielen Dank im Voraus für Ihr Feedback


mise_en_forme_fdp_avant_validation_-_copie.swp

Hallo

Beispiel für das A3-Format, das auf den anderen Formaten wiederholt werden kann.

                   If vSheetProps(0) = "8" Then
                      Select Case sTemplate
                        Case "Technical_specifications_catalogue_products.slddrt"
                            stemplatepath = cDirTemplate & "A3_Technical_specifications_catalogue_products.slddrt"
                        Case "A3.slddrt"
                            stemplatepath = cDirTemplate & cTemplateA3
                        Case "A3-TEC.slddrt"
                            stemplatepath = cDirTemplate & "A3-TEC.slddrt"
                        End Select
                        bRet = swDraw.SetupSheet4(swSheet.GetName, vSheetProps(0), 12, vSheetProps(2), vSheetProps(3), True, stemplatepath, 0#, 0#, "")
                        bRet = swDraw.SetupSheet4(swSheet.GetName, vSheetProps(0), 12, vSheetProps(2), vSheetProps(3), True, stemplatepath, 0#, 0#, "")

 

2 „Gefällt mir“

Wenn ich alles richtig befolgt habe, bekommt man über die Variable sTemplate den Namen des Templates.

Geben Sie einfach in die folgende Zeile "sTemplate = Mid(swSheet.GetTemplateName, InStrRev(swSheet.GetTemplateName, "\") + 1)", eine debug.print sTemplate oder msgbox sTemplate ein, um den Wert der angezeigten Variablen anzuzeigen.

Anstatt Ihre Tests über vSheetProps durchzuführen, führen Sie Ihren Test mit der Variablen sTemplate durch (Ist sTemplate gleich oder beginnt mit dann...

1 „Gefällt mir“

Danke Cyril,

Schönen Tag