Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Mehrere Daten per Schleife in EINE Excel-Datei

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:  Mehrere Daten per Schleife in EINE Excel-Datei (1116 mal gelesen)
IGELReiser
Mitglied


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

Beiträge: 9
Registriert: 16.11.2012

V5R19

erstellt am: 16. Nov. 2012 14: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

Hi Leute,
folgender Code

Code:
pfadzurexceldatei="F:\XXXX\Makrotest.xlsx"
Set objexcel = createobject("Excel.application")
objexcel.Visible = True
'zeigt Excel an (GUI startet) falls diese Zeile nicht angegeben wird, startet Excel im Hintergrund
objexcel.Workbooks.add
objexcel.Cells(1, 1).Value = "ventilhub"
objexcel.Cells(i+2, 1).Value = length4.value
objexcel.Cells(1, 2).Value = "grad um z"
objexcel.Cells(i+2, 2).Value = degree
objexcel.Cells(1, 3).Value = "hoehe"
objexcel.Cells(1, 4).Value = "schenkel1"
objexcel.Cells(1, 5).Value = "schenkel2"
objexcel.Cells(i+2, 3).Value = length1.value
objexcel.Cells(i+2, 4).Value = length2.value
objexcel.Cells(i+2, 5).Value = length3.value

objexcel.ActiveWorkbook.SaveAs(pfadzurexceldatei)
objexcel.Quit
Set objexcel = Nothing


soll mir jetzt in einer schleife (i von 0 bis 100) in eine Excel-Tabelle schreiben.
Ist sowas möglich? Bisher erzeugt er ja immer die Excel-Datei neu und überschreibt mir damit die alte.
Und 100 Tabellen möchte ich auch nicht unbedingt erzeugen...

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

moppesle
Ehrenmitglied V.I.P. h.c.
Konstrukteur


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

Beiträge: 3418
Registriert: 28.05.2009

CATIA V5 R19 SP9
WIN 7 64bit

erstellt am: 16. Nov. 2012 14: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 Nur für IGELReiser 10 Unities + Antwort hilfreich

Hallo IGELReiser,

wenn du deine Zeilen und Spalten hochzählst sollte das funktionieren.


Sinngemäß:

z=1O' Startzeile
s=2' Startspalte


objexcel.Cells(z, s).Value = "ventilhub"
...
...
Z=Z+1
S=s+1

------------------
Gruß Uwe

Auch Catia ist nur ein Mensch!    

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

IGELReiser
Mitglied


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

Beiträge: 9
Registriert: 16.11.2012

V5R19

erstellt am: 16. Nov. 2012 14:53    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

wenn ich dich richtig verstanden habe, mache ich das schon (mit dem "i")
problem ist, dass in jedem schleifendurchlauf eine neue xlx erstellt wird und die alte überschrieben wird (und somit die vorhergehende zeile wieder leer wird).

oder hab ich dich nicht richtig verstanden

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

IGELReiser
Mitglied


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

Beiträge: 9
Registriert: 16.11.2012

V5R19

erstellt am: 16. Nov. 2012 15:15    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

okay, ich habe mittlerweile etwas umgecoded und machs so, dass erst alle werte im makro gespeichert werden und diese dann auf einmal in die excel tabelle geschrieben werden. nur, wie muss ich die syntax gestalten, dass ich die variablen hochzählen kann (mit i)

also ich stells mir so vor:

Set length1(i) = parameters1.Item("hoehe")
Set length2(i) = parameters1.Item("schenkel1")
Set length3(i) = parameters1.Item("schenkel2")
Set length4(i) = parameters1.Item("Ventilhub")

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

moppesle
Ehrenmitglied V.I.P. h.c.
Konstrukteur


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

Beiträge: 3418
Registriert: 28.05.2009

CATIA V5 R19 SP9
WIN 7 64bit

erstellt am: 16. Nov. 2012 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 Nur für IGELReiser 10 Unities + Antwort hilfreich

Hallo,
möchtest du aus einer Produktstruktur die Parameter der Parts nach Excel schreiben?

------------------
Gruß Uwe

Auch Catia ist nur ein Mensch!    

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

IGELReiser
Mitglied


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

Beiträge: 9
Registriert: 16.11.2012

V5R19

erstellt am: 16. Nov. 2012 15: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

IGELReiser
Mitglied


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

Beiträge: 9
Registriert: 16.11.2012

V5R19

erstellt am: 16. Nov. 2012 16:05    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

Code:
Language="VBSCRIPT"

Sub CATMain()

dim i
dim length1(360)
dim length2(360)
dim length3(360)
dim length4(360)
dim length5(360)

For i = 0 to 180 step 10

Set partDocument1 = CATIA.ActiveDocument

Set part1 = partDocument1.Part

Set relations1 = part1.Relations

Set designTable1 = relations1.Item("DesignTable.8")

designTable1.Configuration = i

part1.Update

set Selection1 = partDocument1.selection

Set parameters1 = part1.Parameters

Set length1(i) = parameters1.Item("hoehe")
Set length2(i) = parameters1.Item("schenkel1")
Set length3(i) = parameters1.Item("schenkel2")
Set length4(i) = parameters1.Item("Ventilhub")

next

pfadzurexceldatei="F:\XXXX\Makrotest.xlsx"
Set objexcel = createobject("Excel.application")

objexcel.Visible = True

'zeigt Excel an (GUI startet) falls diese Zeile nicht angegeben wird, startet Excel im Hintergrund
objexcel.Workbooks.add

for i = 0 to 180 step 10

degree = i+1

objexcel.Cells(1, 1).Value = "ventilhub"
objexcel.Cells(i+2, 1).Value = length4(i).value
objexcel.Cells(1, 2).Value = "grad um z"
objexcel.Cells(i+2, 2).Value = degree
objexcel.Cells(1, 3).Value = "hoehe"
objexcel.Cells(1, 4).Value = "schenkel1"
objexcel.Cells(1, 5).Value = "schenkel2"
objexcel.Cells(i+2, 3).Value = length1(i).value
objexcel.Cells(i+2, 4).Value = length2(i).value
objexcel.Cells(i+2, 5).Value = length3(i).value

next

objexcel.ActiveWorkbook.SaveAs(pfadzurexceldatei)
objexcel.Quit
Set objexcel = Nothing


End Sub


so sieht mein code nun aus.
ich habe zwei schleifen, die erste schreibt mir die werte in die arrays
und die zweite liest diese dann aus und schreibt sie mir in die exceldatei.

funktioniert aber nicht, da er mir in der zweiten schleife immer dieselben werte ausgibt (und zwar die letzten der vorhergehenden schleife)

wo liegt jetzt mein fehler?

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

moppesle
Ehrenmitglied V.I.P. h.c.
Konstrukteur


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

Beiträge: 3418
Registriert: 28.05.2009

CATIA V5 R19 SP9
WIN 7 64bit

erstellt am: 16. Nov. 2012 16:23    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 IGELReiser 10 Unities + Antwort hilfreich

Bin nicht der Profi was Programmieren betrift, aber must du nicht die Zeilen und Spalten hochzählen.

Zitat:
objexcel.Cells(1, 1).Value = "ventilhub"

hier schreibst du doch immer in Zeile und Spalte 1

------------------
Gruß Uwe

Auch Catia ist nur ein Mensch!    

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

IGELReiser
Mitglied


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

Beiträge: 9
Registriert: 16.11.2012

V5R19

erstellt am: 16. Nov. 2012 16:28    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 einfach meine bezeichnung für die jeweilige spalte. aber du hast recht, ich habs mal aus der schleife rausgenommen

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: 16. Nov. 2012 16: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 IGELReiser 10 Unities + Antwort hilfreich

Servus
Wird dein Array korrekt befüllt?
Du könntest doch die Werte gleich in der ersten Schleife in die Exceldatei schreiben.

Gruß
Bernd

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

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

IGELReiser
Mitglied


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

Beiträge: 9
Registriert: 16.11.2012

V5R19

erstellt am: 16. Nov. 2012 16: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

stimmt, danke, jetzt funktionierts auf einmal auch 

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