Autor
|
Thema: Userform von Excel ausführen lassen (4725 mal gelesen)
|
HAW-Raptor Mitglied Design Release Engineer
Beiträge: 58 Registriert: 12.10.2009
|
erstellt am: 13. Okt. 2009 21:00 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich habe eine Excel-Tabelle, in denen verschiedene Verbindungsteile hinterlegt sind und möchte diese nun über eine Userform sortieren/filtern und dann dem Nutzer ermöglichen, dieses eine gefilterte Teil zu übernehmen. Zuerst meine Frage: Ich habe in Excel eine Userform erstellt, die mir über verschiedene DropDown-Listen eine Filterung ermöglichen, bis zum Ende nur noch ein einziges Element übrig ist. Kann ich diese Userform überhaupt über Catia starten? Oder muss ich über Catia eine Userform entwerfen? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
V5Playaz Mitglied Dipl.-Ing (BA)
Beiträge: 447 Registriert: 12.07.2005 DELL PRECISION 390 3,25 GB RAM WIN XP PRO SP2 CATIA V5 R16-19 Delmia V5 R19 VB6, VB2008 Adobe Acrobat 9 Pro Extended
|
erstellt am: 13. Okt. 2009 22:07 <-- editieren / zitieren --> Unities abgeben: Nur für HAW-Raptor
Hallo, mir ist noch nicht so ganz klar was du machen willst. Inwiefern willst du mit CATIA interagieren? Ein Beispiel ist auch oft hilfreich. Ansonsten ist es möglich eine Userform im CATIA VBA-Editor zu erstellen und auf Excel zu zugreifen oder umgekehrt. grüße Dominik Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DanielFr. Moderator Manager
Beiträge: 2506 Registriert: 10.08.2005 HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3
|
erstellt am: 14. Okt. 2009 09:17 <-- editieren / zitieren --> Unities abgeben: Nur für HAW-Raptor
Hallo HAW-Raptor, nach sicher ist das möglich. Hierzu gibt es innerhalb von Excel die Methode "Application.Run". Du musst dann den absoluten Pfad der Exceldatei sowie den Namen der Sub die die aufrufen willst an die Methode übergeben. Der Pfad sowie der Sub-Name können auch variabel gestaltet werden (.z.B. über eine "FileSelectionBox"). Der Ablauf des Makro´s sieht wie folgt aus: 1. In CATIA wird die CATMain gestartet 2. Bei einem variablen Excel-Pfadnamen wird eine "FileSelectionBox" aufgerufen und der Anwender muss die Excel Tabelle im Browser auswählen (kann natürlich auch statisch sein wenn die Excel-Tabelle nicht verschoben wird) 3. Innerhalb der CATMain wird ein Excel-Objekt erzeugt 4. Mit Hilfe dieses Objekt´s und der Methode "Application.Run" wird das Excel-Makro ausgeführt (hier kannst du ja dann deine UserForm ausrufen mit .Show) => CATIA ist hierbei eine Elternteil von Excel. D.h. während des Makro in Excel läuft hast du keine Kontrolle über Excel! 5. Wird das Excel Makro abgeschlossen wird CATIA wieder aktiviert 6. Die Exceldatei kann ggf. innerhalb der CATMain gespeichert und geschlossen werden. Das Excel-Objekt würde ich über den Handle zerstören da alles andere nicht funktioniert So lange Rede kurzer Sinn. Ich hab dir da mal auf die schnelle was zusammengeschrieben. Das ganze ist ein CATvba und stellt den obigen Alauf dar. ------------------ MFG Daniel Systeminformation | Inoffizielle CATIA Hilfeseite | CATIA FAQ | Suche | TraceParts (Normteile...) | 3D Content Central (noch mehr Normteile...) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HAW-Raptor Mitglied Design Release Engineer
Beiträge: 58 Registriert: 12.10.2009
|
erstellt am: 14. Okt. 2009 09:50 <-- editieren / zitieren --> Unities abgeben:
Hallo Daniel, das ist ja eine wirklich geniale Antwort, vielen Dank für die Mühen. Gibt es eigentlich passende Lektüre, in der man nachlesen kann, gerade was Catia und Excel angeht? Habe zwar dieses eine Buch von Herrn Ziethen, wo ja leider nich so viel über Catia und Excel drin steht... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DanielFr. Moderator Manager
Beiträge: 2506 Registriert: 10.08.2005 HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3
|
erstellt am: 14. Okt. 2009 10:41 <-- editieren / zitieren --> Unities abgeben: Nur für HAW-Raptor
|
HAW-Raptor Mitglied Design Release Engineer
Beiträge: 58 Registriert: 12.10.2009
|
erstellt am: 21. Okt. 2009 23:20 <-- editieren / zitieren --> Unities abgeben:
Eine Frage habe ich nun doch noch: Ich schreibe nun die Userform über Catia VBA und es macht so langsam auch das was ich will, ließt Daten in eine ComboBox ein etc. Jetzt würde ich nur noch gerne wissen, wie ich das geöffnete Excelfile ohne es zu speichern (Der Nutzer soll nur auf die Datei zugreifen können, nicht speichern) schließen kann. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DanielFr. Moderator Manager
Beiträge: 2506 Registriert: 10.08.2005 HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3
|
erstellt am: 22. Okt. 2009 08:23 <-- editieren / zitieren --> Unities abgeben: Nur für HAW-Raptor
Hallo, dazu musst du zuerst deine Arbeitsmappe (Workbook schließen ohne Speicherabfrage) Code:
MyWB.Close False
dann musst du noch Excel killen. Aber hier ist Vorsicht geboten den Excel reicht es nicht wenn man einfach sagt "Set myExcel = Nothing". Wenn du dies tust wirst du feststellen das Excel zwar aus der Taskleiste verschwindet aber die EXCEL.EXE noch in deinem Taskmanager läuft. Hier muss ein gezieltes Fensterhandel ran. Das ist schon nicht mehr so einfach. Im Anhang mal ein kleines Beispiel wie man Excel ordentlich schließt (ohne irgendwelche Fragmente im Speicher zurückzulassen. Das könnte ggf. zu Problemen bei Dateiwiederherstellungen beim Absturz von Excel führen!) Anmerkung: Das Ganze ist ein exportiertes VB Modul aus CATIA. Musst du also mit dem Microsoft Visual Basic Editor aus CATIA wieder über Datei -> importieren einlesen ------------------ MFG Daniel Systeminformation | Inoffizielle CATIA Hilfeseite | CATIA FAQ | Suche | TraceParts (Normteile...) | 3D Content Central (noch mehr Normteile...) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Tstone Mitglied Werkzeugkonstrukteur
Beiträge: 163 Registriert: 04.06.2003 Dell Precision 470 Intel Xeon CPU 3,00GHz 2GB Ram Microsoft Windows XP Catia V5 R18 SP6 VB2005
|
erstellt am: 22. Okt. 2009 08:36 <-- editieren / zitieren --> Unities abgeben: Nur für HAW-Raptor
|
HAW-Raptor Mitglied Design Release Engineer
Beiträge: 58 Registriert: 12.10.2009
|
erstellt am: 22. Okt. 2009 08:50 <-- editieren / zitieren --> Unities abgeben:
Hallo, wie muss ich das dann umsetzen. Habe testweise einen CommandButton erstellt, aber wenn ich da eintrage ExcelWorkbook.Close SaveChanges:=False Set ExcelSheet = Nothing Set ExcelWorkbook = Nothing Excel.Application.Quit Set Excel = Nothing Kommt eine Fehlermeldung Expectet End Sub Excel ist definiert als Excel.Application [Diese Nachricht wurde von HAW-Raptor am 22. Okt. 2009 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Tstone Mitglied Werkzeugkonstrukteur
Beiträge: 163 Registriert: 04.06.2003 Dell Precision 470 Intel Xeon CPU 3,00GHz 2GB Ram Microsoft Windows XP Catia V5 R18 SP6 VB2005
|
erstellt am: 22. Okt. 2009 09:09 <-- editieren / zitieren --> Unities abgeben: Nur für HAW-Raptor
Hi, bitte einmal die gesamte Ereignisprozedur einstellen. Nur so kann man zu deinem Problem etwas sagen. ------------------ Grüße TStone "Respektiere die Macht der Worte, wähle sie mit Bedacht!" Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HAW-Raptor Mitglied Design Release Engineer
Beiträge: 58 Registriert: 12.10.2009
|
erstellt am: 22. Okt. 2009 09:11 <-- editieren / zitieren --> Unities abgeben:
Hallo, Private Sub CommandButton1_Click() ExcelWorkbook.Close SaveChanges:=False Set ExcelSheet = Nothing Set ExcelWorkbook = Nothing Excel.Application.Quit Set Excel = Nothing End Function Danke schon mal für die Mühen... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 22. Okt. 2009 09:50 <-- editieren / zitieren --> Unities abgeben: Nur für HAW-Raptor
|
HAW-Raptor Mitglied Design Release Engineer
Beiträge: 58 Registriert: 12.10.2009
|
erstellt am: 22. Okt. 2009 10:16 <-- editieren / zitieren --> Unities abgeben:
|
DanielFr. Moderator Manager
Beiträge: 2506 Registriert: 10.08.2005 HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3
|
erstellt am: 22. Okt. 2009 13:33 <-- editieren / zitieren --> Unities abgeben: Nur für HAW-Raptor
|
HAW-Raptor Mitglied Design Release Engineer
Beiträge: 58 Registriert: 12.10.2009
|
erstellt am: 23. Okt. 2009 11:52 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich habe ein Problem: Kann es sein, wenn der Rechner, auf dem ich diese in Catia erstellte Userform starte, kein Excel hat, das es dann nicht funktioniert? Auf meinem Rechner zuhause kann ich das ganze ohne Probleme starten und es läuft wirklich super, aber auf dem Rechner eines Freundes funktioniert es nicht, er schreibt mir er hat Probleme mit den Referenzen zur Excel Library und "object of with block not set"??? War meine ganze Arbeit nun für die Katz??? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DanielFr. Moderator Manager
Beiträge: 2506 Registriert: 10.08.2005 HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3
|
erstellt am: 23. Okt. 2009 11:55 <-- editieren / zitieren --> Unities abgeben: Nur für HAW-Raptor
|
HAW-Raptor Mitglied Design Release Engineer
Beiträge: 58 Registriert: 12.10.2009
|
erstellt am: 23. Okt. 2009 12:14 <-- editieren / zitieren --> Unities abgeben:
|
HAW-Raptor Mitglied Design Release Engineer
Beiträge: 58 Registriert: 12.10.2009
|
erstellt am: 23. Okt. 2009 12:38 <-- editieren / zitieren --> Unities abgeben:
Jetzt habe ich aber doch noch eine Frage: Bei der Vorlage von meinem Betreuer wird auch im Hintergrund mit dem Befehl Oeffnen = Catia.FileSelectionBox("Wählen Sie Ihre Datei aus", "*.xls", CatFileSelectionModeOpen) Set Excel = CreateObject (Oeffnen) doch auch eine Excelobjekt erzeugt und Excel startet im Hintergrund, sehe ich das richtig? Das ist ja das, was er mir vorher geschickt hat und ich bin das jetzt nur mal die ersten Schritte durchgegangen... Der einzige Unterschied bei meine Programm ist, das mein Excelfile im Hintergrund solange läuft, bis man auf beenden drückt und bei meinem Betreuer wird es immer an und wieder ausgeschaltet. Das Problem müsste also eigentlich ein anderes sein, oder? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Tstone Mitglied Werkzeugkonstrukteur
Beiträge: 163 Registriert: 04.06.2003 Dell Precision 470 Intel Xeon CPU 3,00GHz 2GB Ram Microsoft Windows XP Catia V5 R18 SP6 VB2005
|
erstellt am: 23. Okt. 2009 13:15 <-- editieren / zitieren --> Unities abgeben: Nur für HAW-Raptor
Hallo, die Lösung deines Problems ist nicht in der Frage ob early oder late binding genutzt wird zu finden. Wenn Excel nicht installiert ist kann dein Programm nicht funktionieren. Auch wenn du alle Excel- betreffende Variabeln umdeklarierst, endet dein Programm spätestens beim ersten Methodenaufruf oder bei der ersten Eigenschaftenzuweisung an Excel. Einer der häufigsten Fehler bei der Softwareautomation ist der Zugriff auf Objekte die eigentlich schon terminiert sind, d.h. du hast Excel mit: Excel.Quit Set Excel = Nothing beendet und greifst später im Code nochmals auf die Variabel Excel zu Excel.Visible = True dann hast du auch wieder eine Excel-Instanz offen. ------------------ Grüße TStone "Respektiere die Macht der Worte, wähle sie mit Bedacht!" Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DanielFr. Moderator Manager
Beiträge: 2506 Registriert: 10.08.2005 HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3
|
erstellt am: 23. Okt. 2009 13:24 <-- editieren / zitieren --> Unities abgeben: Nur für HAW-Raptor
Zitat: Original erstellt von Tstone: Hallo, die Lösung deines Problems ist nicht in der Frage ob early oder late binding genutzt wird zu finden. Wenn Excel nicht installiert ist kann dein Programm nicht funktionieren. Auch wenn du alle Excel- betreffende Variabeln umdeklarierst, endet dein Programm spätestens beim ersten Methodenaufruf oder bei der ersten Eigenschaftenzuweisung an Excel. Einer der häufigsten Fehler bei der Softwareautomation ist der Zugriff auf Objekte die eigentlich schon terminiert sind, d.h. du hast Excel mit: Excel.Quit Set Excel = Nothing beendet und greifst später im Code nochmals auf die Variabel Excel zu Excel.Visible = True dann hast du auch wieder eine Excel-Instanz offen.
Hallo, nein dann bekommst du einen Fehler das das Objekt oder die Variable nicht gesetzt ist. Außer Excel war schon vor dem Start des Makros geöffnet oder das Excel Object wurde nicht ordentlich zerstört. Aber trotzdem verstehe ich nicht ganz was du vorhast. Du kannst nur ein Excel Objekt erzeugen wenn Excel auch installiert ist. Das ist doch logisch! Wenn Excel nicht installiert ist dann kannst du es auch nicht öffnen ------------------ MFG Daniel Systeminformation | Inoffizielle CATIA Hilfeseite | CATIA FAQ | Suche | TraceParts (Normteile...) | 3D Content Central (noch mehr Normteile...) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HAW-Raptor Mitglied Design Release Engineer
Beiträge: 58 Registriert: 12.10.2009
|
erstellt am: 23. Okt. 2009 13:28 <-- editieren / zitieren --> Unities abgeben:
Hallo, ja das habe ich mir ja auch schon gedacht aber: Die Userform meines Betreuers, die er mit als Beispiel mitgegeben hat öffnet ja ebenso wie ich auch das Excelfile. Und die Daten, um die es geht befinden sich nun mal in einem Excelfile. Ich gehe also davon aus, das auch der Nutzer, der meine Userform nutzen möchte, denn darum geht es nun mal in diesem Projekt - aus einer Excelliste heraus Informationen saugen, um letztendlich ein Catpart einfügen zu können - auch Excel hat. Und wie gesagt, da die Userform meines Betreuers ebenso wie meine Excel startet mit dem Befehl CreateObject (Oeffnen) bin ich doch eigentlich auf dem richtigen Weg, oder sehe ich das jetzt komplett falsch? Es muss eben nur gewährleistet sein, dass die entsprechenden Referenzen aktiviert sind und das Excel installiert ist. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HAW-Raptor Mitglied Design Release Engineer
Beiträge: 58 Registriert: 12.10.2009
|
erstellt am: 23. Okt. 2009 13:42 <-- editieren / zitieren --> Unities abgeben:
Hallo, logisch: Ja Es ging nur darum, dass ich meinen ersten Entwurf der Userform meinem Betreuer geschickt habe. Bei mir funktioniert sie wirklich wunderbar, bei ihm kommen die oben genannten Fehlermeldungen. Das wenn ich denn schon etwas aus einer Excelliste ziehen möchte auch dieses installiert sein muss ist mir klar, denn sonst kann ich das Excelobjekt ja nicht erzeugen Ich denke, es liegt daran, das wie mein Betreuer mir schon geschrieben hat, Sie Probleme haben mit der Excel Library. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DanielFr. Moderator Manager
Beiträge: 2506 Registriert: 10.08.2005 HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3
|
erstellt am: 24. Okt. 2009 08:33 <-- editieren / zitieren --> Unities abgeben: Nur für HAW-Raptor
|
Tstone Mitglied Werkzeugkonstrukteur
Beiträge: 163 Registriert: 04.06.2003 Dell Precision 470 Intel Xeon CPU 3,00GHz 2GB Ram Microsoft Windows XP Catia V5 R18 SP6 VB2005
|
erstellt am: 24. Okt. 2009 19:22 <-- editieren / zitieren --> Unities abgeben: Nur für HAW-Raptor
Hallo Daniel, die PIA's werden nur bei DOTNET- Programmierung benötigt, mittels vba kannst du auf diese nicht sinnvoll referenzieren. Interop-Assemblies kapseln mittels eines Wrappers COM-Komponenten für den Einsatz in einer DOTNET Sprache. ------------------ Grüße TStone "Respektiere die Macht der Worte, wähle sie mit Bedacht!" Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HAW-Raptor Mitglied Design Release Engineer
Beiträge: 58 Registriert: 12.10.2009
|
erstellt am: 26. Okt. 2009 06:18 <-- editieren / zitieren --> Unities abgeben:
|
DanielFr. Moderator Manager
Beiträge: 2506 Registriert: 10.08.2005 HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3
|
erstellt am: 26. Okt. 2009 07:50 <-- editieren / zitieren --> Unities abgeben: Nur für HAW-Raptor
|
HAW-Raptor Mitglied Design Release Engineer
Beiträge: 58 Registriert: 12.10.2009
|
erstellt am: 26. Okt. 2009 08:32 <-- editieren / zitieren --> Unities abgeben:
Hallo, aber solche Dinge wie CountIf erkennt er nicht. Da kommt die Fehlermeldung "die CountIf-Eigenschaften des WorksheetFunction-Objektes kann nicht zugeordnet werden. Eigentlich habe ich jetzt alle Objekte allgemein, also nicht als Excel.Application oder ähnlichem deklariert... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DanielFr. Moderator Manager
Beiträge: 2506 Registriert: 10.08.2005 HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3
|
erstellt am: 26. Okt. 2009 08:43 <-- editieren / zitieren --> Unities abgeben: Nur für HAW-Raptor
|
HAW-Raptor Mitglied Design Release Engineer
Beiträge: 58 Registriert: 12.10.2009
|
erstellt am: 26. Okt. 2009 17:14 <-- editieren / zitieren --> Unities abgeben:
Hallo, also es funktioniert soweit ganz gut, ich kann eine Datei einlesen etc., auch solche Befehle wie iWorksheet.Select funktionieren sogar aber meine Function ComboBoxfüllen läuft nicht Hier die Function Code: Function cbo_fuellen(ByRef Excel As Object, cb As MSForms.ComboBox, lngCol As Long) Dim lngZeile As Long Dim zahl As Double Dim zahl2 As String For lngZeile = untere_grenze To 310 ' If Not Rows(lngZeile).Hidden Then If Excel.WorkSheetFunction.CountIf( _ iWorksheet.Range(iWorksheet.Cells(untere_grenze, lngCol), iWorksheet.Cells(lngZeile, lngCol)), _ iWorksheet.Cells(lngZeile, lngCol)) = 1 Then If Not Rows(lngZeile).Hidden Then zahl = iWorksheet.Cells(lngZeile, lngCol) 'zahl2 = Replace(wks.Cells(lngZeile, lngcol), ",", ".") cb.AddItem zahl ' End If End If End If Next lngZeile 'Dim i As Long, ar As Variant, objDic As Object 'Set objDic = CreateObject("scripting.dictionary") 'ar = tbl.Range(tbl.Cells(2, spalte), tbl.Cells(tbl.Rows.Count, spalte).End(xlUp)) End Function
Fehler: Object or With Block variable not set und markiert den Bereich, den ich mal fett hervorgehoben habe Weiß leider nicht, wie ich da weitermachen soll... [Diese Nachricht wurde von HAW-Raptor am 26. Okt. 2009 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Tstone Mitglied Werkzeugkonstrukteur
Beiträge: 163 Registriert: 04.06.2003 Dell Precision 470 Intel Xeon CPU 3,00GHz 2GB Ram Microsoft Windows XP Catia V5 R18 SP6 VB2005
|
erstellt am: 26. Okt. 2009 17:25 <-- editieren / zitieren --> Unities abgeben: Nur für HAW-Raptor
|
HAW-Raptor Mitglied Design Release Engineer
Beiträge: 58 Registriert: 12.10.2009
|
erstellt am: 26. Okt. 2009 17:31 <-- editieren / zitieren --> Unities abgeben:
Hallo, Public iWorksheet as Object ich habe mal genau vor dem CountIf Aufruf folgendes ausprobiert: MsgBox (iWorksheet.Cells(2,2)) Und er gibt mir auch den richtigen Wert aus... Ich hab's: ich hatte in der Private Sub ... Excel deklariert und das hat er natürlich nicht übernommen nachdem die Sub ausgeführt wurde [Diese Nachricht wurde von HAW-Raptor am 26. Okt. 2009 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DanielFr. Moderator Manager
Beiträge: 2506 Registriert: 10.08.2005 HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3
|
erstellt am: 27. Okt. 2009 05:53 <-- editieren / zitieren --> Unities abgeben: Nur für HAW-Raptor
|
HAW-Raptor Mitglied Design Release Engineer
Beiträge: 58 Registriert: 12.10.2009
|
erstellt am: 18. Nov. 2009 14:06 <-- editieren / zitieren --> Unities abgeben:
Hallo, ja ich bin's wieder mit einem Problem, dessen Lösung ich nicht finden kann, bzw. nicht nachvollziehen kann. Ich habe die Userform soweit fertig und er macht auch alles was ich will, außer die Exceldatei, die ich nutze, ist schon geöffnet. Ich habe bereits eine Abfrage, ob eine bestimmte Exceldatei geöffnet ist in deine Funktion (DanielFr.) mit eingebaut und bekomme so keine Fehler mehr. Ich kann damit auch arbeiten, ich kann ein bestimmtes Blatt selektieren, Daten lesen und auch alles beim geöffneten Excelblatt nachvollziehen etc. Aber mein Problem ist folgender Befehl: Code: Set zelle = iWorksheet.Cells.Find(temp, After:=ActiveCell, LookIn:=-4163, LookAt:=2, _ SearchOrder:=1, SearchDirection:=1, MatchCase:=False _ , SearchFormat:=False)
Hier entsteht auf einmal ein Fehler, wenn ich die Exceldatei vorher geöffnet habe. Lasse ich die Datei über die Userform erzeugen (CreateObject etc.) funktioniert dieser Befehl. Des Weiteren wundert es mich, dass ich, um vernünftig die Daten aus einem Tabellenblatt zu lesen, dieses selektieren muss. Ich habe es mal ausprobiert ohne es zu selektieren, indem ich eine Variable worksheet definiert habe und mit dieser das Programm laufen lasse, aber irgendwann funktioniert das nicht mehr, z.B. das löschen der Filter etc. Habt ihr da noch Nützliches? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DanielFr. Moderator Manager
Beiträge: 2506 Registriert: 10.08.2005 HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3
|
erstellt am: 18. Nov. 2009 15:17 <-- editieren / zitieren --> Unities abgeben: Nur für HAW-Raptor
|
HAW-Raptor Mitglied Design Release Engineer
Beiträge: 58 Registriert: 12.10.2009
|
erstellt am: 18. Nov. 2009 15:44 <-- editieren / zitieren --> Unities abgeben:
Hallo DanielFr., also das mit dem Tabellenblatt habe ich einfach mit Worksheet.Select gelöst, es wundert mich nur, dass es ohne diesen Befehl nicht geht. Der Fehler lautet: Run-time error '13' Type mismatch Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HAW-Raptor Mitglied Design Release Engineer
Beiträge: 58 Registriert: 12.10.2009
|
erstellt am: 22. Nov. 2009 16:02 <-- editieren / zitieren --> Unities abgeben:
|
V5Playaz Mitglied Dipl.-Ing (BA)
Beiträge: 447 Registriert: 12.07.2005 DELL PRECISION 390 3,25 GB RAM WIN XP PRO SP2 CATIA V5 R16-19 Delmia V5 R19 VB6, VB2008 Adobe Acrobat 9 Pro Extended
|
erstellt am: 22. Nov. 2009 17:34 <-- editieren / zitieren --> Unities abgeben: Nur für HAW-Raptor
Wenn ich das alles richtig verstanden habe, arbeitest du jetzt über CATvba?! Solange dort ein Makro/Userform/Code läuft, ist CATIA "blockiert". Aber da wir dein Code nicht kennen, ist eine genauere Analyse nicht möglich. Abhilfe bekommt man, falls bei dir kein Problem im Code vorliegt, durch die "externe" Programmierung, also z.B. über VB2008. grüße Dominik Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HAW-Raptor Mitglied Design Release Engineer
Beiträge: 58 Registriert: 12.10.2009
|
erstellt am: 22. Nov. 2009 19:39 <-- editieren / zitieren --> Unities abgeben:
|
DanielFr. Moderator Manager
Beiträge: 2506 Registriert: 10.08.2005 HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3
|
erstellt am: 23. Nov. 2009 05:47 <-- editieren / zitieren --> Unities abgeben: Nur für HAW-Raptor
|