Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  in Catia Makro Range für Excel definieren

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  in Catia Makro Range für Excel definieren (3134 mal gelesen)
K-Volkmann
Mitglied



Sehen Sie sich das Profil von K-Volkmann an!   Senden Sie eine Private Message an K-Volkmann  Schreiben Sie einen Gästebucheintrag für K-Volkmann

Beiträge: 60
Registriert: 19.06.2007

WIn XP64 Catia V5R19 SP3 HF60<P>Intel I7 3,4GH 16GB RAM , NVIDIA Quadro 4000 2048MB

erstellt am: 04. Feb. 2011 12:31    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Zusammen

ich habe ein Makro in Catia (VBA) mit dem ich Parameter auslese
und in eine Excel Tabelle eintrage.
Die ausgelesenen Werte sind aber nicht richtig sortiert.

Jetzt möchte ich in dem Catia Makro noch eine Range festlegen und eine Sortierung laufen lassen.

Im Catia bekomme ich beim Range("R12:AE46").Select  definieren Fehler
"Sub or funktion not defined"

Wenn ich das Makro in Excel schreibe läuft es.
Was muss ich in dem Catia Makro anderst schreiben ?
anbei code:


Sub Main() 

Dim i As Integer
Dim prod As Product
Dim m As Integer

' Exel öffnen
Dim objXL
On Error Resume Next
Set objXL = GetObject(, "Excel.Application")
If Err.Number <> 0 Then
Err.Clear
Set objXL = CreateObject("Excel.Application")
Set oAWBook = objXL.Workbooks.Add
End If
On Error GoTo 0
objXL.Visible = True

'Berechnung
m = 12 ' Zeile in Exel
i = 0
p = 0

For i = 1 To CATIA.Documents.Count


On Error Resume Next
If (Right(CATIA.Documents.Item(i).Name, 7) = "CATPart") Then


  Set prod = CATIA.Documents.Item(i).Product
 
  'Partname kann auch ausgegeben werden
objXL.Cells(m, 2).Value = prod.PartNumber
 
objXL.Cells(m, "a").Value = prod.Parameters.Item("Position").ValueAsString
---
---
---
  'objXL.Cells(m, 11).Value = prod.Parameters.Item("eigener Parameter2").ValueAsString
  p = p + 1
 
  If Err.Number <> 0 Then
Err.Clear

End If

    m = m + 1
  End If

Next

' sorieren und in richtige Stückliste vorne eintragen
Dim Worksheets
Dim ActiveSheet
' ActiveSheet.Activate

'Worksheets(ActiveSheet.Index).Activate

Range("R12:AE46").Select

    Selection.Sort Key1:=Range("R12"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
    'ActiveWindow.ScrollRow = 13
    'ActiveWindow.ScrollRow = 11
    'ActiveWindow.ScrollRow = 10
    'ActiveWindow.ScrollRow = 8
    Range("R12:AE43").Select
    Selection.Copy
    ActiveWindow.ScrollColumn = 7
    ActiveWindow.ScrollColumn = 6
    ActiveWindow.ScrollColumn = 5
    ActiveWindow.ScrollColumn = 4
    ActiveWindow.ScrollColumn = 3
    ActiveWindow.ScrollColumn = 2
    ActiveWindow.ScrollColumn = 1
    Range("A12").Select
    Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
        xlNone, SkipBlanks:=False, Transpose:=False
    Range("C21").Select

End Sub

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

bgrittmann
Moderator
Konstrukteur


Sehen Sie sich das Profil von bgrittmann an!   Senden Sie eine Private Message an bgrittmann  Schreiben Sie einen Gästebucheintrag für bgrittmann

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 04. Feb. 2011 12:42    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für K-Volkmann 10 Unities + Antwort hilfreich

Servus
Du solltest sauber die Objekte Deklarieren und Instanzieren. Also zB (ungetestet) auch das WorkSheet:
Code:
Dim oWorkSheet as Worksheet
Set oWorksheet = oAWBook.Sheets.item(1)
oWorksheet.Range("A1:B4").Select
...

Wundern mich sowieso dass dein Makro läuft. Wenn du Zellen direkt über die Anwendung ansprichst (objXL.Cells(m, "a")) und nicht über die Mappe. (siehe auch Anleitungen auf www.online-excel.de)

Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

K-Volkmann
Mitglied



Sehen Sie sich das Profil von K-Volkmann an!   Senden Sie eine Private Message an K-Volkmann  Schreiben Sie einen Gästebucheintrag für K-Volkmann

Beiträge: 60
Registriert: 19.06.2007

WIn XP64 Catia V5R19 SP3 HF60<P>Intel I7 3,4GH 16GB RAM , NVIDIA Quadro 4000 2048MB

erstellt am: 04. Feb. 2011 17:19    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo bgrittmann

das "objXL. " vor Range fehlte.
Es funktioniert aber nur teilweise

selektieren und löschen der Excel Range klappt

objXL.Range("R12:AE200").Select
objXL.Selection.ClearContents


aber die Sortierung und das neue einfügen geht noch nicht.
ich denke es fehlt immer noch irgendwo das "objXL. "  oder so was ähnliches

objXL.Range("R12:AE200").Select
    objXL.Selection.Sort Key1:=objXL.Range("R12"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
    objXL.Range("R12:AE43").Select
    objXL.Selection.Copy

    objXL.Range("A12").Select
    Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
        xlNone, SkipBlanks:=False, Transpose:=False


vieleicht kann mir ja jemand direkt helfen ,
aber ich suche nochmal im Forum, da meine ich habe ich auch so was schon mal gesehen.

Fehlermeldung kommt auch keine mehr

vielen Dank

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz