Text in Spalten ala M$ Excel
Moderator: Moderatoren
Text in Spalten ala M$ Excel
Hallo,
ich arbeite seit geraumer Zeit mit OO, vermisse aber eine Funktion in OO Calc, die ich in Excel sehr praktisch fand: "Text in Spalten" (kurze Erklärung: Anhand von definierbaren Textbegrenzungszeichen wird eine Zeichenkette in einer Zelle auf mehrere Zellen aufgeteilt).
Diese Funktion vermisse ich schon sehr.
Gibt es so eine Funktion? In der Hilfe fand ich leider keinen Hinweis auf etwas Vergleichbares .
Ich würde mich freuen, wenn jemand darauf eine positive Antwort hätte.
Thomas
-- Der aus dem hohen Norden --
ich arbeite seit geraumer Zeit mit OO, vermisse aber eine Funktion in OO Calc, die ich in Excel sehr praktisch fand: "Text in Spalten" (kurze Erklärung: Anhand von definierbaren Textbegrenzungszeichen wird eine Zeichenkette in einer Zelle auf mehrere Zellen aufgeteilt).
Diese Funktion vermisse ich schon sehr.
Gibt es so eine Funktion? In der Hilfe fand ich leider keinen Hinweis auf etwas Vergleichbares .
Ich würde mich freuen, wenn jemand darauf eine positive Antwort hätte.
Thomas
-- Der aus dem hohen Norden --
Hey Thomas,
eine vergleichbare Funktion ist mir nicht bekannt.
Dies wäre aber durch ein Makro zu lösen.
Viele Grüße
Thomas
eine vergleichbare Funktion ist mir nicht bekannt.
Dies wäre aber durch ein Makro zu lösen.
Viele Grüße
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Hallo Thomas,
ich habe diese Antwort befürchtet .
Bei einer Zeichenkette, die sich auf zwei Spalten aufteilen würden, könnte ich mir schon vorstellen, auf ein Makro zurückzugreifen,
aber die typischerweise auftretenden Strings müssten auf 9-11 Spalten aufgeteilt werden, je nach Quellanwendung.
Ich werde mich mal mit dem Makro-Gedanken auseinandersetzen.
Trotzdem vielen Dank für die Antwort!
Thomas
-- Der aus dem hohen Norden --
ich habe diese Antwort befürchtet .
Bei einer Zeichenkette, die sich auf zwei Spalten aufteilen würden, könnte ich mir schon vorstellen, auf ein Makro zurückzugreifen,
aber die typischerweise auftretenden Strings müssten auf 9-11 Spalten aufgeteilt werden, je nach Quellanwendung.
Ich werde mich mal mit dem Makro-Gedanken auseinandersetzen.
Trotzdem vielen Dank für die Antwort!
Thomas
-- Der aus dem hohen Norden --
Hallo Thomas,
ich habe diese Antwort befürchtet .
Bei einer Zeichenkette, die sich auf zwei Spalten aufteilen würden, könnte ich mir schon vorstellen, auf ein Makro zurückzugreifen,
aber die typischerweise auftretenden Strings müssten auf 9-11 Spalten aufgeteilt werden, je nach Quellanwendung.
Ich werde mich mal mit dem Makro-Gedanken auseinandersetzen.
Trotzdem vielen Dank für die Antwort!
Thomas
-- Der aus dem hohen Norden --
ich habe diese Antwort befürchtet .
Bei einer Zeichenkette, die sich auf zwei Spalten aufteilen würden, könnte ich mir schon vorstellen, auf ein Makro zurückzugreifen,
aber die typischerweise auftretenden Strings müssten auf 9-11 Spalten aufgeteilt werden, je nach Quellanwendung.
Ich werde mich mal mit dem Makro-Gedanken auseinandersetzen.
Trotzdem vielen Dank für die Antwort!
Thomas
-- Der aus dem hohen Norden --
Hey Thomas,
ob zwei - oder neun Spalten, das ist für das Makro egal. Wenn du nicht weiterkommst, gib Bescheid. Das ist nicht so schwierig.
Gruss
Thomas
ob zwei - oder neun Spalten, das ist für das Makro egal. Wenn du nicht weiterkommst, gib Bescheid. Das ist nicht so schwierig.
Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Hallo Thomas,
ich habe mir mal die Syntax eines aufgezeichneten Makros angsehen.
Ich muss zugeben, daß ich als M$-Excel-VBA-User so ein gewisse Umstell-Zeit benötigen würde, um ähnlich sicher mit OO-Basic umzugehen wie mit VBA.
Aus diesem Grund würde ich mich sehr freuen, wenn Du mir einen Hinweis geben könntest, wie ich ein solches Makro stricken müsste.
Oder gibt es so etwas schon fertig?
Thomas
-- Der aus dem hohen Norden --
ich habe mir mal die Syntax eines aufgezeichneten Makros angsehen.
Ich muss zugeben, daß ich als M$-Excel-VBA-User so ein gewisse Umstell-Zeit benötigen würde, um ähnlich sicher mit OO-Basic umzugehen wie mit VBA.
Aus diesem Grund würde ich mich sehr freuen, wenn Du mir einen Hinweis geben könntest, wie ich ein solches Makro stricken müsste.
Oder gibt es so etwas schon fertig?
Thomas
-- Der aus dem hohen Norden --
Hallo Thomas,
tia, VBA und OOo-Makros sind eben doch etwas verschiedenes. Aber, kein Problem.
Hier das Makro:
Hab ich getestet mit der Zeichenfolgekette
"Montag, Dienstag, Mitwoch, Donnerstag, Freitag, Samstag"
Funktioniert einwandfrei. Wenn Du nicht zurecht kommst, schick ich dir gerne die Datei inkl. Makro zum testen und lesen.
Hoffe, es hilft
Thomas
tia, VBA und OOo-Makros sind eben doch etwas verschiedenes. Aber, kein Problem.
Hier das Makro:
Code: Alles auswählen
Sub Main
trz="," ' Trennzeichen definieren
oDoc=thisComponent
' Werte einlesen
'aktive Zelle erhalten
oCelle=oDoc.getCurrentSelection()
'Inhalt der aktiven Zelle
inhalt=oCelle.getstring
'werte auf Array aufteilen am Trenner
atext=split(inhalt, trz)
'Position der aktiven Zelle erhalten
oZellPos=oCelle.getCellAddress()
'indexe der Reihe, Spalte und der Tabelle
reihe=oZellPos.row
spalte=oZellPos.column
tabelle=oZellPos.sheet
' Werte ausgeben
' aktives Tabellenblatt erhalten
oSheet=oDoc.sheets(tabelle)
'Schleife über alle Array-Inhalte
'Inhalte in Zellen aktive Zelle und rechts daneben
'schreiben. Die Funktion trim() entfernt dabei
'Leerzeichen vor und hinter den jeweiligen Texteinträgen
for i=lBound(atext()) to ubound(atext())
oSheet.getCellByPosition(spalte+i,reihe).string=trim(atext(i))
next
End Sub
"Montag, Dienstag, Mitwoch, Donnerstag, Freitag, Samstag"
Funktioniert einwandfrei. Wenn Du nicht zurecht kommst, schick ich dir gerne die Datei inkl. Makro zum testen und lesen.
Hoffe, es hilft
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Hallo Thomas,
vielen Dank für den Code, er funktioniert genauso, wie es mir gedacht habe!
Habe es mit den bei mir anfallenden Strings erfolgreich getestet.
Und durch den variablen Trenner bin ich noch flexibler.
Wieder ein Schritt hin zum M$-freien Arbeitsplatz!
Nochmals vielen Dank für die schnelle Hilfe.
Thomas
-- Der aus dem hohen Norden --
p.s. Gibt es eine gute Literatur, um sich in OO-Basic einzuarbeiten?
vielen Dank für den Code, er funktioniert genauso, wie es mir gedacht habe!
Habe es mit den bei mir anfallenden Strings erfolgreich getestet.
Und durch den variablen Trenner bin ich noch flexibler.
Wieder ein Schritt hin zum M$-freien Arbeitsplatz!
Nochmals vielen Dank für die schnelle Hilfe.
Thomas
-- Der aus dem hohen Norden --
p.s. Gibt es eine gute Literatur, um sich in OO-Basic einzuarbeiten?
Hallo Thomas,
schön, dass es hilft. Es empfiehlt sich aber, das Makro später noch mit entsprechenden Fehlerroutinen zu schützen und somit zu perfektionieren. Hab ich auf die Schnelle nicht gemacht.
Zum Einlesen in Basic:
Am besten das OpenOffice.org SDK heruterladen und installieren. Um das aber alles zu verstehen, ist etwas Programmierkenntnis norwendig.
Auch gut: "Basic Programmers Guide" von Sun , jetzt für StarOffice7. Auf der Homepage von Sun suchen oder dem Link auf OpenOffice.org folgen -> irgendwo bei Literatur? Kostenlos, PDF, 260S, englisch
bis bald
Thomas
schön, dass es hilft. Es empfiehlt sich aber, das Makro später noch mit entsprechenden Fehlerroutinen zu schützen und somit zu perfektionieren. Hab ich auf die Schnelle nicht gemacht.
Zum Einlesen in Basic:
Am besten das OpenOffice.org SDK heruterladen und installieren. Um das aber alles zu verstehen, ist etwas Programmierkenntnis norwendig.
Auch gut: "Basic Programmers Guide" von Sun , jetzt für StarOffice7. Auf der Homepage von Sun suchen oder dem Link auf OpenOffice.org folgen -> irgendwo bei Literatur? Kostenlos, PDF, 260S, englisch
bis bald
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Hallo Gast,
ein paar mehr Informationen wären schon von Nöten
Ansonsten:
Die Antwort ist einfach: mit Schleifen.
Gruss
Thomas
ein paar mehr Informationen wären schon von Nöten
Ansonsten:
Die Antwort ist einfach: mit Schleifen.
Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Hey Gast,
na, da hast du doch schon fast alles.
Die Selektion hat Eigenschaften, unter anderem ein Objekt "rangeaddress", das wiederum hat Eigenschaften wie sheet (integer) , Startrow, endrow, startcolumn, endcolumn (long).
Die kannst du doch auslesen und hast dadurch deine Start- und Endwerte.
Gruss
Thomas
na, da hast du doch schon fast alles.
Die Selektion hat Eigenschaften, unter anderem ein Objekt "rangeaddress", das wiederum hat Eigenschaften wie sheet (integer) , Startrow, endrow, startcolumn, endcolumn (long).
Die kannst du doch auslesen und hast dadurch deine Start- und Endwerte.
Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Hallo Gast,
trotzdem noch ein Tipp: Wenn du mal in Basic nicht weiterweisst:
Dann lass dir einfach die Objekteigenschaften und -Methoden anzeigen:
So hangelt man sich dann von Objekt zu Objekt und und findet normalerweise alles, was man sucht. So mache ich das auch und habe schon viele, viele Stunden damit verbracht
Gruss
Thomas
trotzdem noch ein Tipp: Wenn du mal in Basic nicht weiterweisst:
Dann lass dir einfach die Objekteigenschaften und -Methoden anzeigen:
Code: Alles auswählen
msgbox <objekt>.dbg_properties ' die Eigenschaften
msgbox <objekt>.dbg_methods ' die Methoden
Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Hey Gast (hast du eigentlich auch einen Namen?)
also, wenn das dein Code ist, ist der für mich ein wenig unübersichtlich und - wie ich glaube - hat einige strukurelle Fehler.
Was soll die sub "main"? Einen Dialog öffnen und gleich wieder schliessen?
"main" ist kein besonderes Schlüsselwort. Wenn du Variablen gundsätzlich definieren willst - was übrigens sinnvoll wäre, z.B. Dlg, oDoc, evt. auch oCelle...- dann kannst du das am Anfang des gesamten Moduls, also vor dem ersten sub, tun. Dann gelten die Variablen für alle Subs oder Funktionen.
Mir fehlt jetzt einfach die Vorgehensweise: Wann wird der Dialog aufgerufen? Aus der Sun "SelektierteZellen" -> "einzeln" ? in dieser Sub wird Dlg neu definiert, aber nicht ausgeführt?
Bekommst du eigentlich irgendwelche Fehlermeldungen?
Leider kann ich den Code nicht teten, da mir natürlich dein Dialog fehlt. Handelt es sich bei Feld "edZeichen" denn auch um ein Textfeld? Numerische Felder haben keine Texteigenschaft, sondern eine Value-Eigenschaft.
Wenn du nicht weiterkommst, kannst du mir die Datei mal schicken (als pm) , dann kann ich mehr sagen.
Gruss
Thomas
also, wenn das dein Code ist, ist der für mich ein wenig unübersichtlich und - wie ich glaube - hat einige strukurelle Fehler.
Was soll die sub "main"? Einen Dialog öffnen und gleich wieder schliessen?
"main" ist kein besonderes Schlüsselwort. Wenn du Variablen gundsätzlich definieren willst - was übrigens sinnvoll wäre, z.B. Dlg, oDoc, evt. auch oCelle...- dann kannst du das am Anfang des gesamten Moduls, also vor dem ersten sub, tun. Dann gelten die Variablen für alle Subs oder Funktionen.
Mir fehlt jetzt einfach die Vorgehensweise: Wann wird der Dialog aufgerufen? Aus der Sun "SelektierteZellen" -> "einzeln" ? in dieser Sub wird Dlg neu definiert, aber nicht ausgeführt?
Bekommst du eigentlich irgendwelche Fehlermeldungen?
Leider kann ich den Code nicht teten, da mir natürlich dein Dialog fehlt. Handelt es sich bei Feld "edZeichen" denn auch um ein Textfeld? Numerische Felder haben keine Texteigenschaft, sondern eine Value-Eigenschaft.
Wenn du nicht weiterkommst, kannst du mir die Datei mal schicken (als pm) , dann kann ich mehr sagen.
Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Hallo Gast (ok, noch nicht angemeldet, aber einen Namen wirst du doch trotzdem schon haben? Einfach mit unterschreiben!)
OK, einigermassen verstanden. Dann kommentier mal die Zeile in der Sub "Einzeln" aus, die die mit Dlg beginnt (also die zweite Zeile) und setze deine erste Zeile in der Sub "main" (Dim Dlg as object) mal vor die Sub main.
Dann sollte es eigentlich funktionieren.
Gruss
Thomas
OK, einigermassen verstanden. Dann kommentier mal die Zeile in der Sub "Einzeln" aus, die die mit Dlg beginnt (also die zweite Zeile) und setze deine erste Zeile in der Sub "main" (Dim Dlg as object) mal vor die Sub main.
Dann sollte es eigentlich funktionieren.
Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic