@Schröther:
Vielleicht auch interessant...
Modifiziert aber nur die SICHTBAREN Dokumente!
Falls Du alle GEÖFFNETEN Dokumente bearbeiten möchtest, muss man nur eine kleine Veränderung der Methode durchführen.
(Keine Angst, wenn es etwas "wild" ausschaut, habe es von etwas Vorhandenem zusammen "geschustert" )
Die Prüfung, ob das Dokument schreibgeschützt ist, habe ich mal drin gelassen. Andere firmeninterne Hinweise und Überprüfungen wurden schnell entfernt. Kommentare etc. einfach ignorieren.
Grüße
Mb-Ing.
'Methode zum ändern der Frontansicht der sichtbaren Dokumente (*.IPT & *.IAM)
'--------------------------------------------------------------------------------------------------------------------------------------------------------------------
' Datum | Name | Index | Gültig für Standorte | Änderung/ Bemerkung
'--------------------------------------------------------------------------------------------------------------------------------------------------------------------
' 15.12.2015 | MB-Ing. | A | DE | Erstellung der Mehtode, Testphase KEY-User in DE
'--------------------------------------------------------------------------------------------------------------------------------------------------------------------
' 10.02.2016 | MB-Ing. | B | DE, HU, CN, USA | Auskommentierung der Makros ergänzt, Mehrsprachlichkeit ergänzt, Ausrollen global
'--------------------------------------------------------------------------------------------------------------------------------------------------------------------
Public Sub SetActiveViewAsFrontView()
On Error Resume Next
Dim oApp As Application
Dim oDoc As Document
Dim sItemName As String
Dim sMeldung As String
Dim sHeader1 As String
Dim iLangID As Integer
Dim lActiveLangID As Long
Dim sNotification As String
Dim iNotificationNr As Integer
Dim I2 As Integer
Dim I3 As Integer
Dim I4 As Integer
Dim sFileAttribute As String
Dim sFullFilename As String
Dim sI2Description As String
Dim sI3Description As String
Dim sI4Description As String
Set oApp = ThisApplication
'Transaktion starten für Rückgängigschritt
Dim oTrans As Transaction
Set oTrans = ThisApplication.TransactionManager.StartTransaction(oApp, "SetActiveViewAsFrontView")
iLangID = 1 'Sprache standardmäßig 1 = deutsch
lActiveLangID = oApp.Locale
If lActiveLangID <> "1031" Then iLangID = 2
'Aussteigen, wenn kein Dokument geöffnet ist
If oApp.Documents.Count = 0 Then
Call Notifications(sFNotification, iLangID, 3)
sNotification = sFNotification
Call MsgBox(sNotification)
Exit Sub
End If
For i = 1 To oApp.Documents.VisibleDocuments.Count
Set oDoc = oApp.Documents.VisibleDocuments.Item(i)
sItemName = oDoc.DisplayName
sFullFilename = oDoc.FullFileName
sFileAttribute = GetAttr(sFullFilename)
If oDoc.DocumentType = kAssemblyDocumentObject Or oDoc.DocumentType = kPartDocumentObject Then
If Not sFileAttribute = "1" And Not sFileAttribute = "33" Then
Call Notifications(sFNotification, iLangID, 33)
sNotification = sFNotification
sMeldung = sMeldung & i & ") " & sItemName & ": " & sNotification & vbNewLine
oDoc.Activate
oApp.ActiveView.SetCurrentAsFront
I2 = I2 + 1
Else
Call Notifications(sFNotification, iLangID, 4)
sNotification = sFNotification
sMeldung = sMeldung & i & ") " & sItemName & ": " & sNotification & vbNewLine
I3 = I3 + 1
End If
Else
Call Notifications(sFNotification, iLangID, 25)
sNotification = sFNotification
sMeldung = sMeldung & i & ") " & sItemName & ": " & sNotification & vbNewLine
I4 = I4 + 1
End If
Next
Call Notifications(sFNotification, iLangID, 2)
sNotification = sFNotification
sHeader1 = sNotification
Call Notifications(sFNotification, iLangID, 33)
sNotification = sFNotification
sI2Description = sNotification
Call Notifications(sFNotification, iLangID, 4)
sNotification = sFNotification
sI3Description = sNotification
Call Notifications(sFNotification, iLangID, 25)
sNotification = sFNotification
sI4Description = sNotification
Call MsgBox(sHeader1 & ": " & oApp.Documents.VisibleDocuments.Count & vbNewLine & vbNewLine & sMeldung & vbNewLine & "--------------------" & vbNewLine & I2 & "x " & sI2Description & vbNewLine & I3 & "x " & sI3Description & vbNewLine & I4 & "x " & sI4Description)
'Transaktion beenden
oTrans.End
End Sub
Private Function Notifications(sFNotification, iLangID As Integer, iNotificationNr As Integer) As String
Select Case iNotificationNr
Case 2 'Anzahl sichtbarer Dokumente
If iLangID = 1 Then
sFNotification = "Anzahl sichtbarer Dokumente"
Else: sFNotification = "Number of visible documents"
End If
Case 3 'Kein Dokument geöffnet
If iLangID = 1 Then
sFNotification = "Kein Dokument geöffnet"
Else: sFNotification = "No document is opened"
End If
Case 4 'Schreibschutz
If iLangID = 1 Then
sFNotification = "Schreibgeschützt"
Else: sFNotification = "Read-only"
End If
Case 25 'Falsche Dokumentkategorie
If iLangID = 1 Then
sFNotification = "Nicht zulässige Dokumentkategorie"
Else: sFNotification = "Wrong category of document"
End If
Case 33 'Komponente modifiziert
If iLangID = 1 Then
sFNotification = "Komponente modifiziert"
Else: sFNotification = "Component modified"
End If
End Select
End Function
------------------
Wissen ist Macht. Nichts wissen macht auch nichts
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP