Seite 1 von 1
Zellbereich in einem Textfield lesen
Verfasst: Mi, 29.07.2015 16:33
von Jörg
hallo Fachleute,
in meinem Dialog möchte ich den Zellbereich "G8:I8" in einem Textfield lesen.
Mit nachstehendem Code erhalte ich allerdings die Fehlermeldung: Eigenschaft oder Methode nicht gefunden: string.
Als Variable habe ich
Dim Anschrift as Object deklariert.
Code: Alles auswählen
Anschrift = osheet.getCellRangeByName("G8:I8")
myString14 = Anschrift.string
oDialog4.getControl("TextField15").Text = myString14
Wäre schön, wenn, Ihr mir helfen könntet.
Vielen Dank.
Gruß Jörg
Re: Zellbereich in einem Textfield lesen
Verfasst: Mi, 29.07.2015 17:01
von clag
Hallo Jörg,
was soll da nun genau passieren
G8, H8, I8 nebeneinander, untereinander mit Abstand ?
und dann alles zusammen in Textfeld14 schreiben?
Re: Zellbereich in einem Textfield lesen
Verfasst: Mi, 29.07.2015 18:15
von Jörg
Hallo clag,
also in ("G8:I8") ,Tabelle soundso steht was drin.
Ich öffne meinen Dialog und in Textfield 15(!) soll stehen (lesen), was in G8 & H8 & I8 steht.
Geht das überhaupt?
Bei einzelnen Zellen hab ich das ohne Problem hingekriegt.
Gruß Jörg
Re: Zellbereich in einem Textfield lesen
Verfasst: Mi, 29.07.2015 18:43
von clag
Hallo Jörg,
Code: Alles auswählen
Sub Main
oCalc = ThisComponent
oSheet = oCalc.Sheets(0)
myArray = oSheet.getCellRangeByName("G8:I8").getdataArray
mStrings = myArray(0)
sLongText = join(mStrings()," - ")
print sLongText
End Sub
vielleicht so!?
Re: Zellbereich in einem Textfield lesen
Verfasst: Mi, 29.07.2015 19:34
von Jörg
Hallo clag,
cool. Dit is aber schnieke.
Danke Dir und wünsche einen schönen Abend.
Gruß Jörg
Code: Alles auswählen
sub Main
myArray = oSheet.getCellRangeByName("G8:I8").getdataArray
mStrings = myArray(0)
sLongText = join(mStrings()," - ")
oDialog4.getControl("TextField15").Text = slongText
end sub
Re: Zellbereich in einem Textfield lesen
Verfasst: Mo, 10.08.2015 11:19
von Jörg
Hallo Fachleute, ein kleines Problem.
Dank clags Hilfe lese ich einen Zellbereich in einem Textfield aus.
Code: Alles auswählen
myVerordn5 = oSheet.getCellRangeByName("E17:D17").getdataArray
mStrings = myVerordn5(0)
sLongText = join(mStrings()," x ")
oDialog4.getControl("TextField23").Text = slongText
Die Werte in E17 und D17 sind Ergebnisse einers Sverweises. ( Bsp. 10 x irgendwas)
Code: Alles auswählen
=(SVERWEIS($B$8;Rechnungen.$A$1:Rechnungen.$AV$439;VERGLEICH($T$3;Rechnungen.$A$1:$AV$1;0);0))
Wenn die Zellen Leer sind erscheint im Textfield: 0 x 0.
Nun habe ich die Formel geändert in:
Code: Alles auswählen
=WENN(ISTLEER(SVERWEIS($B$8;Rechnungen.$A$1:Rechnungen.$AV$439;VERGLEICH($T$3;Rechnungen.$A$1:$AV$1;0);0));"";(SVERWEIS($B$8;Rechnungen.$A$1:Rechnungen.$AV$439;VERGLEICH($T$3;Rechnungen.$A$1:$AV$1;0);0)))
bleibt als Ergebnis im Textfield: X
Soweit logisch.
Nun hatte ich versucht, dass x auch noch wegzubekommen.
Code: Alles auswählen
Dim myVerordn5 as Object
myVerordn5 = oSheet.getCellRangeByName("E17:D17").getdataArray
mStrings = myVerordn5(0)
if myVerordn5 <> "" then
sLongText = join(mStrings()," x ")
oDialog4.getControl("TextField23").Text = slongText
else
sLongText = join(mStrings()," ")
oDialog4.getControl("TextField23").Text = slongText
end if
Klappt aber leider nicht, weil eine Objektvariable nicht belegt ist (Fehlermeldung).
Wie muß es richtig sein?
Gruß Jörg
Re: Zellbereich in einem Textfield lesen
Verfasst: Mo, 10.08.2015 15:01
von clag
Hallo Jörg,
du machst m.E. es unnötig kompliziert,
sorge in deinen Formeln dafür das du immer eine "0" oder den richtigen Text bekommst,
wenn es nur eine Zeile ist, kann man auch noch etwas kürzer werden
dann reicht eine zusätzliche Zeile im Code um dein Problem zu lösen,
Code: Alles auswählen
Dim oVerordn5 as Object
oVerordn5 = oSheet.getCellRangeByName("D17:E17").getdataArray
sLongText = join(oVerordn5(0)," x ")
if sLongText = "0 x 0" then sLongText = "" '<<<<<<< diese Zeile einfügen
oDialog4.getControl("TextField23").Text = sLongText
tut es mit dem Code wie gewünscht?
Re: Zellbereich in einem Textfield lesen
Verfasst: Mo, 10.08.2015 15:59
von Jörg
Hallo clag,
danke, dass Du Dir trotz der Hitze die Mühe machst.
Nachdem ich die Formeln wieder in den Ursprungszustand gebracht habe, funktioniert Dein Vorschlag bestens.
Eine Frage hätte ich jedoch.
Warum endet die if-Anweisung nicht mit end if ??
Gruß Jörg
Re: Zellbereich in einem Textfield lesen
Verfasst: Mo, 10.08.2015 16:08
von clag
Jörg hat geschrieben:Warum endet die if-Anweisung nicht mit end if ??
weil die einzige then Anweisung direkt danach in der selben Zeile folgt
dann ist das "end if" nicht erforderlich.
Re: Zellbereich in einem Textfield lesen
Verfasst: Mo, 10.08.2015 16:14
von Jörg
Jo, danke.