so, also hier meine Lösung, vielleicht nicht perfekt, aber funktioniert
Code: Alles auswählen
Sub Fixtermine_Auslesen
Dim FixDoc as object
Dim Fixsheet as object
Fixdoc = ThisComponent
Fixsheet = Fixdoc.sheets(0)
FIxRange = Fixsheet.getcellRangeByName("$W1:$W350")
FixSuchen = FixRange.createReplaceDescriptor
FixSuchen.setSearchString("Fixtermin")
FixSuchen.setReplaceString("Fix ")
Fixrange.replaceAll(FixSuchen)
FixSuchen.setSearchString("Fix")
FixSuchen.setReplaceString("Fix ")
Fixrange.replaceAll(FixSuchen)
for i= 1 to2
FixSuchen.setSearchString("Fix ")
FixSuchen.setReplaceString(" ")
Fixrange.replaceAll(FixSuchen)
next i
als erstes suche ich nach "Fixtermin" und änder es in "Fix<Leerzeichen>"
ebenso ändere ich "Fix" in "Fix<Leerzeichen>"
anschliessend lösche ich doppelte Leerzeichen nach dem "Fix" (2 mal)
Ziel davon ist, maximal 1 Leerzeichen nach dem Wort Fix zu erhalten.
Code: Alles auswählen
for zaehlen = 1 to 350
zellobjekt = Fixsheet.getcellrangebyname ("W" & zaehlen)
Zellinhalt = zellobjekt.string
inhaltlaenge = len(Zellinhalt)
IF inhaltlaenge < 9 then
Zellinhalt = zellinhalt & "xxxxxxxxxxxx"
end if
hier gehe ich sicher, daß der Zellinhalt alle meine "mid" Anweisungen befolgen kann
Code: Alles auswählen
Searchstring = "Fix"
'---Fix finden ----
test = instr(zellinhalt,searchstring) ' Suche Fix in Zellinhalt
test2 = mid(zellinhalt, (test+4), 5) ' Test2 beinhaltet nun 5 Zeichen nach dem Wort Fix+Leerzeichen
zielzelle1 = fixsheet.getcellrangebyname ("AJ" & zaehlen) ' hier wird der wert reingeschrieben
nun die Suche nach den Formatierungen :
Code: Alles auswählen
if instr(test2,":") > 0 then
c = mid(test2, instr(test2,":")+1)
test3 = val(test2)*10
test4 = val(c)/10
zielzelle1.value = (test3 + test4)/10
wenn also ein ":" vorkommt, ist C der inhalt des nachfolgenden Wertes
Test3 ist der Zahlenwert aus dem Text "00:00", irgendwie hab ich festgestellt, dass durch den ":" alle weiteren Zahlenwerte = 0 sind, also ist Test3 nur der Wert vor dem ":". Wert*10, da er vor dem Komma stehen soll
Test4 /10, da hinter dem Komma
Code: Alles auswählen
elseif instr(test2,",") > 0 then
if val(test2) > 100 then
zielzelle1.value = val(test2)/100
else
zielzelle1.value = val(test2)/10
end if
else
zielzelle1.value = val(test2)
end if
next zaehlen
End Sub
der Rest sollte klar sein : 9,30 als Text ist 930 als Zahlwert, 16.30 ist 1630 usw.
gibt bestimmt Verbesserungen, aber : es funktioniert
