Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Übernahme des Inhalts von IFC-Dateien in Excel Tabelle
#31
Hallöchen,

zum einen mach mal aus der (3) eine (2)
Falls der Suchstring noch in anderem Zusammenhang in der Datei steht, kann es sein, dass das Array kleiner ist.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#32
Hallo,

ich habe den String geändert und die Fehlermeldung ist weg. In der Tabelle wird jedoch der Teil "IFCIDENTIFIER" ausgelesen, der in der IFC Datei vor dem gewünschten Eintrag steht. Wie kann der Code angepaßt werden, dass der nachfolgende Wert in Klammer ausgegeben werden kann (siehe unten) ?

#925= IFCPROPERTYSINGLEVALUE('Reference',$,IFCIDENTIFIER('LAGER 3 6'),$);
#939= IFCPROPERTYSINGLEVALUE('Kategorie',$,IFCLABEL('Lagerung'),$);
Antworten Top
#33
Hallöchen,

dann vielleicht so:
Code:
Case strSearch7
             If InStr(1, arrText(2), "IFCLABEL") > 0 Then Cells(lStart, 9) = Split(arrText(2), strCutter)(2)
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#34
Hallo,

jetzt werden zwar die Zeilen mit IFC Label ausgelesen, jedoch nicht der Wert in Klammer. Ich vermute, dass eventuell der Range der Daten auf diesen Bereich erweitert werden muss, da der Code beim Aufrufen des nächsten Eintrags (hinter IFC Label) immer die Fehlermeldung ausgibt, dass der Index außerhalb des gültigen Bereichs liegt.
Antworten Top
#35
Hallo,

welcher Wert wird denn ausgelesen? Über die Zahl in Klammern steuerst Du das.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#36
Hallöchen,

ich hab mal noch eine Änderung für etwas weiter oben, wo die Klammer als Trenner eingesetzt wird:
Code:
        strCutter = "("
        arrTemp = Split(arrTemp(1), strCutter)
        arrText(1) = Trim(arrTemp(0))
        arrText(2) = arrTemp(1)
'ab hier
        If Right(arrText(2), 8) = "IFCLABEL" And UBound(arrTemp) > 1 Then
          arrText(2) = arrText(2) & "(" & arrTemp(2)
        End If
'bis hier
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#37
Hallo Andre,

jetzt wird der Wert in eine Zelle ausgelesen! Jetzt ist nur noch das Problem, dass die Verbindung mit dem vorigen Wort, z.B. "IFCLABEL(Lagerung)" innerhalb einer Zelle vorhanden ist. Könntest Du bitte nochmals prüfen, ob ev. mittels zusätzlichem Eintrag im Code der Wert in Klammer in eine eigne Zelle hinter der Zelle mit dem Wert vor der Klammer gesetzt wird. Dann wäre gut, wenn der Eintrag in Klammer in dieselbe Zeile mit den anderen Werten gesetzt werden könnte. Derzeit wird dieser Wert unterhalb dieser Zeile ausgegeben.

eventuell muss die Zeile unten aus deinem Code dafür angepasst werden:
If InStr(1, arrText(2), "IFCLABEL") > 0 Then Cells(lStart, 9) = Split(arrText(2), strCutter)(0)
Antworten Top
#38
Hallöchen,

statt

If InStr(1, arrText(2), "IFCLABEL") > 0 Then Cells(lStart, 9) = Split(arrText(2), strCutter)(0)

dann

Code:
If InStr(1, arrText(2), "IFCLABEL") > 0 Then
               Cells(lStart - 1, 9) = "IFCLABEL"
               Cells(lStart - 1, 10) = Replace(Replace(Split(arrText(2), strCutter)(0), "IFCLABEL(", ""), "'", "")
             End If
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#39
Hallo Andre, 

jetzt wird "IFC LABEL" und die Werte in Klammer in eigene Zellen geschrieben. Besser wäre der Eintrag "Kategorie" vor IFC Label in einer Zelle und der Eintrag in der Klammer in die nächste Zelle (siehe IFC Eintrag unten). Leider ist keine Auswahl des Feldes möglich, das in dieselbe Zeile mit den anderen Einträgen geschrieben werden sollte (ausgehend von IFCSPACE). Derzeit wird scheinbar ein beliebiges Feld bei diesen Einträgen von IFC SPACE hinten angehängt. Zusätzlich wird (seltsamerweise) nach Ergänzung der Codes von heute der Eintrag der Raumfläche (=IFCQUANTITYAREA) nicht mehr in diese Zeile übernommen. Vielleicht kannst Du diese kniffligen Aufgaben lösen!

#939= IFCPROPERTYSINGLEVALUE('Kategorie',$,IFCLABEL('Lagerung'),$);
Antworten Top
#40
Hallo Sunny,

gehe den Code mal schrittweise durch und schaue, wo der EIntrag IFCLABEL in eine Zelle geschrieben wird. Dort ersetzt Du IFCABEL durch Kategorie. Oder Soll Kategorie, IFCLABEL und der Wert in Klammern in die Zeile? Das hab ich nicht so richtig aus Deiner Aufgabe erkannt. Warum das andere nicht geht, kann ich nicht sagen. Dort ist ja nichts geändert. Da bräuchte man vielleicht nochmal Deine Version des Codes.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste