Hallo zusammen,
ich hätte nach langer Zeit mal wieder eine Frage.
Ich habe aus dem Forum hier aus mehreren Makros ein passendes Makro für meine Anwendung zusammengebaut, welches auch (bis dato) einwandfrei funktioniert. Nur habe ich das "Problem", dass ich darüber eine Präsentation (vor Programmierlaien) halten muss/darf und mir nicht alle einzelnen Funktionen so ganz klar sind. Daher schreibe ich nun mal mein Makro hier rein mit den von mir angedachten Definitionen. Über eure Anmerkungen/Hilfen/Verbesserungen wäre ich dankbar.
----------------------------------------------
Sub Umbenennen(Produkt, alteBezeichnung, neueBezeichnung)
'Start des Makros mit dem Namen Umbennen und den Variablen Produkt, alteBezeichnung, neueBezeichnung
'in den meisten Fällen war dies kein Sub, sondern eine Function
'Function gibt ja einen Wert zurück, braucht man hier aber nicht zwingend, oder?!
Set Aktuell = CATIA.ActiveDocument
'aktuelle Baugruppe als aktive Baugruppe setzen
Set Auswahl = Aktuell.Selection
'zuvor definierte, aktive Baugruppe komplett auswählen
Set Teilenummer = Produkt.ReferenceProduct
'CATIA spezifische Bezeichnung für die Teilenummer als "Teilenummer" (Name frei wählbar) setzen
If InStr(Teilenummer.PartNumber, alteBezeichnung) Then
'steht ein Wert in der Eingabezeile alteBezeichnung, dann
NeuerName = Replace(Teilenummer.PartNumber, alteBezeichnung, neueBezeichnung)
'ersetze den Wert aus Eingabezeile alteBezeichnung durch den Wert in Eingabezeile neueBezeichnung und merke den Wert in NeuerName
Teilenummer.PartNumber = NeuerName
'schreibe den gemerkten Wert in Teilenummer
End If
Set Alles = Produkt.Products
'Alle Unterbaugruppen u. -teile zusammenzählen
Zaehler = Alles.Count
'von zusammengezählte Zahl runterzählen
If Zaehler > 0 Then
'Zahl noch größer als 1? dann
For i = 1 To Zaehler
'Zaehler um 1 verringern
Umbenennen Alles.Item(i), alteBezeichnung, neueBezeichnung
'???
Next
'nächsten Durchlauf starten
End If
End Sub
Sub CATMain()
'???
Set aktuellesProdukt = CATIA.ActiveDocument.Product
'gesamtes Produkt als aktiv setzen (blau unterlegt)
alteBezeichnung = InputBox("Ursprungsbezeichnung eingeben (alt)", "Teilenummer umbennen v1.0")
'Eingabefenster für alteBezeichnung mit Fenstertext""
neueBezeichnung = InputBox("Neue Bezeichnung eingeben (neu)", "Teilenummer umbennen v1.0")
'Eingabefenster für neueBezeichnung mit Fenstertext""
Umbenennen aktuellesProdukt, alteBezeichnung, neueBezeichnung
'???
End Sub
----------------------------------------------
Das mit dem Zähler habe ich so interpretiert, wie oben geschrieben, stimmt das, oder völliger bulls***?
Alle anderen Anmerkungen sind auch eher kritisch zu sehen!
Ich bin euch im Voraus schon mal wahnsinnig dankbar für Rückmeldungen.
Grüße
bamigon
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP