Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Vor CATIA Makro aus in Excel-Datei nach Namen suchen

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:  Vor CATIA Makro aus in Excel-Datei nach Namen suchen (2297 mal gelesen)
Dadidldi
Mitglied



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

Beiträge: 22
Registriert: 18.03.2009

CATIA R19
CatScript

erstellt am: 27. Mrz. 2009 14:47    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,

ich müsste in einem CATIA Makro nach einem bestimmten Feld in einer exisierenden Excel-Datei suchen. Und anschließend die Koordinaten dieses Feldes ausgeben.
Ich habe leider keinen Befehl gefunden, der das macht.

Hintergrund. Mein Makro holt sich Teilenummern aus dem aktiven Part. Diesen sollen dann Materialstärken zugeordnet werden. Welches Teil welche Wandstärke hat, steht im besagten Excel-Dokument.
Also will ich im Exceldokument nach der Teilenummer suchen und die Materialstärke (die 2 Felder daneben steht) auslesen und diese weiterverwenden.

Grüße

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

Hartmut44
Mitglied


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

Beiträge: 9
Registriert: 23.07.2007

erstellt am: 27. Mrz. 2009 15: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 Dadidldi 10 Unities + Antwort hilfreich

Hallo Dadidldi,

mit

XLS_Feld = CDbl(WS.Cells(Reihe, Spalte).Value)

kannst du ein XLS Feld auslesen.

Die Werte Reihe und Spalte sind numerische Werte. Das Feld A1 hätte dann die Werte 1,1.

Grüße

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

Dadidldi
Mitglied



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

Beiträge: 22
Registriert: 18.03.2009

CATIA R19
CatScript

erstellt am: 27. Mrz. 2009 15: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

Hallo Hartmut,

das bringt mir leider nix. Ich weiß nicht welches Feld das Richtige ist. Den Inhalt des Feldes (also die Teilenummer) habe ich bereits.Ich will nun wissen in welchem Feld des Excel-Sheets genau diese Teilenummer steht.

MfG
  Dadi

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: 27. Mrz. 2009 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 Dadidldi 10 Unities + Antwort hilfreich

Hallo

Mit folgendem Script könnte es funktionieren:

Sub CATMain()

Dim Excel As Object
           
                ' Versuchen ein evtl. bereits geöffnetes Excel zu aktivieren
                ' Sollte kein Excel geöffnet sein erzeugt dieser befehl einen Fehler
                ' deshalb mit On Error Resume Next im falle eines Fehlers mit dem nächsten Befehl fortfahren
                On Error Resume Next
                Set Excel = GetObject(, "Excel.Application")
             
                ' Wenn der vorhergehene Befehl einen Fehler erzeugt hat (err.Number <> 0) Excel starten
                If Err.Number <> 0 Then
                    Set Excel = CreateObject("Excel.Application")
                    Excel.Visible = True            'Excel im Hintergrund
                End If
                Excel.Workbooks.Open "C:\Temp\test.xls"
               
                           
           
            Set Tabelle1 = Excel.ActiveWorkbook.Sheets(1)
       
           
           
           
           
A = Excel.Application.WorksheetFunction.VLookup("A", Tabelle1.Range(Tabelle1.Cells(1, 1), Tabelle1.Cells(3, 2)), 2)

MsgBox (A)

End Sub


Die Funktion Vlookup heißt im Deutschen Sverweis. Hierbei wird in der ersten Spalte einer Matrix ein Wert gesucht ( hier "A") und dann der Wert in der zweiten Spalte herausgegeben.

Die Anweisung "Tabelle1.Range(Tabelle1.Cells(1, 1), Tabelle1.Cells(3, 2))" beschreibt die Größe und Position der Matrix in der Excel tabelle.

Hoffe die Info hilft

Martin

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

Dadidldi
Mitglied



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

Beiträge: 22
Registriert: 18.03.2009

CATIA R19
CatScript

erstellt am: 30. Mrz. 2009 14: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

Hi mkna,

vielen Dank, hat funktioniert.
Hatte anfangs Probleme weil mir immer ein Wert ausgegeben wurde der wo ganz wo anders im Excel war. Funktioniert hats dann als ich die Funktion VLookup noch mit "False" ergänzt habe. Also:

A = Excel.Application.WorksheetFunction.VLookup("A", Tabelle1.Range(Tabelle1.Cells(1, 1), Tabelle1.Cells(3, 2)), 2, false)

Dadurch sucht er immer nach der GENAUEN Zeichenfolge. Auch wenn ich nicht wirklich verstehe warum Excel hier das nicht von allein macht...

Grüße
  Dadi

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

Dadidldi
Mitglied



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

Beiträge: 22
Registriert: 18.03.2009

CATIA R19
CatScript

erstellt am: 02. Apr. 2009 09: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

Hi mkna,

ich hab dazu jetzt doch noch mal ne Frage weil ich nicht weiterkomme.
Mein Code sieht nun so aus:

...

Code:
Dim ID1,ID2 As Short
  ID1 = SplitTeile(0)
  ID2 = SplitTeile(1)

  Dim A, B As String
  A = Excel.Application.WorksheetFunction.VLookup(ID1, Tabelle1.Range(Tabelle1.Cells(6, 1), Tabelle1.Cells(104, 3)), 2, false)
  B = Excel.Application.WorksheetFunction.VLookup(ID2, Tabelle1.Range(Tabelle1.Cells(6, 1), Tabelle1.Cells(104, 3)), 2, false)
MsgBox(A)
MsgBox(B)



Meine Teilenamen kommen aus einem Array, den ich auslese und die Variablen ID1 und ID2 speichere. Anschließend suche ich in der Tabelle nach diesen Werten (fett geschrieben).
Dabei wird mir nun folgender Fehler ausgegeben:
Die VLookup Eigenschaft des WorksheetFunction-Objektes kann nicht zugeordnet werden.
Wenn ich statt der Variable ID1 die Nummer (intressanterweise zwingend ohne Anführungszeichen) eingebe, funktioniert es.

Ich habe schon versucht die Variablen ID1 und ID2 als Short, Long, Double, String oder CATBstr zu deklarieren aber immer mit dem Selben Ergebnis.
Auch das Ändern der Formatierung der Spalte in Excel auf ´Zahl´ oder ´Text´ macht keinen Unterschied.

Weiß da zufällig eine ein Lösung??

Grüße
  Dadi

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