vbamania.pl
login:
hasło:
 
  *Rejestracja *Zapomniane hasło
 Dziś jest czwartek, 25 kwietnia 2024 roku.
Ustaw jako stronę startową Ulubione Napisz
PowrótPowrót do serwisu  RegulaminRegulamin rssRSS

  tytuł wątku:
Wątki dyskusji

Inventor - rozdzielanie arkuszy rysunku


otwartyotwarty rozpoczął: Arcess postów: 6



napisał: Harry
postów: 42


umieszczony:
5 listopada 2015
16:35

  
Nie wiem czy tak sie da z poziomu VBA. Możesz poeksperymentować z "SelectSet Object". Poczytaj sobie w helpie jak tego używać.
napisał: Arcess
postów: 9


umieszczony:
5 listopada 2015
13:48

  
Generalnie makro działa ok. Robi to o co mi chodziło, tylko mam jedno pytanie.
Aktualnie jest tak, że makro zapisuje rysunek wieloarkuszowy jako nowy rysunek i wyrzuca niepotrzebne arkusze. Usuwanie wykonuje pojedynczo, czyli każdy arkusz z osobna. Czy jest możliwość, aby odbywało się to tak, że zaznacza wszystkie niepotrzebne i usuwa w jednej operacji?
napisał: Arcess
postów: 9


umieszczony:
30 października 2015
09:55

  
Wielkie dzięki.
napisał: Harry
postów: 42


umieszczony:
26 października 2015
11:09

  
Poniżej makro które robi kopie rysunku i usuwa niepotrzebne arkusze:
Sub PodzialNaArkusze()

'sprawdzenie czy otwarte odpowiednie dokumenty
If ThisApplication.Documents.count = 0 Then MsgBox "Brak otwartych dokumentów": Exit Sub
If Not ThisApplication.ActiveDocument.DocumentType = kDrawingDocumentObject Then MsgBox "Otwarty dokument nie rysunkiem! ": Exit Sub

Dim oDoc As DrawingDocument
Set oDoc = ThisApplication.ActiveDocument

'Sprawdzenie czy otwary dokument ma wiecej niz jden arkusz
If oDoc.Sheets.count = 1 Then MsgBox "Arkusz posiada tylko jeden arkusz!": Exit Sub

'Nazwy nowych rysunkow
Dim i As Integer
Dim NeuName() As String
ReDim NeuName(1 To oDoc.Sheets.count)

Dim TN As String, ext As String
TN = Mid(oDoc.FullFileName, 1, InStrRev(oDoc.FullFileName, ".") - 1)
ext = Mid(oDoc.FullFileName, InStrRev(oDoc.FullFileName, "."))

For i = LBound(NeuName) To UBound(NeuName)
    NeuName(i) = TN & "-" & Replace(oDoc.Sheets.Item(i).name, ":", "_") & ext
    If NeuName(i) = "" Then MsgBox "Blad nazwy :" & NeuName(i): Exit Sub
    If Not Dir(NeuName(i)) = "" Then MsgBox "Plik o nazwie :" & NeuName(i) & " juz istnieje!": Exit Sub
Next i

'Robimy kopie rysunkow oraz usuwamy niepotrzebne arkusze
Dim oDocN As DrawingDocument
Dim sh As Sheet
For i = 1 To oDoc.Sheets.count
    ThisApplication.SilentOperation = True
        oDoc.Sheets.Item(i).Activate
        oDoc.SaveAs NeuName(i), True
        Set oDocN = ThisApplication.Documents.Open(NeuName(i))
                'usuwanie arkuszy
                For Each sh In oDocN.Sheets
                    If Not oDocN.ActiveSheet.name = sh.name Then sh.Delete
                Next sh
        oDocN.Save
        oDocN.Close
    ThisApplication.SilentOperation = False
    Set oDocN = Nothing
Next i
End Sub

napisał: Harry
postów: 42


umieszczony:
25 października 2015
00:54

edytowany:
25 października 2015
00:59

  
Jasne, że sie da. Najprostsza metoda to zrobić za pomocą vba to co robisz ręcznie.
Poszukaj na http://modthemachine.typepad.com/
Jeżeli ci się nie uda to w poniedziałek postaram sie zamieścić jakiś kod.
napisał: Arcess
postów: 9


umieszczony:
24 października 2015
08:23

  
Witam,
czy słyszał ktoś o takim makrze które rozdzielałoby rysunki wykonane w sposób wieloarkuszowy na oddzielne rysunki?

Czy trudno takie makro stworzyć? Zupełnie się na tym nie znam a bardzo go potrzebuję.

W inventorze jest możliwość wykonania rysunku o wielu arkuszach. Każdy arkusz może zawierać odniesienie do innego modelu. Chciałbym wiedzieć czy istnieje możliwość zautomatyzowania rozdziału takich rysunków?
Obecnie podział robię w ten sposób, że otwieram rysunek wieloarkuszowy, zapisuje jako pod nazwą jednego z arkuszy i usuwam resztę.


<-wstecz  1  dalej->
wszystkich stron: 1


Sortuj posty: z