Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Excel - Catia Kommunikation

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 - Catia Kommunikation (1394 mal gelesen)
Tobse85
Mitglied
Student


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

Beiträge: 15
Registriert: 30.05.2008

erstellt am: 17. Jun. 2008 16:01    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 Forum,

ich habe folgendes Problem:
Ich schreibe von Catia Werte in bestimmte Zellen meiner Exceltabelle. Diese Zellen sind in Excel mit einer Formel hinterlegt welche den Wert einer anderen Zelle verändert. Diesen veränderten Wert möchte ich dann wieder aus Excel einlesen und weiter verwenden. Mein Problem aber dabei ist, dass ich zwar diesen veränderten Wert einlesen kann aber nicht den aktuellen Wert bekomme sondern den Wert mit den von Catia vorher eingeschriebenen Werten bekomme. Ich bekomme also nicht den aktuellen Wert. Das Makro scheint also zu schnell zu sein, so dass Excel nicht hinterher kommt. Oder mein Code ist einfach falsch. Gibt es vielleicht so eine Wartefunktion oder andere Möglichkeiten?

Hier mein Code:

Sub CATMain()

'Abfrage starten
if Norm = "DIN EN 10034" then
  Hoehe = InputBox ("Bitte Profilhoehe eingeben", "Abfrage Profilhoehe", Hoehe)
  Breite = InputBox ("Bitte Profilbreite eingeben", "Abfrage Profilbreite", Breite)
  Stegdicke = InputBox ("Bitte Stegdicke eingeben", "Abfrage Stegdicke", Stegdicke)
  Flanschdicke = InputBox ("Bitte Flanschdicke eingeben", "Abfrage Flanschdicke", Flanschdicke)
end if

'Konstruktionstabelle zuweisen
Dim Rels As Relations
Set Rels = CATIA.ActiveDocument.Part.Relations
Dim KTab As DesignTable
Dim KName, Beschreibung, Pfad As CATBSTR
KName = "Konstruktionstabelle"
Beschr = "Tabelle mit Werten zur Dichteanpassung"
Pfad = "C:\Dokumente und Einstellungen\hormann\Eigene Dateien\Konstruktionstabelle.xls"
Set KTab = Rels.CreateDesignTable (KName, Beschr, false, Pfad)

'Der Konstruktionstabelle die Werte übergeben und die entsprechende Konfiguration suchen
Dim Excel As Application
Dim WB As Workbook
Dim Ws As Worksheet
Dim Spalte_D, Spalte_H, Spalte_Dicke  As Double
Dim Spalte_Norm As String
Dim Zeile As Integer
Set Excel = CreateObject("Excel.Application")
Excel.Visible = false
Set WB = Excel.Workbooks.Open ("C:\Dokumente und Einstellungen\hormann\Eigene Dateien\Konstruktionstabelle.xls")
Set WS = WB.Worksheets.Item (1)
Zeile = 0

if Norm = "DIN EN 10034" then

WB.ActiveSheet.Activate
Excel.cells(284,6).Value = Hoehe
Excel.cells(284,7).Value = Breite
Excel.cells(284,8).Value = Stegdicke
Excel.cells(284,9).Value = Flanschdicke
WB.Save

end if

if Norm = "DIN EN 10034" then
KTab.Configuration = 283 (Der Wert dieser Zeile wird mit Excelformel verändert)
else
  KTab.Configuration = Zeile
end if
 

'Parameter "Dichte_angepasst" mit Wert aus Konstruktionstabelle verknüpfen
    KTab.AddAssociation Dichte_angepasst, "Dichte_angepasst" (Hier wird nicht der aktuell veränderte Wert aus Excell genommen sondern der Wert der zuvor in dieser Zelle stand)

End Sub

Für Hilfe wäre ich sehr dankbar.

mfg Tobi

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



Bauzeichner / technischer Zeichner (w/m/d) für bau- und gebäudetechnische Dokumentation

Das ist unsere bekannteste Aufgabe: Die sichere und punktgenaue Organisation des Flugverkehrs in Deutschland. Erfahrene, exzellent ausgebildete Fluglotsinnen und -lotsen sind dafür verantwortlich. Als Arbeitgeber sind wir jedoch noch breiter aufgestellt ? das unterstreicht schon die Zahl von über 5.600 Mitarbeitenden. In unserer Zentrale, den Nieder­lassungen und an den Tower-Standorten bieten wir Einsteigenden und Profis aus vielen Bereichen attraktive Berufs­perspektiven....

Anzeige ansehenTechnischer Zeichner, Bauzeichner
SirKlabauter
Mitglied
cand. Ing.


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

Beiträge: 45
Registriert: 21.09.2006

CATIA: V5R16
Programmiersprache: VBA

erstellt am: 09. Jul. 2008 15: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 Nur für Tobse85 10 Unities + Antwort hilfreich

Es gibt eine Wartefunktion, besser gesagt Sleepfuntion.

Das ganze funktioniert über eine API:

Die Deklaration lautet:

Zitat:
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Um diese Funktion auf zu rufen:

Zitat:
Private Sub Command1_Click()
  Sleep 2000
  MsgBox "2 Sekunden Später"
End Sub


------------------
Hinweise auf Rechtschreibfehler kann man sich bitte sparen.

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