Registriert seit: 07.03.2016
Version(en): 2013
Hallo Andre,
kannst Du mir bitte doch den gesamten Code mit den Ergänzungen nochmals angeben?
Registriert seit: 07.03.2016
Version(en): 2013
Hallo Andre,
ich habe den bisherigen Code getestet und festgestellt, das dieser bereits den ersten Eintrag von Kategorie übernimmt (ohne Deinen zusätzlichen Code von zuletzt)!? Das habe ich getestet, indem ich in einer zweiten Tabelle lediglich die Einträge von IFCPROPERTYSINGLEVALUE eingelesen habe.
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen,
ob das so ist oder nur so aussieht ... In einigen Fällen war es ja so, dass der erste und zweite Eintrag gleich waren.
Hier nochmal der komplette Code. Die -1 bei den 3 Einträgen für strSearch7 hab ich wieder rausgenommen entsprechend Deiner Antwort #49
Code: Sub IFC()
Dim strLine$, strCutter$
Dim strSearch1$, strSearch2$, strSearch3$, strSearch4$, strSearch5$, strSearch6$
Dim arrText(3), arrTemp
Dim lStart&
Dim boMerker As Boolean
lStart = 1
strSearch1 = "IFCBUILDINGSTOREY"
strSearch2 = "IFCLOCALPLACEMENT"
strSearch3 = "IFCRECTANGLEPROFILEDEF"
strSearch4 = "IFCEXTRUDEDAREASOLID"
strSearch5 = "IFCSPACE"
strSearch6 = "IFCQUANTITYAREA"
strSearch7 = "IFCPROPERTYSINGLEVALUE"
Open Datei_Dialog For Input As #1
Do While Not EOF(1)
Line Input #1, strLine
If InStr(strLine, strSearch1) > 0 Or _
InStr(strLine, strSearch2) > 0 Or _
InStr(strLine, strSearch3) > 0 Or _
InStr(strLine, strSearch4) > 0 Or _
InStr(strLine, strSearch5) > 0 Or _
InStr(strLine, strSearch6) > 0 Or _
InStr(strLine, strSearch7) > 0 Then
strLine = Left(strLine, Len(strLine) - 2)
strReplace strLine
strCutter = "="
arrTemp = Split(strLine, strCutter)
arrText(0) = arrTemp(0)
strCutter = "("
arrTemp = Split(arrTemp(1), strCutter)
arrText(1) = Trim(arrTemp(0))
arrText(2) = arrTemp(1)
If Right(arrText(2), 8) = "IFCLABEL" And UBound(arrTemp) > 1 Then
arrText(2) = arrText(2) & "(" & arrTemp(2)
End If
strCutter = ","
Select Case arrText(1)
Case strSearch1
Cells(lStart, 1) = arrText(1)
Cells(lStart, 2) = Split(arrText(2), strCutter)(2)
Cells(lStart, 3) = Split(arrText(2), strCutter)(5)
Cells(lStart, 4) = Split(arrText(2), strCutter)(9)
lStart = lStart + 1
Case strSearch2
Cells(lStart, 2) = Split(arrText(2), strCutter)(0)
Case strSearch3
Cells(lStart, 7) = Split(arrText(2), strCutter)(3)
Cells(lStart, 8) = Split(arrText(2), strCutter)(4)
Case strSearch4
Cells(lStart, 6) = Split(arrText(2), strCutter)(3)
Case strSearch5
Cells(lStart, 1) = Split(arrText(2), strCutter)(0)
Cells(lStart, 3) = Split(arrText(2), strCutter)(2)
Cells(lStart, 4) = Split(arrText(2), strCutter)(7)
Case strSearch6
Cells(lStart, 5) = Split(arrText(2), strCutter)(3)
lStart = lStart + 1
boMerker = False
Case strSearch7
If InStr(1, arrText(2), "IFCLABEL") > 0 And InStr(1, arrText(2), "Kategorie") > 0 And Not boMerker Then
boMerker = True
Cells(lStart, 9) = "IFCLABEL"
Cells(lStart, 10) = "Kategorie"
Cells(lStart, 11) = Replace(Replace(Split(arrText(2), strCutter)(2), "IFCLABEL(", ""), "'", "")
End If
End Select
Range(Cells(lStart, 1), Cells(lStart, 9)).Replace What:=".", Replacement:="."
End If
Loop
Close #1
End Sub
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 07.03.2016
Version(en): 2013
Hallo Andre,
vielen Dank für Deinen neuen Code. Der neue Code liest bei mir die Kategorien teilweise falsch aus, Dein voriger Code war eigentlich immer korrekt und hat zuletzt immer den nächstfolgenden Wert von Kategorie ausgelesen. Ich denke mir, ich werde den Code von vorher beibehalten.
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallo Sunny,
da ist bei mir eventuell bei den einzelnen Änderungen was untergegangen. Aber wenn's mit dem "Vorletzten" Code klappt ist ja alles gut
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
|