Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  interaktive Schaltflächen

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:  interaktive Schaltflächen (1933 mal gelesen)
Timberwolve
Mitglied



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

Beiträge: 233
Registriert: 21.07.2006

erstellt am: 03. Aug. 2006 13:54    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 Leute, ich habe ein Problem,

ich würde gerne über ein vba Projekt eine Excel-Tabelle erstellen. Diese jedoch nur temporär. Ich möchte also beim Aufruf eine Excel Tabelle haben auf welcher ein Commandbutton erzeugt wird.

2 Probleme hab ich nun

1. Ich möchte die Benennung der Schaltfläche ändern --> geht nicht
2. Wie bekomm ich nun den Quellcode in die interaktiv erzeugte Schaltfläche???

------------------
Wenn alle Stricke reissen, nehm ich ein Drahtseil

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

dr
Mitglied
CAD-/PLM-Entwickler und -Berater


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

Beiträge: 87
Registriert: 30.10.2001

erstellt am: 03. Aug. 2006 15: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 Nur für Timberwolve 10 Unities + Antwort hilfreich

Hi,

In solchen Fällen erstelle ich immer eine Template-Excel-Tabelle per Hand. Komplett mit Formatierungen, Schaltflächen, Makros etc.

Aus dem CV5 VBA Makro heraus kopiere ich diese Vorlage dann in ein anderes Verzeichnis (und verpasse ihr einen temporären Dateinamen) und fülle dann die Vorlage mit den Daten auf, die ich brauche.

Gemacht habe ich das beispielsweise mal bei einem Makro, das eine Stückliste in einem ganz bestimmten Format ausleiten sollte. Auf der Vorlage waren dann noch allerlei Excel-Filter etc. definiert.

Würde Dir ein solches Szenario helfen oder muss es tatsächlich eine dynamisch erzeugte Angelegenheit sein?

------------------
--
Danny Reinhold
Reinhold Software Services

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

mkna
Mitglied
Konstrukteur


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

Beiträge: 137
Registriert: 18.03.2005

erstellt am: 03. Aug. 2006 15:20    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 Timberwolve 10 Unities + Antwort hilfreich

Hallo


Du kannst den Namen eines Button über die Eigenschaft "Caption" ändern
Hier ein kleines Beispiel mit dem Du einem Button in der Tabelle1 ändern kannst

Sub Name_button()
i = InputBox("Gewünschter Name")

Tabelle1.CommandButton1.Caption = i
MsgBox ("Nächster Name")

End Sub


Hoffentlich konnte ich dir ein bischen helfen

Martin

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

Timberwolve
Mitglied



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

Beiträge: 233
Registriert: 21.07.2006

erstellt am: 03. Aug. 2006 15:41    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

das prob ist ich darf keine Vorlage verwenden, es muss eine Excel Tabelle sein die es noch nicht gibt.
es muss quasi alles interaktiv erstellt werden vom vba-Code selbst.

1. Schaltfläche in Tabelle erstellen
2. Schaltfläche umbenennen
3. Code zur Schaltfläche hinzufügen
4. über Schaltflächenklick daten an CATIA zurück geben

mit dem umbenennen über Caption geht so lala, aber vielleicht spinnt auch mein Excel etwas

------------------
Wenn alle Stricke reissen, nehm ich ein Drahtseil

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

dr
Mitglied
CAD-/PLM-Entwickler und -Berater


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

Beiträge: 87
Registriert: 30.10.2001

erstellt am: 03. Aug. 2006 16:59    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 Timberwolve 10 Unities + Antwort hilfreich

Entschuldige bitte, dass ich noch einmal von Deiner eigentlichen Frage abweiche.

Aber warum "darfst" Du keine Vorlage verwenden?

------------------
--
Danny Reinhold
Reinhold Software Services

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

Timberwolve
Mitglied



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

Beiträge: 233
Registriert: 21.07.2006

erstellt am: 03. Aug. 2006 17:34    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

Weil mein Ziel ist das zur Archivierung nur ein CATPart vorhanden ist und keine Excel Tabelle. Weil auf mehreren Rechnern eben die Vorlage nicht da ist.

Frage beantwortet? :-)

------------------
Wenn alle Stricke reissen, nehm ich ein Drahtseil

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

dr
Mitglied
CAD-/PLM-Entwickler und -Berater


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

Beiträge: 87
Registriert: 30.10.2001

erstellt am: 03. Aug. 2006 20:00    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 Timberwolve 10 Unities + Antwort hilfreich

Hi,

Ok, dann probier's mal etwa so:

Code:

' exapp mit CreateObject oder GetObject holen
' Es muss ein aktives Sheet da sein
' Sonst musst Du es erzeugen...

  Dim sheet As Worksheet
  Set sheet = exapp.ActiveSheet

  exapp.CommandBars("Forms").Visible = True

  sheet.Buttons.Add(29.4, 6.6, 72, 72).Select
  Selection.OnAction = "myButtonCallback"
  Selection.Caption = "Hier klicken!"

  ' Aktive Selektion vom Button nehmen, damit
  ' man raufklicken kann...
  sheet.Range("A1").Select

... und irgendwo dann:

Sub myButtonCallback()
  MsgBox "Hallo Welt!"
End Sub


Meinst Du sowas?

------------------
--
Danny Reinhold
Reinhold Software Services

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

Timberwolve
Mitglied



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

Beiträge: 233
Registriert: 21.07.2006

erstellt am: 04. Aug. 2006 09:04    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

Funktioniert "FAST" :-)

wenn ich auf die Schaltfläche klicke sagt er mir das Excel das Makro mybuttonCallback nicht finden kann :-(

ansonsten wäre es genau das richtige

Menno fast wärs das gewesen

------------------
Wenn alle Stricke reissen, nehm ich ein Drahtseil

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

Axel.Strasser
Ehrenmitglied V.I.P. h.c.
Selbstständig im Bereich PLM/CAx



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

Beiträge: 4107
Registriert: 12.03.2001

Früher war vieles gut, und das wäre es heute immer noch, wenn man die Finger davon gelassen hätte!

erstellt am: 04. Aug. 2006 09:25    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 Timberwolve 10 Unities + Antwort hilfreich

Wie heisst den Dein Excel Macro ?

Axel

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

Timberwolve
Mitglied



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

Beiträge: 233
Registriert: 21.07.2006

erstellt am: 04. Aug. 2006 09:38    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

Das ist ja das Problem ;-)

es gibt keines.

Ich muss alles interaktiv erzeugen. Wie oben erklärt.

Ich habe nur ein CATPart und das darin gespeicherte CATScript.

hab jetzt ne relativ unschöne lösung ohne Command Button.

Code:
Sub CATMain()

Set oActiveDoc = CATIA.ActiveDocument

Set mypart = oActiveDoc.Part

Set Formeln = mypart.Relations

Set KonTAB = Formeln.Item("Platten")

Spalten = KonTAB.ColumnsNb
Zeilen = KonTAB.ConfigurationsNb

Set Anwendung = CreateObject("Excel.Application")

Anwendung.Visible = True

Set Blaetter = Anwendung.Workbooks

Set neues_Blatt = Blaetter.Add

Set Arbeitsblatt = neues_Blatt.ActiveSheet
For j = 1 To Spalten


    For i = 1 To Zeilen + 1

        Zelleninhalt = KonTAB.CellAsString(i, j)

        Arbeitsblatt.Cells(i, j) = Zelleninhalt

    Next

Next

Arbeitsblatt.Columns.AutoFit

Arbeitsblatt.Range("A1", "B7").AutoFilter

'Dim Schaltflaeche As OLEObjects
'Dim StartButton As OLEObject
'
'Set Schaltflaeche = Arbeitsblatt.OLEObjects
'Set StartButton = Schaltflaeche.Add(ClassType:="Forms.CommandButton.1", Link:=False, DisplayAsIcon:=False, Left:=41.25, Top:=133.5, Width:=130.5, Height:=16.5)


Arbeitsblatt.Columns("A").Insert Shift:=xlToRight

Arbeitsblatt.Cells(1, 1) = "Auswahl"

Dim Kriterium As Integer
Dim z As Integer

Kriterium = 0

Do

    For z = 1 To (Zeilen + 4)

        If Arbeitsblatt.Cells(z, 1) = "x" Then

        KonTAB.Configuration = (z - 1)

        Kriterium = 1

        End If

    Next

Loop Until Kriterium = 1

mypart.Update

Set TabApp = GetObject(, "Excel.Application")

TabApp.Application.Quit

End Sub


Das Makro erzeugt eine zusätzliche Spalte in der der Anwender ein x einträgt und bestätigt durch die Do Schleife prüfe ich diese Felder eben ab bis ein x gefunden wird.
Sehr unschön ich weiss aber meine bisher einzigste Lösung.

Dabei ist noch ein Prob aufgetaucht, und zwar möchte ich dann Excel schliessen, funkt soweit auch ganz gut, jedoch will ich nicht das Excel mich nach speichern fragt. Geht das???
Es soll einfach ohne Speichern geschlossen werden. (Soll ja alles temporär sein)


------------------
Wenn alle Stricke reissen, nehm ich ein Drahtseil

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

dr
Mitglied
CAD-/PLM-Entwickler und -Berater


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

Beiträge: 87
Registriert: 30.10.2001

erstellt am: 04. Aug. 2006 09:45    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 Timberwolve 10 Unities + Antwort hilfreich

Hi nochmal,

Hmmm... Ich hatte das Makro gestern direkt in Excel-VBA getestet. Da hat's natürlich funktioniert, weil myButtonCallback ja direkt in der aktiven Mappe definiert war.

Stimmt - aus CV5 heraus ist das ein Problem.

Zu Deiner anderen Frage:
Wenn Du das Workbook schliesst mit:

Code:

ExApp.ActiveWorkbook.Close False


sollte Excel sich eine Nachfrage verkneifen...

------------------
--
Danny Reinhold
Reinhold Software Services

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

Timberwolve
Mitglied



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

Beiträge: 233
Registriert: 21.07.2006

erstellt am: 04. Aug. 2006 09:49    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

versuch ich mal, werd dann nochmal Feedback geben.

Zum Problem mit dem Button.
Naja wäre halt schöner wie das mit dem Auswahlfeld. Aber ich find keine andere Lösung. Userforms darf ich ja auch nicht verwenden weil ich sonst catvba hab und kein Catscript :-(

------------------
Wenn alle Stricke reissen, nehm ich ein Drahtseil

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

dr
Mitglied
CAD-/PLM-Entwickler und -Berater


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

Beiträge: 87
Registriert: 30.10.2001

erstellt am: 04. Aug. 2006 10:03    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 Timberwolve 10 Unities + Antwort hilfreich

Hi nochmal,

Ich habe das Problem mit dem Button hinbekommen (Hartnäckigkeit kann sich auszahlen  ):

Schritt 1
---------
Füge Deinem Projekt folgende Verweise hinzu:
- Microsoft Excel 11.0 Object Library
- Microsoft Office 11.0 Object Library
- Microsoft Visual Basic for Applications Extensibility ...
(Falls Du eine andere Office Version hast, nimm die entsprechenden Verweise...)

Schritt 2
---------
Die Sicherheit in Excel muss heruntergeschraubt werden (das muss dann leider jeder Anwender einmal machen):

Dazu in Excel unter Tools/Optionen... auf Makrosicherheit klicken und dann die Checkbox "Zugriff auf Visual Basic Projekt erlauben" aktivieren.

Schritt 3
---------

Der Code:

Code:

Option Explicit

Sub CATMain()

' Schritt 1: Excel application holen
Dim ExApp As Object
Set ExApp = GetObject(, "Excel.Application")

' Schritt 2: Tabelle holen
Dim sheet As Worksheet
Set sheet = ExApp.ActiveSheet


' Schritt 3: Code für das Callback in Excel Makro erzeugen
Dim wb As Workbook
Dim module As VBIDE.VBComponent
Set wb = ExApp.ActiveWorkbook

' Das hier ist der Code, der beim Klick
' ausgeführt werden soll...
Dim myCode As String
myCode = "sub myButtonCallback()" & vbCr & _
      "  msgbox ""Hallo Welt!"" " & vbCr & _
      "end sub"

wb.VBProject.VBE.ActiveCodePane.CodeModule.AddFromString (myCode)


' Schritt 4: Button erzeugen
ExApp.CommandBars("Forms").Visible = True

sheet.Buttons.Add(29.4, 6.6, 72, 72).Select
ExApp.Selection.OnAction = "myButtonCallback"
ExApp.Selection.Caption = "Hier klicken!"

' Aktive Selektion vom Button nehmen, damit
' man raufklicken kann...
sheet.Range("A1").Select

End Sub


Das hat jetzt bei mir jedenfalls funktioniert...

Gefällt mir aber nicht wirklich.
Ich halte eine Lösung mit einer Excel-Vorlagendatei für einfacher... 

------------------
--
Danny Reinhold
Reinhold Software Services

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

Timberwolve
Mitglied



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

Beiträge: 233
Registriert: 21.07.2006

erstellt am: 04. Aug. 2006 10:07    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

Puh wenn der Rückgabecode an CATIA komplex ist dann ist das ja ziemlich stressig *g*

Aber danke für die Antwort, werde das jetzt dann mal testen.

Werd dann wohl wieder ein Problem haben *g* so wie immer *g*

------------------
Wenn alle Stricke reissen, nehm ich ein Drahtseil

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

Timberwolve
Mitglied



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

Beiträge: 233
Registriert: 21.07.2006

erstellt am: 04. Aug. 2006 10:08    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

Jetzt hab ich noch was, hast du das ganze auch mit CATScript getestet????? weil dort kann ich ja gar keine referenzen oder Bibliotheken dazuladen????

------------------
Wenn alle Stricke reissen, nehm ich ein Drahtseil

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

Timberwolve
Mitglied



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

Beiträge: 233
Registriert: 21.07.2006

erstellt am: 04. Aug. 2006 10:17    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

Hmm dein Beispiel geht bei mir leider net :-(

Runtime Error '1004'

Der Programmatische Zugriff auf das Visual Basic Projekt ist nicht sicher.

:-(

Bei der Zeile:

wb.VBProject.VBE.ActiveCodePane.CodeModule.AddFromString (myCode)

------------------
Wenn alle Stricke reissen, nehm ich ein Drahtseil

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

dr
Mitglied
CAD-/PLM-Entwickler und -Berater


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

Beiträge: 87
Registriert: 30.10.2001

erstellt am: 04. Aug. 2006 10:18    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 Timberwolve 10 Unities + Antwort hilfreich

Wenn Du "Option Explicit" und die "Dim ..." Zeilen auskommentierst, läuft's auch mit CATScript...

------------------
--
Danny Reinhold
Reinhold Software Services

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

dr
Mitglied
CAD-/PLM-Entwickler und -Berater


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

Beiträge: 87
Registriert: 30.10.2001

erstellt am: 04. Aug. 2006 10: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 Nur für Timberwolve 10 Unities + Antwort hilfreich

> Der Programmatische Zugriff auf das Visual Basic Projekt ist nicht sicher.

Deshalb ja Schritt 2 - Du musst in Excel einstellen, dass ein anderes Programm den VB-Code im Excel-Workbook verändern darf...


------------------
--
Danny Reinhold
Reinhold Software Services

[Diese Nachricht wurde von dr am 04. Aug. 2006 editiert.]

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

Timberwolve
Mitglied



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

Beiträge: 233
Registriert: 21.07.2006

erstellt am: 04. Aug. 2006 10:21    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

Hab ja schritt 2 mit drin, geht trotzdem nicht 

------------------
Wenn alle Stricke reissen, nehm ich ein Drahtseil

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

dr
Mitglied
CAD-/PLM-Entwickler und -Berater


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

Beiträge: 87
Registriert: 30.10.2001

erstellt am: 04. Aug. 2006 10:26    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 Timberwolve 10 Unities + Antwort hilfreich

Ich meine nicht das was im Code als "Schritt 2" kommentiert ist, sondern das, was darüber im Posting steht.

Du musst wirklich in Excel herumklicken und die Sicherheitsstufe reduzieren. (Das kann man nicht per Makro machen, da die Sicherheitseinstellungen sonst ziemlich witzfrei wären...)

------------------
--
Danny Reinhold
Reinhold Software Services

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

Timberwolve
Mitglied



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

Beiträge: 233
Registriert: 21.07.2006

erstellt am: 04. Aug. 2006 10:33    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

mmh hab ich jetzt getan aber er motzt bei der gleichen Zeile wieder.

jedoch diesmal mit

Object oder With Variable not set :-(

dabei hab ich jetzt den Code von dir übernommen, Sheet ist da.
Workbook ist da Excel ist da. alles da

------------------
Wenn alle Stricke reissen, nehm ich ein Drahtseil

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

Timberwolve
Mitglied



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

Beiträge: 233
Registriert: 21.07.2006

erstellt am: 04. Aug. 2006 10:40    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

Hab jetzt folgendes gemacht, will nur wissen ob das so einigermassen ok ist

Code:

Set module = neues_Blatt.VBProject.VBComponents.Add(vbext_ct_StdModule)

module.CodeModule.AddFromString (myCode)


------------------
Wenn alle Stricke reissen, nehm ich ein Drahtseil

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

dr
Mitglied
CAD-/PLM-Entwickler und -Berater


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

Beiträge: 87
Registriert: 30.10.2001

erstellt am: 04. Aug. 2006 10:51    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 Timberwolve 10 Unities + Antwort hilfreich

Hi,

Ja, wenn noch kein CodePane da ist, ist das sogar erforderlich.
(Scheint so zu sein, wenn man ein neues Blatt per Makro erzeugt...)

Läuft es denn jetzt damit?

------------------
--
Danny Reinhold
Reinhold Software Services

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

Timberwolve
Mitglied



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

Beiträge: 233
Registriert: 21.07.2006

erstellt am: 04. Aug. 2006 10:55    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

jap zumindest mit der msgbox funktioniert das, mit meinem Code hab ich es noch nicht getestet

------------------
Wenn alle Stricke reissen, nehm ich ein Drahtseil

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

Timberwolve
Mitglied



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

Beiträge: 233
Registriert: 21.07.2006

erstellt am: 04. Aug. 2006 11:00    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

mmh wieder ein Prob.
Also zumindest weiss ich das es geht, hab nur die Methode vergessen :-(

hab ja jetzt die Schaltfläche, diese soll mir nun die Reihe der vom anwendert aktiv gestetzten Zelle zurückgeben.

Ich hatte es schonmal, und jetzt hab ichs wieder vergessen, vielleicht weiss es jemand

------------------
Wenn alle Stricke reissen, nehm ich ein Drahtseil

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

Timberwolve
Mitglied



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

Beiträge: 233
Registriert: 21.07.2006

erstellt am: 04. Aug. 2006 11: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

Habs schon :-)

war mit selection.row

entschuldige mich hiermit öffentlich für die Dumme Frage *g*

------------------
Wenn alle Stricke reissen, nehm ich ein Drahtseil

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

Timberwolve
Mitglied



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

Beiträge: 233
Registriert: 21.07.2006

erstellt am: 04. Aug. 2006 11:32    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

Leider muss ich mitteilen das es doch nicht funktioniert wie ich mir das gedacht habe.

Der Weg von Excel zurück nach CATIA ist zu. Das neu erzeugte Modul kennt die CATIA funktionalitäten nicht. Die müsste ich dann an jedem Excel arbeitsplatz einstellen. das ist leider zu aufwendig.

Trotzdem Danke für die ganze mühe
                                 

------------------
Wenn alle Stricke reissen, nehm ich ein Drahtseil

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

dr
Mitglied
CAD-/PLM-Entwickler und -Berater


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

Beiträge: 87
Registriert: 30.10.2001

erstellt am: 04. Aug. 2006 11:44    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 Timberwolve 10 Unities + Antwort hilfreich

Du kannst Catia aus dem Excel Makro ganz normal ansprechen, beispielsweise so:

Code:

' Schritt 3: Code für das Callback in Excel Makro erzeugen
Dim wb As Workbook
Dim module As VBIDE.VBComponent
Set wb = ExApp.ActiveWorkbook

' Das hier ist der Code, der beim Klick
' ausgeführt werden soll...
Dim myCode As String
myCode = "" & _
  "Sub myButtonCallback()                          " & vbCr & _
  "  Dim catia As Object                            " & vbCr & _
  "  Set catia = GetObject(, ""Catia.Application"") " & vbCr & _
  "  MsgBox catia.ActiveDocument.Name              " & vbCr & _
  "End Sub                                          " & vbCr

Set module = wb.VBProject.VBComponents.Add(vbext_ct_StdModule)
module.CodeModule.AddFromString (myCode)


Aber stimmt schon - ist ziemlich ätzend...

------------------
--
Danny Reinhold
Reinhold Software Services

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