wie kann man Text aus Dialog in Zellen einfügen
Moderator: Moderatoren
wie kann man Text aus Dialog in Zellen einfügen
Anfänger sucht Hilfe!
1.)ich habe keine Infos gefunden, wie man den eingegebenen Text eines Textfeldes eines Dialoges in eine Zelle eintragen kann,
2.)dabei sollen aber nur 20 Zeichen begrenzt eingetragen werden, damit ist die Zelle voll und es soll die Zelle nächste dran sein, sozusagen Splitten des Textes (wenn möglich Trennung nach Worten und nicht nach Zeichen).
Ist so etwas überhaupt möglich?
vielen Dank im Voraus für Eure Bemühungen
1.)ich habe keine Infos gefunden, wie man den eingegebenen Text eines Textfeldes eines Dialoges in eine Zelle eintragen kann,
2.)dabei sollen aber nur 20 Zeichen begrenzt eingetragen werden, damit ist die Zelle voll und es soll die Zelle nächste dran sein, sozusagen Splitten des Textes (wenn möglich Trennung nach Worten und nicht nach Zeichen).
Ist so etwas überhaupt möglich?
vielen Dank im Voraus für Eure Bemühungen
Hey mr_weeds,
alles möglich, nur, du musst es halt programmieren
Das Prinzip ist einfach:
Willst du den Text vorher analysieren und kürzen, so kannst du aas ebenfalls alles machen - die Varaible "sText" hat je nun den Inhalt 
Gruss
Thomas
alles möglich, nur, du musst es halt programmieren

Das Prinzip ist einfach:
Code: Alles auswählen
REM Zellobjekt A! des ersten Tabellenblattes
oZelle = thisComponent.sheets(0).getCellRangeByName("A1")
REM Inhalt des Textfeldes "text1" des Dialoges "oDlg"
sText = oDlg.getControl("text1").text
REM Text in Zelle schreiben:
oZelle.string = sText

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 mr_weeds,
ich hab ja nur das Prinzip dargestellt - das musst du natürlich für deine Verhältnisse anpassen.
Poste einfach mal den Code, den du schon hast - vom Dialog bis hin zu den verbundenen Schaltflächen - dann sehn wir weiter.
Gruss
Thomas
ich hab ja nur das Prinzip dargestellt - das musst du natürlich für deine Verhältnisse anpassen.
Poste einfach mal den Code, den du schon hast - vom Dialog bis hin zu den verbundenen Schaltflächen - dann sehn wir weiter.
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
der Dialog besitzt nur das Textfenster und eine Schaltfläche, diese soll den Vorgang auslösen. Zum Öffnen des Dialoges verwende ich folgendes:
Code: Alles auswählen
Dim MyDlg as Object
Dialoglibraries.Loadlibrary("Standard")
MyDlg= CreateUnoDialog(Dialoglibraries.Standard.Dialog1)
MyDlg.execute()
Gut, dann musst du als erstes "MyDlg" vor der ersten sub oder function definieren - als globale Varaible. In meinen Codezeilen ersetzt du dann "oDlg" mit "MyDlg". Es sollte dannn so ähnlich aussehen:
Wenn jetzt noch das Textfeld deines Dialoges den Namen "text1" trägt (Eigenschaften) und du das Makro "WertEintragen" dem Ereignis "Auslösen" der Schaltfläche zuordnest, dann hast du, was du willst. Der Inhalt wird in Zelle A1 des ersten Tabellenblattes geschrieben.
Gruss
Thomas
Code: Alles auswählen
Dim MyDlg as Object
sub DialogAufrufen
Dialoglibraries.Loadlibrary("Standard")
MyDlg= CreateUnoDialog(Dialoglibraries.Standard.Dialog1)
MyDlg.execute()
end sub
sub WertEintragen
MyDlg.endExecute()
REM Zellobjekt A! des ersten Tabellenblattes
oZelle = thisComponent.sheets(0).getCellRangeByName("A1")
REM Inhalt des Textfeldes "text1" des Dialoges "MyDlg"
sText = MyDlg.getControl("text1").text
REM Text in Zelle schreiben:
oZelle.string = sText
end sub
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
-
- ****
- Beiträge: 119
- Registriert: Di, 28.11.2006 19:44
- Wohnort: Meppen
Text auf mehrere Zellen aufteilen
Hallo mr_weeds
In deiner Frage schreibst du:
<<2.)dabei sollen aber nur 20 Zeichen begrenzt eingetragen werden, damit ist die Zelle voll und es soll die Zelle nächste dran sein, sozusagen Splitten des Textes (wenn möglich Trennung nach Worten und nicht nach Zeichen).>>
Ich habe den Code <WertEintragen> dahingehend geändert, dass der Inhalt der Variablen sText auf die Zellen A1, A2, A3,.... aufgeteilt wird:
sub WertEintragen
dim teilstring as string
dim zeile as integer
MyDlg.endExecute()
REM Inhalt des Textfeldes "text1" des Dialoges "MyDlg"
sText = MyDlg.getControl("text1").text
doc=thiscomponent
MySheet=doc.sheets(0)
sText=MySheet.getcellbyposition(0,0).string
zeile = 0
do until len(sText)=0
teilstring=left(sText,20)
if instr(teilstring," ")>0 then
do until right(teilstring,1)=" "
teilstring = left(teilstring,len(teilstring)-1)
loop
end if
MySheet.getcellbyposition(2,zeile).string = teilstring
zeile=zeile + 1
sText=right(sText,len(sText)-len(teilstring))
loop
end sub
Gruß, Friedhelm
In deiner Frage schreibst du:
<<2.)dabei sollen aber nur 20 Zeichen begrenzt eingetragen werden, damit ist die Zelle voll und es soll die Zelle nächste dran sein, sozusagen Splitten des Textes (wenn möglich Trennung nach Worten und nicht nach Zeichen).>>
Ich habe den Code <WertEintragen> dahingehend geändert, dass der Inhalt der Variablen sText auf die Zellen A1, A2, A3,.... aufgeteilt wird:
sub WertEintragen
dim teilstring as string
dim zeile as integer
MyDlg.endExecute()
REM Inhalt des Textfeldes "text1" des Dialoges "MyDlg"
sText = MyDlg.getControl("text1").text
doc=thiscomponent
MySheet=doc.sheets(0)
sText=MySheet.getcellbyposition(0,0).string
zeile = 0
do until len(sText)=0
teilstring=left(sText,20)
if instr(teilstring," ")>0 then
do until right(teilstring,1)=" "
teilstring = left(teilstring,len(teilstring)-1)
loop
end if
MySheet.getcellbyposition(2,zeile).string = teilstring
zeile=zeile + 1
sText=right(sText,len(sText)-len(teilstring))
loop
end sub
Gruß, Friedhelm
-
- ****
- Beiträge: 119
- Registriert: Di, 28.11.2006 19:44
- Wohnort: Meppen
Hallo nochmal.
logisch bleiben deine Zellen leer. Mein Fehler. Ich habe (da ich natürlich den Dialog nicht habe, statt dessen den Inhalt der Zelle A1 genommen - also den Text darin erfasst)
Leider habe ich die Zuweisung für die Variable sText nicht herausgenommen. Wenn du also die Zeile
aus dem Makro löscht, müsste es klappen.
Gruß, Friedhelm
logisch bleiben deine Zellen leer. Mein Fehler. Ich habe (da ich natürlich den Dialog nicht habe, statt dessen den Inhalt der Zelle A1 genommen - also den Text darin erfasst)
Leider habe ich die Zuweisung für die Variable sText nicht herausgenommen. Wenn du also die Zeile
Code: Alles auswählen
sText=MySheet.getcellbyposition(0,0).string
Gruß, Friedhelm