Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Excel Tabelle durchsuchen

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:  Excel Tabelle durchsuchen (3276 mal gelesen)
FDS
Mitglied



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

Beiträge: 11
Registriert: 25.01.2011

erstellt am: 04. Mrz. 2011 08: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

Hallo,

ich habe ein Problem mit meinem VBA Makros. Ich würde gerne eine Spalte einer Excel Tabelle nach einem bestimmten Wert durchsuchen. Dazu benötige ich die Anzahl der Zeilen dieser Spalte um nicht unnötig viel zu durchsuchen oder zu wenig.
In einem Excel Makro von mir habe ich sowas schon oft gemacht. Der Befehl Tabelle.cells(Rows.Count, 3).End(xlUp).Row liefert mir die Anzahl der Reihen der Spalte 3. genau das was ich will. Funktionniert in Excel wunderbar, aber wenn ich die Funktion in ein Catia Makro einbau kommt die Fehlermeldung Runtime error '424': Object required . Warum klappt dieser Befehl unter Excel, aber unter Catia nicht. Vielleicht hat auch jamand eine andere Lösung die in beiden Umgebungen Funktionniert.

Gruß,
Jürgen

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. Mrz. 2011 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 Nur für FDS 10 Unities + Antwort hilfreich

Servus
Es ist nicht klar auf was sich Rows bezieht.
Versuch mal Tabelle.Rows.Count

Gruß
Bernd

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

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

FDS
Mitglied



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

Beiträge: 11
Registriert: 25.01.2011

erstellt am: 04. Mrz. 2011 09:57    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 Bernd,

danke für den Tipp, aber meine Tabelel hat im moment maximal 36 Zeilen. Dein Vorschlag liefert mir 1048576 Zeilen, ist ein wenig viel. Warum kannt Excel denn dann dieses Rows??

gruß,
Jürgen

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. Mrz. 2011 10:09    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 FDS 10 Unities + Antwort hilfreich

Servus
Bitte Systeminfo ausfüllen. Ich glaub wir "reden" aneinander vorbei.
Versuch mal Tabelle.cells(Tabelle.Rows.Count, 3).End(xlUp).Row

Gruß
Bernd

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

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

Mörchen
Ehrenmitglied V.I.P. h.c.
CAD-Trainerin (CATIA V5)



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

Beiträge: 3830
Registriert: 14.03.2007

Release 19 SP2

erstellt am: 04. Mrz. 2011 10:10    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 FDS 10 Unities + Antwort hilfreich

Hallo Jürgen,

ich habe vom Programmieren zwar wenig Ahnung, aber wenn Du es im Excel realisieren kannst, warum ermittelst Du den gesuchten Wert nicht in Excel über " Befehl Tabelle.cells" in einer Zelle und fragst dann den so ermittelten Wert im CATIA-Programm zur Weiterverwendung ab?

------------------
Gruß
Mörchen

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

runkelruebe
Ehrenmitglied V.I.P. h.c.
Straßen- / Tiefbau



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

Beiträge: 8075
Registriert: 09.03.2006

Drauß vom Walde komm ich her,
verlaufen hab ich mich gar sehr ;-)

erstellt am: 04. Mrz. 2011 10:13    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 FDS 10 Unities + Antwort hilfreich

Nee, Deine Tabelle hat schon 1048576 Zeilen, Du benutzt davon aber nur 36  
Mal eine >> Leseempfehlung << zum Thema letzte benutzte Zelle Excel-VBA, auch wenn Dir das schon bekannt sein sollte, es sind dort noch mehr Varianten aufgeführt.
Allerdings fehlt auch dort überall das Workbook und das Worksheet, ich denke ebenfalls, dass Du da Deine Probleme hast. Weise diese doch mal explizit zu in Deinem code und die Sache mit den Verweisen auf die Office-Object-Library wären da auch noch...
HTH
[rredit] die Zeile von Bernd läuft SO noch nicht, die muß angepaßt werden auf z.B. Tabelle1.rows.count (halt der Name des Blatts, nicht die Registerbezeichnung .name, sondern die .codename-Eigenschaft) oder sheets(1).rows.count (Index des Blatts) usw. gibt ja gefühlt dutzende Ansprachemöglichkeiten... Oder ist das zu basic? Dann sorry, ich bin hier bei euch nicht so häufig...

------------------
Gruß,
runkelruebe          Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße...

System-Info | Dateianhänge | FAQ-ACAD | CAD.de-Hilfe | Sei eine Antilope

[Diese Nachricht wurde von runkelruebe am 04. Mrz. 2011 editiert.]

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

FDS
Mitglied



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

Beiträge: 11
Registriert: 25.01.2011

erstellt am: 04. Mrz. 2011 15:14    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, Danke für eure Antworten.

@ Mörchen: kurz zum hintergrund: ich habe in meinem Modell je nach ausführung eine unterschiedliche Anzahl an Parametern (die eben in dieser Excel-Tabelle stehen) ich weiss also nicht wieviele parameter ich anziehen muss. Klar könnte ich das in excel ausrechnen lassen (da dort meine funktion ja läuft), übergeben und dann nur die anzahl durchsuchen, aber das finde ich wie sich mit der rechten hand am linken ohr gekratzt 

@Runkelrübe: Tabelle heisst das Worksheet bei mir gar nicht, war nur zu vereinfachung gedacht. hier mein richtiger Code:

Dim objxls As Object
Set objxls = GetObject("", "excel.application")

Dim XLS As Object
Set XLS = objxls.workbooks.Open("C:\temp\Inputs.xlsm")

Dim benoetigte_Inputs As Object
Set benoetigte_Inputs = XLS.Worksheets.Item("benoetigte_Inputs")

...."Code"....


Anzahl = benoetigte_Inputs.cells(Rows.Count, Spalte + 1).End(xlUp).Row

also ich denke zumindest ich habe bereits das workbook und worksheet definiert, ausser ich mach da was falsch 


gruß,
Jürgen

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. Mrz. 2011 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 FDS 10 Unities + Antwort hilfreich

Servus
Aber auf was bezieht sich Rows? Auch auf das Worksheet (bei dir benoetigte_Input)?

Gruß
Bernd

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

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

FDS
Mitglied



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

Beiträge: 11
Registriert: 25.01.2011

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

rows bezieht sich in dem fall auf nichts. Haben wir da den Fehler? unter excel vba musste ich das auch nicht definieren. Wie muss ich ich rows definieren, dass es klappt?

Gruß,
Jürgen

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. Mrz. 2011 15:37    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 FDS 10 Unities + Antwort hilfreich

Servus
Doch rows bezieht sich auf deine Mappe, da du ka die Anzahl der Reihen in deiner Mappe bekommen willst.
Also probiere mal (ungetestet)
Anzahl = benoetigte_Inputs.cells(benoetigte_Inputs.Rows.Count, Spalte + 1).End(xlUp).Row

Gruß
Bernd

PS: Bitte Systeminfo ausfüllen.

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

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

FDS
Mitglied



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

Beiträge: 11
Registriert: 25.01.2011

erstellt am: 07. Mrz. 2011 08:58    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 Bernd,

das hatte ich auch schon ausprobiert. Klappt leider nicht. benoetigte_Inputs hat keinen Eintrag .rows?? Bin langsam am verzweifeln...

Gruß,
Jürgen

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: 07. Mrz. 2011 09:06    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 FDS 10 Unities + Antwort hilfreich

Servus
Dann schau doch mal in die Doku von Excel.

Gruß
Bernd

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

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

FDS
Mitglied



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

Beiträge: 11
Registriert: 25.01.2011

erstellt am: 07. Mrz. 2011 16: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

So ich hab eine Lösung die fuktionniert:

Anzahl = benoetigte_Inputs.usedRange.rows.Count

die welt kann so einfach sein.

Gruß,
Jürgen

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